Make your code configurable

Let teammates like PMs and marketers quickly change in-app copy, feature flags, pricing plans and more

How it works

1

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.

2

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.

3

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.

4

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.
Hypertune for feature flags

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.
Example logic for Rules & limits

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.
Example logic for Landing page personalization

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.
Example logic for Magic numbers

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.
Example logic for Backend configuration

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