Feature flags
Type-safe, powerful feature flags and configuration
Ship faster and more often
- Ship work-in-progress code behind flags instead of building up large pull requests that are hard to review and merge.
- Gradually roll out features to subsets of users and instantly turn them off when there are errors.
- A/B test features to ensure they don't regress business, product or system metrics.

Type-safe
- No more guessing if your flag should be in kebab-case or camelCase. Auto-generated, type-safe code gives you code completion in your IDE.
- Prevent runtime errors from flag typos.
- Instantly find all references of a flag to quickly understand the impact of changing it.
- Clean up flags with confidence. Just remove them from your GraphQL query, rerun codegen and fix all the type errors.
- Avoid raw strings in your code and having to parse integer or enum flags.
- Exhaustively switch on enum flags.
- Type-safety built into the logic editor UI prevents typos like invalid countries and languages.

Object-oriented
- Group flags in object hierarchies to pass around related flags together and give them short, namespaced names — no more frontend_editor_macOS-arm64_v2.
- Move targeting to the object level to manage what combinations of values are possible — avoid breaking the UI by disabling top_navbar and side_navbar at the same time.
- Browse the object hierarchy in the UI to easily discover and find flags without needing to ask someone for the exact flag name.

Powerful
- Define flags of any type in your GraphQL schema. Use Int flags for prices, limits and timeouts, String flags for in-product copy, Enum flags for multiple states and structured objects for more complex configuration.
- Use Hypertune for more than just feature flags. Manage content, plans and pricing, rules and limits, magic numbers and backend jobs.
- The UI implements a functional language under the hood so there's no limit to the logic you can express. Nest logic and define variables and functions for things like user segments.
- Understand your logic. See live analytics of how many users pass each targeting condition or fall into each test arm.
- Pass your logic any arguments you want, like the current organisation, project, environment, promo_code, locale, etc, not just user attributes.

Advanced analytics, A/B testing and machine learning
- Insert an A/B/n test in your flag logic in under a minute.
- Flexibly combine testing and targeting logic, e.g. to nest logic within test arms or to set up a long term holdout across many short term tests.
- Use machine learning to decide the best flag setting automatically. Make your configuration multi-dimensional to find the best combination of flags.
- Reuse tests and ML loops across different flags.
- Create and track events, and define compound metrics from them to evaluate tests and optimize ML loops.
- Build a funnel from your events, tests and ML loops to see drop-off and conversion rates.

Reliable
- No more figuring out what combination of flag changes broke your product. Your whole config is tracked in a single, unified version history.
- One-click rollbacks to known good states.
- Fault tolerant with both build-time and hardcoded fallbacks to guarantee your customers a reliable product experience.
- All flag evaluation methods are synchronous. No awaiting promises that aren't guaranteed to resolve.
- Only needs to communicate with Hypertune on startup, not every flag evaluation.

Performant
- Only loads the flags you actually use in your app.
- Flag logic is delivered via a global network of edge servers for minimum network latency.
- Only fetches flag logic once and then evaluates it locally for near-zero latency — no need to make a network request for every flag call.
- Optionally initialize using local fallbacks to minimize time to First Contentful Paint (FCP).

Debuggable
- Debug flag values for specific users and get realtime logs for every SDK operation.
- The SDK is open source and easy to inspect yourself.
