Skip to main content
Version: Next
GO Feature Flag logo

GO Feature Flag documentation

GO Feature Flag is a lightweight, open-source feature flag solution with no backend to run.

You describe your flags in a simple configuration file, serve them with a single stateless service — the relay proxy — and evaluate them from your applications in 16 languages through OpenFeature, the CNCF standard for feature flagging.

No database, no proprietary SDK, no vendor lock-in.

New to feature flags?

Read What are feature flags? for a quick primer, or Why GO Feature Flag? to see how it compares to other solutions.

Start here

How it works

1. Describe your flags in a configuration file. Variations are the possible values, and the rules decide who gets which one.

flags.goff.yaml
show-email-contact:
variations:
enabled: true
disabled: false
targeting:
- query: company eq "monsters-inc"
variation: enabled
defaultRule:
variation: disabled

2. Evaluate the flag in your application through the OpenFeature SDK. You always get a value back — the default one if anything goes wrong.

evalCtx := of.NewEvaluationContext("user-123", map[string]any{"company": "monsters-inc"})
showContact := client.Boolean(ctx, "show-email-contact", false, evalCtx)

Change the configuration file and the new behaviour is live, without redeploying or restarting your application.

info

The snippet above is in Go, but the API is the same in every language. Check the SDKs section for the one matching yours.

Explore the documentation

Writing a Go service and prefer not to run the relay proxy? GO Feature Flag is also available as a Go module you can embed directly into your application.

Need help?