Ship faster, without the risk.
Deploy dark, release when you’re ready, and roll back in a click — with no flag service in your request path.
Free forever. No credit card required.
<1ms
Local flag evaluation
0
Network calls in your request path
Typed
Boolean, string, number, object
1 click
Kill switch, instant rollback
The problem
A release shouldn’t feel like a gamble.
The convenience of a hosted flag service usually hides three quiet costs — and each one shows up at the worst possible moment.
A round-trip per check
Most SDKs call home on every evaluation — latency in your hot path and a remote dependency that fails when you least expect it.
Stringly-typed values
A flag hands back a string you parse by hand. A typo, a type mismatch, or a missing flag becomes a runtime error in production.
One key for everything
A single credential that reaches flags, the console, and automation means one leak exposes far more than it should.
How it works
Evaluation stays inside your server.
Flags are defined once in the console and resolved in-process by the SDK. FeatureGate keeps the runtime path short, predictable, and resilient to network noise.
01
Install the SDK
One client per process, one runtime key. It owns the snapshot cache for the lifetime of your server.
02
Hold a snapshot
The client keeps the latest snapshot in memory. ETags mean it only refetches what actually changed.
03
Evaluate locally
Every check resolves in-process. Streaming pushes updates instantly; polling quietly backs it up.
What you get
Four things you stop worrying about.
01
No latency tax
Flag checks are memory lookups, so evaluation never blocks a request or adds a network hop — no matter how many flags you check.
02
No runtime surprises
Boolean, string, number, and object flags carry explicit defaults, so every call site has a defined, type-safe answer.
03
No fragile updates
Streaming invalidation keeps flags fresh in real time; a polling fallback means a dropped connection never goes unnoticed.
04
No blast radius
Runtime keys, console sessions, and management keys live in separate lanes, so a leaked key stays contained to one of them.
In your code
One call. One typed value. One safe default.
Every evaluation takes an explicit default, so a call site is well-defined before the first snapshot arrives — and stays correct if a flag is ever removed.
- <1ms
- Local evaluation
- 304
- Not modified on unchanged snapshots
- 100%
- Served from cache during a network blip
import { FeatureGateClient } from "@featuregate/server";
const featuregate = new FeatureGateClient({
runtimeApiKey: process.env.FEATUREGATE_RUNTIME_KEY!,
syncMode: "streaming",
});
const enabled = featuregate.isEnabled("new-checkout", {
defaultValue: false,
attributes: { user: { id: "user_123" } },
});Targeting & rollouts
Roll out to exactly who you mean.
Decouple deploy from release: ship the code dark, then turn it on for the people you choose. Ordered rules and stable percentage rollouts keep the same user in the same bucket on every check.
01
Context attributes
Pass user, account, and request attributes. Missing attributes are treated as condition misses, never as errors.
02
Ordered rule groups
Match all or match any within a group. Rules resolve in order and fall through to the environment default.
Focus
Not an experimentation suite. A flag engine that does flags.
No dashboards you will not open, no analytics you did not ask for. FeatureGate is a focused runtime — typed flags, ordered targeting, and resilient delivery — built to do one job exceptionally well.
Start
Evaluate your first flag locally in minutes.
Create a project, add a typed flag, generate one runtime key, and resolve it from your server. The first integration path is narrow on purpose.