Ship faster with confidence.
Without the enterprise overhead.

For small teams that move fast. Purpose-built for gradual rollouts, precise targeting, and quick kill switches.

Launch your first feature

Free forever. No card required.

See how it works
The Switchbox app window: sidebar navigation and the feature flags table across environments

GETcdn.switchbox.dev/{sdk_key}/flags.json

See how it works →

stays upOur outage isn't yours

no meterGo viral, same bill

stays yoursWe never see your users

no black boxDebug it without us

Configure

Set a rollout and targeting in seconds

Flip a flag, drag the rollout, and add OR-of-ANDs targeting rules, with no YAML and no redeploy. Every change publishes to the edge automatically.

Flag detail page: the enable toggle, a rollout slider, and a targeting rule group.

Verify

Trace exactly how a flag resolves

The in-app Playground evaluates a flag against any user context with the real SDK, and shows which rule matched, the rollout bucket, and the final value.

Playground: a user context on the left, the resolved value and per-condition trace on the right.

Audit

See who changed what, and when

Every mutation is recorded as a visual before→after diff: the rollout that moved, the rule that was added, and the person who did it.

Audit log showing a targeting change as a readable before-after diff with the actor.

Measure

See which values your users actually get

Your SDKs report anonymous counts of what they evaluated, per flag and per value. Check a rollout is really splitting traffic, and spot the flags nothing has read in weeks. No identity, no user context, off with one option.

Flag analytics tab: an evaluations chart per environment with the share of each served value.

No lock-in

OpenFeature compatible

Code against the CNCF-standard feature flag API and plug Switchbox in as a provider. If we ever stop earning your trust, leaving costs one line.

  • Official providers for JavaScript, React, and Python

    Thin wrappers over the same open-source SDKs, with zero evaluation logic of their own. Other languages aren't covered yet.

  • The architecture doesn't change

    Configs still come from the edge and evaluate locally in your app. Even a context change costs zero network; remote-evaluation vendors make a round trip.

  • The swap is real

    Your call sites never mention Switchbox. Adopting us from another OpenFeature vendor is one constructor line. Leaving is the same line.

Use Switchbox with OpenFeature →
app.ts · vendor-neutral
import { OpenFeature } from '@openfeature/web-sdk';
import { SwitchboxProvider } from '@switchbox/openfeature';
// the one Switchbox-specific line in your app
await OpenFeature.setProviderAndWait(
new SwitchboxProvider({ sdkKey: 'your-sdk-key' }),
);
// everything else codes against the neutral API
const flags = OpenFeature.getClient();
flags.getBooleanValue('new_checkout', false);

Changelog

Always shipping

Switchbox gets better every week. Here's what changed recently.

The Pro plan got roomier

Pro now includes 5 environments per project and 100 flags per project, up from 3 and 30. The price stays a flat $29: an environment is one more static file on the CDN and a flag is a few hundred bytes of JSON, so there was no honest reason to keep the ceilings that low. Existing Pro teams get the new limits automatically, nothing to do.

AUG 25, 2026

Polling stopped re-downloading your config

The SDKs now make conditional requests: they tell the edge which version they already hold, and a poll that finds nothing changed comes back empty instead of fetching the whole config again. Steady-state polling costs your users almost no bandwidth, which matters most in the browser and on mobile, and a larger flag config no longer makes every poll heavier. Ships in switchbox-flags 0.9.0 and switchbox-js 0.8.0, automatic, with nothing to configure.

JUL 29, 2026

Flag changes reach your apps in ten seconds

The SDKs now poll the edge every 10 seconds instead of 30, and the CDN cache window dropped to match. A toggle you save in the dashboard reaches every running client in about ten seconds, twenty in the worst case. Ships in switchbox-flags 0.8.0 and switchbox-js 0.7.0.

JUL 24, 2026

See which flags are actually used

Every environment now has a flag usage panel: per-flag evaluation counts, the share of evaluations serving each value, a stale-flag hint when something has not been checked in a while, and which SDK versions are reporting. It runs on anonymous usage telemetry in the new SDK releases: aggregate counts only, no identity, no user context, and one option turns it off.

JUL 24, 2026

View all

From the founder

Built by one person

Hi, I'm Ignat. Switchbox is a one-person company: I design it, build it, run it, and answer the support email.

I started it because feature flags felt heavier than they should be. Enterprise dashboards, per-seat pricing, SDKs that pull in half of npm. Most of us just want to flip a flag and roll a feature out safely. So that's what Switchbox does, and not much else, on purpose.

One person running your flags is a fair thing to be skeptical about. It's part of why Switchbox is built the way it is: your flags serve from Cloudflare's edge, not from my API, so nothing in your app ever waits on me or my servers.

If something is broken, confusing, or missing, write to me. You'll get an answer from the person who wrote the code.

Ignat, the founder of Switchbox
Ignat

Builds and runs Switchbox