Make your code configurable
Let teammates like PMs and marketers quickly change
in-app copy, feature flags, pricing plans and more
How it works
Define your schema
Write a schema in GraphQL to define what parts of your code are configurable.
Use Boolean for feature flags, Int for prices, limits, timeouts, etc, String for in-product copy, Enum for multivariate flags and custom types for more complex configuration.
Define your logic
Define your configuration logic with our visual, functional programming language that has A/B testing, event logging and machine learning built in.
Set up feature flag targeting, optimize prices and limits, translate and personalize copy, and manage complex content.
Generate code with the SDK
Install the TypeScript SDK and write a GraphQL query so it initializes with just the configuration logic you need.
Run npx hypertune to auto-generate type-safe methods you can call from any code on your frontend or backend.
Get code completion in your IDE, prevent runtime errors due to flag typos and easily find all references of flags in your codebase.
Share with your team
Share a link to your flag with your nontechnical colleagues so they can see how it's configured and update it themselves.
Update configuration logic instantly without a code update, build, deployment, app release or service restart.
Use Cases
Feature flags
- Push work-in-progress code to production behind flags instead of building up large pull requests which 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.
- Auto-generated code means you get code completion in your IDE, prevent runtime errors from flag typos and can easily find all flag reference in your codebase.
- A flexible schema means you can define Enum flags with more than 2 states, Int flags for prices, limits, timeouts, etc, String flags for in-product copy and flags with custom types for more complex configuration.
Content management
- Use Hypertune as a CMS for your in-product and landing page content.
- Define blocks in your schema that your team can assemble into pages.
- Embed logic for personalization, translation, A/B testing and contextual multi-armed bandits.
Plans & pricing
- Configure your subscription plans and their prices, features and limits in Hypertune.
- Empower your growth team to quickly create and A/B test new plans without having to bother engineering.
- Keep code clean and flexible with feature flags. Decouple the configuration logic that maps those features to plans.
- Quickly override features and limits for specific organisations and users.

Rules & limits
- Update product limits and rules instantly without a code update, build, deployment, app release or service restart.
- Empower business users to update limits and rules themselves and save developers time.
- Keep your code clean, small and flexible, expressing your core logic, not configuration details.
- Optimize rules and limits with A/B testing and machine learning.
- Unify limits and rules across different codebases into a single source of truth.
- Reduce engineering complexity by separating the concerns of code and configuration.


Landing page personalization
- Use Hypertune as a CMS for your landing page content.
- Embed logic for personalization, translation, A/B testing and contextual multi-armed bandits.
- Integrate cleanly with frameworks like Next.JS with support for server-side rendering.
- Cleanly integrate on the client-side too with minimal JavaScript injection to maximize performance and SEO — avoid background scripts that slow the page down.
- Use AI to find the best combination of all your page elements, e.g. the best combination of headline, image, call to action and section order, for each unique visitor, based on URL and UTM parameters, device info, location and time of day.
- Compare conversion rates across every combination broken down by visitor attributes.


Magic numbers
- Update magic numbers, like timeouts and algorithm parameters, instantly without a code update, build, deployment, app release or service restart.
- Optimize magic numbers with A/B testing and machine learning.


Backend configuration
- Configure recurring backend jobs with parameters like batch sizes, delays, timeouts, etc.
- Platformize your backend service so others can easily add new jobs themselves.

Why make your code configurable?
Update logic instantly
No need to wait for a code update, build, deployment, app release or service restart
Save developers time
Empower business users to update and optimize your product themselves
Improve code quality
Make your code cleaner, smaller and more flexible
Optimize configuration
Optimize configuration with A/B testing and machine learning
Single source of truth
Unify configuration logic across different codebases into a single source of truth
Reduce complexity
Reduce engineering complexity by separating the concerns of code and configuration