Flagr is an open-source Go service for feature flags, A/B tests, and dynamic configuration. Your app calls POST /api/v1/evaluation with who is asking (entityID, entityContext); Flagr returns a variant and optional JSON attachment.
That lets you ship code dark and turn it on per audience, run experiments with sticky assignment, and change runtime config without redeploying. Self-hosted (SQLite, MySQL, PostgreSQL, or JSON/GitOps) with a Vue 3 UI and an official Docker image.
openflagr/flagr continues development from the original checkr/flagr.
docker pull ghcr.io/openflagr/flagr
docker run -it -p 18000:18000 ghcr.io/openflagr/flagr
open http://localhost:18000Hosted demo: try-flagr.onrender.com (may cold-start)
curl -sS -X POST https://try-flagr.onrender.com/api/v1/evaluation \
-H 'content-type: application/json' \
-d '{
"entityID": "127",
"entityType": "user",
"entityContext": { "state": "NY" },
"flagID": 1,
"enableDebug": true
}'Documentation covers integration, self-hosting, environment variables, and the API reference.
vegeta load test (~2k req/s, sub-ms median in published run):
Requests [total, rate] 56521, 2000.04
Duration [total, attack, wait] 28.26s, 28.26s, 365.53µs
Latencies [mean, 50, 95, 99, max] 371.63µs, 327.99µs, 614.92µs, 1.39ms, 12.50ms
Success [ratio] 100.00%
Status Codes [code:count] 200:56521
| Language | Client |
|---|---|
| Go | goflagr |
| JavaScript | jsflagr |
| Python | pyflagr |
| Ruby | rbflagr |
Issues and pull requests: Contributing. Local commands and code layout: AGENTS.md (make help).
Apache 2.0 (openflagr/flagr, original checkr/flagr).

