Flipt: Enterprise-Ready Feature Flags That Live in Git
Managing feature flags across multiple environments remains a persistent challenge for platform engineers. Traditional feature flag systems introduce external dependencies, require additional infrastructure, and complicate deployment workflows. Flipt addresses these pain points by storing feature flags directly in Git repositories, bringing the power of version control to feature management.
What is Flipt?
Flipt is an open-source, self-hosted feature management platform written in Go. Unlike conventional feature flag systems that rely on databases and external services, Flipt takes a Git-native approach—storing all feature flag configurations as declarative YAML files in your existing repositories. This design eliminates external dependencies while providing full audit trails, blame tracking, and the familiar Git workflow your team already uses.
With over 4.6k GitHub stars and active development releasing new versions every 2–3 weeks, Flipt serves engineering teams seeking complete control over their feature flag infrastructure without sacrificing operational simplicity.
Key Features
Git-Native Storage: Store feature flags directly in Git repositories (GitHub, GitLab, Bitbucket, Azure DevOps, Gitea) with complete version history and rollback capabilities.
Multi-Environment Management: Isolate configurations across environments by pointing to different repositories, directories, or branches—enabling safe testing without affecting production.
Zero Infrastructure Required: Runs as a standalone binary with no database, cache, or external dependencies by default. Deploy anywhere Go runs.
Real-Time Updates: Clients receive flag changes instantly via Server-Sent Events streaming API, ensuring consistent state without polling.
Advanced Targeting: Implement complex rollout strategies with segment-based targeting, percentage rollouts, and constraint-based rules.
Installation
Install Flipt using the official install script or download the binary directly:
curl -fsSL https://get.flipt.io/install | sh
Alternatively, run Flipt via Docker:
docker run -d -p 8080:8080 -v $HOME/flipt:/var/opt/flipt flipt/flipt:latest
For Kubernetes deployments, use the official Helm chart:
helm repo add flipt https://helm.flipt.io
helm install flipt flipt/flipt
Configuration
Create a declarative feature flag configuration in your Git repository:
mkdir -p features
cat > features/flags.yml <<EOF
flags:
- key: new-dashboard
name: New Dashboard UI
description: Rollout new dashboard design
enabled: true
variants:
- key: v1
name: Version 1
- key: v2
name: Version 2
rules:
- segment: beta-users
distributions:
- variant: v2
rollout: 100
- segment: all-users
distributions:
- variant: v1
rollout: 90
- variant: v2
rollout: 10
EOF
Point Flipt to your Git repository by configuring the storage backend in config.yml
:
storage:
type: git
git:
repository: https://github.com/yourorg/feature-flags
ref: main
poll_interval: 30s
Usage in Production
Integrate Flipt with your application using the OpenFeature SDK or native clients. Here's a Go example:
go get go.flipt.io/flipt/sdk/go
import "go.flipt.io/flipt/sdk/go"
client := flipt.NewClient()
result, _ := client.EvaluateBoolean(ctx, &flipt.EvaluationRequest{
FlagKey: "new-dashboard",
EntityId: userID,
Context: map[string]string{"tier": "enterprise"},
})
if result.Enabled {
// Serve new dashboard
}
Changes to your feature flags become effective automatically when you push commits to your configured Git branch. Flipt polls the repository and propagates updates to all connected clients in real-time.
Operational Tips
Implement GitOps Workflows: Use pull requests to review flag changes, require approvals for production modifications, and maintain complete audit trails through Git history.
Enable GPG Signing: Configure commit signing to ensure flag changes are cryptographically verified and traceable to authorized team members.
Structure Multi-Environment Configs: Organize flags by environment using Git branches (main
for production, staging
for pre-prod) or separate directories (/prod/flags.yml
, /staging/flags.yml
).
Monitor Flag Usage: Export metrics to Prometheus to track evaluation counts, latency, and flag utilization across your infrastructure.
Automate Testing: Validate flag configurations in CI pipelines using flipt validate
before merging changes to prevent misconfigurations.
Conclusion
Flipt transforms feature flag management by treating flags as code, stored and versioned alongside your application. The Git-native approach eliminates operational overhead while providing the audit trails and review processes engineering teams require. For SRE and platform teams seeking self-hosted feature management without additional infrastructure dependencies, Flipt delivers a compelling solution.
Explore the Flipt documentation to learn more about advanced targeting, secrets management, and enterprise features.
Enhance your system reliability with Akmatori, an AI-powered SRE assistant that predicts failures, assists in creating more reliable systems, and accelerates root cause analysis during incidents.