Feature flags without
the enterprise tax.
Toggle features without redeploying. Evaluation is a plain GET your CDN can cache.
Free: 10 flags, 50k evaluations/mo.
curl http://localhost:8112/v1/flags/ENV_KEY
{
"new-checkout": true,
"beta-ui": { "enabled": true }
} Flip a flag. Watch the response change.
This is the entire product experience. Toggles here behave exactly like the evaluate endpoint does in production.
dashboard - production
your app - checkout page
Annual plan
$290/yr
rendered from live flag values
GET /v1/flags/ENV_KEY responds:
Plain GET evaluation
Cache-Control: 30s means your CDN absorbs the traffic. Origin load stays near zero. No SDK required, no framework coupling, no WebSocket connections.
GET /v1/flags/ENV_KEY
{
"new-checkout": true,
"beta-ui": { "enabled": true, "rollout": 0.25 }
} JSON values
Booleans, strings, numbers, objects. Your flags carry config, not just on/off.
$19/mo
Flat pricing
Pro is flat. No per-seat tax, no evaluation surprises.
A vanilla SDK.
Or nothing at all.
2KB
one fetch, zero dependencies
// client-side toggle without a build step
const flags = await fetch(
"http://localhost:8112/v1/flags/ENV_KEY"
).then((r) => r.json());
if (flags["new-checkout"]) initCheckout(); The SDK is one fetch with a cache header. If even that is too much, curl the endpoint from your server on boot.
Priced like a tool, not a platform.
| FlagPole | LaunchDarkly | ConfigCat | |
|---|---|---|---|
| Entry price | $0 | ~$10/seat | $9/mo |
| Evaluation | cached GET | SDK + streaming | SDK |
| Built for indie scale | yes | no | partial |
| Audit log | Pro | enterprise tiers | higher tiers |
| 2KB vanilla SDK | yes | no | no |
competitor positioning per public pricing pages, 2026
free tier
Ship the flag, skip the deploy.
Ten flags and fifty thousand evaluations a month, free.