OpenFeature Compatible GitOps Native Open Source

Feature flags built
for engineering teams

GitOps-native, OpenFeature-compatible. Deploy with confidence, roll back in seconds, and target exactly who sees what — from a single control plane.

Sub-5ms P99
99.99% Uptime SLA
SOC 2 Type II Ready
Zero Standing Privilege
flagctl.io · dashboard
Flags
Segments
Analytics
Environments
Audit Log
12
Total Flags
8
Active
2
Kill Switches
1.2M
Evals / 24h
Flag key Status Rollout Trend
checkout-v2 active
+12%
dark-mode active
+4%
new-pricing experiment
payment-failover armed
KS

Trusted by engineering teams shipping at scale

CloudWalkers Inc.
Acme Corp
Fintech Co.
RetailOS
DevStudio
Infrastack
Platform

Everything your team needs

From simple on/off toggles to complex multi-variate experiments — flagctl handles the full feature flag lifecycle.

GitOps-native workflow

Define flags as YAML. Review via PR. Deploy with confidence. Your flag config lives in git — versioned, auditable, and rollbackable like any other code.

key: checkout-v2
type: boolean
lifecycle: experiment
environments:
  production:
    enabled: true
    rollout: 80
  staging:
    enabled: true
    rollout: 100

OpenFeature SDK

Standards-compliant SDK for Java, Go, Python, Node.js, and more. Migrate from any provider without rewriting evaluation logic.

Java Go Python Node.js Rust

Kill switches

Arm a kill switch and your team can instantly flip a flag off in production — with typed confirmation, ZSP, and a full audit trail.

payment-failover ARMED
Type "CONFIRM" to activate

Targeting & Segments

Serve different flag values to different users using CEL-based rules, percentage rollouts, and reusable segment definitions.

if user.plan == "enterprise"
then variant_b // early access

Real-time analytics

Track evaluation counts, SDK distribution, and environment breakdown. Spot anomalies before they become incidents.

1.24Mevals/day
0.02%error rate

Compliance audit log

Every change to every flag is recorded with actor, timestamp, diff, and reason. Export for SOC 2, ISO 27001, or internal review.

Flag enabled · priya@team.io 2m ago
KS activated · sdk 1h ago
Rollout → 80% · cli 3h ago
Workflow

From commit to control

flagctl fits into the workflow you already have — no new processes, no dashboards to babysit.

01

Define in YAML

Create a flag definition in your repo. Specify type, lifecycle, environments, and targeting rules — all as code.

02

Deploy via PR

Open a pull request. CI validates schema, team reviews the diff. Merge triggers sync to the control plane via webhook or GitOps agent.

03

Evaluate in SDK

Your service calls the OpenFeature-compatible SDK. Flags are cached locally — P99 eval time is under 5ms with no added network hops.

04

Control in real-time

Use the dashboard to adjust rollout percentages, arm kill switches, or update targeting rules — changes stream to SDKs via SSE in under 500ms.

SDK

Integrate in minutes

OpenFeature-compatible. If you've used any major feature flag provider, you already know the API.

// Initialize once at startup
FlagctlClient client = FlagctlClient.builder()
    .sdkKey("sdk_live_abc123")
    .environment("production")
    .build();

// Evaluate a boolean flag
boolean enabled = client.getBooleanValue(
    "checkout-v2",
    false,       // default
    EvaluationContext.builder()
        .put("userId", user.getId())
        .put("plan",   user.getPlan())
        .build()
);

if (enabled) {
    // new checkout flow
}
// Initialize once at startup
client, _ := flagctl.NewClient(flagctl.Config{
    SDKKey:      "sdk_live_abc123",
    Environment: "production",
})

// Evaluate a boolean flag
enabled, _ := client.BoolValue(ctx,
    "checkout-v2",
    false,
    openfeature.NewEvaluationContext(
        user.ID,
        map[string]any{
            "plan": user.Plan,
        },
    ),
)

if enabled {
    // new checkout flow
}
# Initialize once at startup
client = FlagctlClient(
    sdk_key="sdk_live_abc123",
    environment="production",
)

# Evaluate a boolean flag
enabled = client.get_boolean_value(
    flag_key="checkout-v2",
    default_value=False,
    evaluation_context=EvaluationContext(
        targeting_key=user.id,
        attributes={"plan": user.plan},
    ),
)

if enabled:
    # new checkout flow
// Initialize once at startup
const client = new FlagctlClient({
    sdkKey: 'sdk_live_abc123',
    environment: 'production',
});

// Evaluate a boolean flag
const enabled = await client.getBooleanValue(
    'checkout-v2',
    false,
    {
        targetingKey: user.id,
        plan: user.plan,
    }
);

if (enabled) {
    // new checkout flow
}
Pricing

Start free. Scale as you grow.

No per-seat pricing. No eval limits on paid plans. One flat monthly fee per environment tier.

Starter
$0 /month

Perfect for side projects and small teams getting started with feature flags.

Get started free
  • Up to 5 flags
  • 1 environment
  • 10K evaluations / mo
  • Boolean flags only
  • Community support
Enterprise
Custom

For organizations with compliance requirements, SSO needs, or high-volume evaluation.

Talk to sales
  • Unlimited everything
  • SSO / SAML
  • RBAC with custom roles
  • Zero Standing Privilege
  • Dedicated Slack channel
  • 99.99% SLA
  • SOC 2 Type II report

Ship faster. Roll back safely.

Join engineering teams who trust flagctl to control every feature in production.