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.

01

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.

02

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.

03

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
server.ts
ts
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.