Feature flags
Toggle features per environment without a redeploy. Boolean flags, multivariate variants, and percentage rollouts are first-class.
The built-in AI copilot lives inside Flagify. Toggle a flag, find the one you half-remember by describing it, or ask what rolled out yesterday. Plain English in, real operations out. Production changes always ask before they run.
No credit card required
new-checkout-flow in staging
new-checkout-flow is now ON in staging.
| Flag | Dev | Stg | Prod |
|---|---|---|---|
legacy-search | OFF | OFF | ON |
Flagify AI can make mistakes. Verify important flag configurations manually before deploying to production.
CLI · v1.7.0 · AI tool ready
One command, one generated file. Every flag key in your project becomes a typed constant. Your editor autocompletes them. Your compiler rejects typos. Your AI coding tool reads the same file and stops hallucinating flag names that were never created. No other feature-flag platform ships this in the box for both TypeScript and Go.
$ ✓ Generated flagify.ts (12 flags)→ export const FLAG_KEYS · export type FlagKey if (flagify.isEnabled('new-checkot-flow')) {
renderNewCheckout()
}
// ❌ typo. flag never evaluates. silent prod bug. import { FLAG_KEYS } from './flagify'
if (flagify.isEnabled(FLAG_KEYS['new-checkout-flow'])) {
renderNewCheckout()
}
// ✓ compile error if the key is wrong
Your teammate shipped a flag yesterday. You need to check it behind a
button. You don't know the exact kebab-case name, so now it's a
dashboard tab, a grep, or a Slack message. Skip all that.
Type FLAG_KEYS. in your editor. Every flag in the repo shows
up in the autocomplete popup, sorted alphabetically, ready to tab-complete.
Your IDE underlines the wrong flag name in red while you type. CI rejects the commit. Your users never see the silent-default bug.
Type FLAG_KEYS. and see every flag in the project. Including the one your teammate shipped last week and forgot to tell you about.
Claude, Cursor, and Copilot read FLAG_KEYS as the source of truth. No more hallucinated flag names in AI-generated diffs. The Flagify ai-setup templates steer them here on day one.
Works with @flagify/node, @flagify/react,
@flagify/astro, and @flagify/nestjs. Requires
CLI v1.7.0 or later — run flagify version to check.
How it works
Create flags from the CLI, the API, or the dashboard. Add targeting rules and rollout percentages per environment, with a default value for everyone else.
# Create a flag from the CLI
flagify flags create new-checkout \
--type boolean \
--project my-app
Promote flag configurations from staging to production with a single command. Environments are isolated, so a change in staging stays in staging until you push it.
# Promote config to production
flagify promote \
--from staging \
--to production
Toggle a feature, adjust who sees it, or roll it back without a deploy. Connected SDKs pick up the change in milliseconds.
# Toggle a flag instantly
flagify flags toggle new-checkout \
--env production \
--enabled false
Frameworks
TypeScript-first SDKs with local evaluation, streaming sync, and typed flag values. Drop in the one that matches your runtime.
All frameworksIntegrations
Gate deploys from CI, sync incidents from your monitoring, and get every flag change in the channel your team actually watches.
All integrationsBuilt for production
Real isolation, real auditing, real key management. The primitives you actually reach for on a release day, and nothing else pretending to be a primitive.
Toggle features per environment without a redeploy. Boolean flags, multivariate variants, and percentage rollouts are first-class.
The SDK caches flags locally and updates them over a streaming connection. Evaluations hit memory; nothing waits on a network round-trip.
Serve different values per user by plan, role, geography, or any custom attribute your app forwards.
Change runtime values — thresholds, limits, copy — from the dashboard. No deploy.
Staging, preview, and production are separated at every layer. A change stays where you put it until you promote it.
Every flag change, promotion, and key rotation is logged with user, action, and timestamp. Exportable when an auditor asks.
API keys are scoped to one project + one environment, signed with HMAC-SHA256, rotated on demand. Requests carry short-lived JWTs — no long-lived secret in your repo. Workspaces, projects, and environments never share a query, a cache, or a row.
Why Flagify
Five minutes from zero to a flag in production.
No 200-page setup guide. No mandatory enterprise onboarding call. Install the CLI, create a flag, evaluate it from your code. That is the entire story.
CLI-first, because dashboards interrupt thinking.
Create flags, promote configs, manage environments — from the terminal you already have open. The dashboard is there when you want it. Most days you will not need it.
Four plans with published limits. No per-seat tax.
You know what you pay before you commit. Adding a teammate does not raise your bill. Hitting a usage cap does not trigger a sales call.
Real isolation, not a tag on a row.
Staging, preview, and production each have their own flag state, their own keys, and their own targeting rules. Nothing leaks between them — by design, not by convention.
Developer experience
Initialize the SDK once and evaluate flags anywhere in your app. There is no config file to maintain and nothing running in the background.
import { Flagify } from '@flagify/node';
export const flagify = new Flagify({
projectKey: 'my-project',
publicKey: process.env.FLAGIFY_PUBLIC_KEY,
// Flags are cached locally and synced
// in real time via SSE
options: { realtime: true },
}); import { flagify } from './flagify.config';
function getCheckoutVariant() {
const variant = flagify.getValue<string>(
'checkout-redesign'
);
return variant === 'v2'
? renderCheckoutV2()
: renderCheckoutV1();
} Two layers. Static context so AI-generated code follows your flag conventions, and runtime control so the agent can actually change flag state.
Stdio MCP server · 12 tools
Any MCP-compatible host can call
list_flags, create_flag, toggle_flag,
update_targeting_rules, and get_audit_log.
Mutations carry destructiveHint: true so the host highlights
them in the consent prompt. Every change lands in your audit log with
source: "mcp".
flagify ai-setup .claude/ Slash commands + CLAUDE.md so the agent uses the right SDK patterns and kebab-case keys.
.cursorrules SDK patterns, flag-naming rules, and snippets baked into the editor context.
copilot-instructions.md Keeps completions inside the Flagify SDK and away from raw string flag checks.
.windsurfrules Rules for evaluating flags, promoting configs, and handling rollouts safely.
Pricing
Start free. Scale with transparent, usage-based pricing.
For side projects and small teams getting started.
Start for freeFor teams shipping to production with confidence.
Get startedFor scaling teams that need more capacity and control.
Get startedNeed more evaluations? Additional usage billed at $20 per 1M evaluations.
Unlimited everything, dedicated infrastructure, SSO, SLA, and region deployment.
Get started
Install the SDK, create your first flag, and ship a toggle before lunch. No credit card, no sales call.
Free forever plan · No credit card · 5-minute setup