Self-hosted feature flag service. One binary. Zero dependencies. Ship with confidence.
Everything you need to ship features safely, in a single binary your team controls.
In-memory cache serves flags in microseconds. No database queries on the hot path.
One executable, embedded web UI, SQLite built-in. Just run it. No infrastructure needed.
Runs on your infrastructure. Your data never leaves your network. Full control.
Go, Python, Node.js, Java (Spring Boot). Zero external dependencies in each SDK.
Helm chart included. SQLite for dev, PostgreSQL for production HA with pg_notify.
Standard (SQLite) and Enterprise (PostgreSQL HA, SSO, audit export). License-key gated.
Same flag data pushed through three different channels in parallel. Open the admin panel in another tab, toggle a flag, and watch each panel's latency.
| Flag | Status |
|---|
| Flag | Status |
|---|
| Flag | Status |
|---|
Flags with targeting rules are re-evaluated against this context locally — no server round trip. All three panels share one flag payload; the dropdown switches who they evaluate as.
Toggle checkout.new-flow
in the admin panel, or switch the org above, to see this change (driven by the SSE panel):
Simple architecture. No moving parts.
What's coming next. Built incrementally, shipped as updates to the same binary.
Sub-second flag propagation via Server-Sent Events (see demo above)
Per-org, per-user, per-env rules — try the Personalize selector above. Test panel built into the admin UI.
Beyond boolean — serve config values and A/B variants
Deterministic per-user bucketing (SHA-1 of flagKey:userId) — ship to 10%, then 50%, then 100%. Cross-SDK parity in Go & Python.
Reusable named audiences — define “beta-customers” once, target it from many flags via the in_segment operator. Cross-SDK parity in Go & Python.
More storage backends. Redis for cross-pod cache sync
Bidirectional streaming for high-throughput environments
Ruby, PHP, .NET, Rust, mobile (iOS/Android)
flagd is built for teams that want feature flags without the SaaS dependency.
Get in Touch