Free
For side projects, prototypes, and figuring out if you like us.
- 100,000 evaluations / mo
- Up to 10 feature flags
- 2 environments
- JS / TS and Go SDKs
One small SDK. A dashboard you'll actually like. Flip features and kill bad releases in milliseconds, on Vercel, AWS, Fly, or anywhere you ship.
npm install @shipsilently/node go get github.com/shipsilently/shipsilently-go import ShipSilently from '@shipsilently/node';
const ship = ShipSilently.init({
apiKey: process.env.SHIP_API_KEY!,
});
// One line. Defaults to false if anything is wrong.
const newCheckout = await ship.evaluate(
'new-checkout',
{ userId: user.id, plan: user.plan },
false,
);
if (newCheckout) {
return renderCheckoutV2();
}
return renderCheckoutV1(); import (
"context"
"os"
ship "github.com/shipsilently/shipsilently-go"
)
client := ship.New(ship.Config{
APIKey: os.Getenv("SHIP_API_KEY"),
})
// One line. Defaults to false if anything is wrong.
newCheckout, _ := ship.Evaluate[bool](
context.Background(),
client,
"new-checkout",
ship.UserContext{"userId": user.ID, "plan": user.Plan},
false,
)
if newCheckout {
return renderCheckoutV2()
}
return renderCheckoutV1() One toggle. Every connected client updated in under a second. No redeploy. No rollback PR. No 2 a.m. page.
flag.update evaluate("party-mode") You flipped one switch. Every connected client threw confetti in the same breath.
Flip party-mode on and watch every connected
client celebrate in the same breath. Go on, you know you
want to.
If your runtime can make an HTTPS request, ShipSilently works there. No edge runtime to adopt. No plugin to install. No "enterprise SDK" tier.
First-class SDKs for JavaScript / TypeScript and Go, shipping today. Python, Ruby, and Java are next up, or use the REST API from anything that speaks HTTP.
if (flag).
Pick your package manager. The SDK is dependency-free.
npm install @shipsilently/node
# or: bun add @shipsilently/node
# or: pnpm add @shipsilently/node One evaluate() call gates anything you want.
import ShipSilently from '@shipsilently/node';
const ship = ShipSilently.init({
apiKey: process.env.SHIP_API_KEY!,
});
export async function handler(req) {
const useNewPath = await ship.evaluate(
'new-checkout',
{ userId: req.userId },
false,
);
return useNewPath ? newCheckout(req) : oldCheckout(req);
} import (
"context"
"net/http"
"os"
ship "github.com/shipsilently/shipsilently-go"
)
var client = ship.New(ship.Config{
APIKey: os.Getenv("SHIP_API_KEY"),
})
func Handler(w http.ResponseWriter, r *http.Request) {
useNewPath, _ := ship.Evaluate[bool](
r.Context(),
client,
"new-checkout",
ship.UserContext{"userId": r.Header.Get("X-User")},
false,
)
if useNewPath {
newCheckout(w, r)
return
}
oldCheckout(w, r)
} Change happens in milliseconds, on every connected client. No redeploy. No rollback PR at 2 a.m.
new-checkout Boolean show-promo-banner Boolean pricing-experiment-q3 String Β· 4 variants The fastest way to lose customers is to give them a reason to leave. We'd rather give you reasons to stay.
Flat $49. No per-seat math, no surprise overage line, no quote-on-renewal. Your finance team will love us.
Export every flag, rule, and audit-log entry as JSON whenever you want. No exit ticket, no "let's set up a call to discuss."
JavaScript and Go. Type-safe, dependency-free, open source. Real working code. Not "on the roadmap" vapor.
No per-seat tax. No "contact us for pricing." If your usage doubles, your bill doesn't move.
For side projects, prototypes, and figuring out if you like us.
For teams that ship every day and don't want to think about flags.
SSO, RBAC, custom retention, dedicated support, when we've built them. Not before.
We're not the only flag service. We're the right one for teams who'd rather ship than fiddle with flag configuration.
Flagship is great if you're all-in on Cloudflare Workers. We're for everyone else.
All the flagging. None of the enterprise tax.