Skip to content

What is GrowthBook?

GrowthBook is an open-source feature-flagging and experimentation platform built around three core pillars.

Control feature visibility without requiring a new deploy. Wrap any code path behind a flag, then toggle it on or off — per environment, per audience segment, or for a percentage rollout — straight from the GrowthBook UI.

Run controlled experiments to measure the real impact of your changes. GrowthBook assigns users to variants, tracks exposures via your SDK, and then queries your data warehouse to compute statistical results — including Bayesian and frequentist analyses.

GrowthBook connects directly to your warehouse — Snowflake, BigQuery, Redshift, ClickHouse, and more. It queries your existing event tables and computes metrics on the fly. Your raw event data never leaves your infrastructure.

Self-HostGrowthBook Cloud
CostFreeFree tier, then paid
Data controlFullManaged
SetupDocker ComposeSign up
URLlocalhost:3000app.growthbook.io
ConceptDefinition
FeatureA named flag in GrowthBook that maps to a value in your code.
EnvironmentA deployment context — dev, staging, or production. Each feature can have different rules per environment.
SDK ConnectionThe pair of apiHost + clientKey that identifies your app to GrowthBook’s CDN.
ExperimentA controlled A/B or multivariate test linked to one or more Features.
MetricA measurable outcome (conversion, revenue, latency) defined against your warehouse tables.

GrowthBook supports more than booleans. Use getFeatureValue to read a JSON flag with a typed fallback:

import { GrowthBook } from '@growthbook/growthbook';
const gb = new GrowthBook({
apiHost: 'https://cdn.growthbook.io',
clientKey: 'sdk-YOUR_DEV_KEY',
});
await gb.init({ timeout: 2000 });
// JSON flag — returns the object or the fallback
const config = gb.getFeatureValue('checkout-config', { maxItems: 10, theme: 'light' });
console.log(config.theme); // 'dark' if the flag is on, 'light' otherwise
import { GrowthBook } from '@growthbook/growthbook';

const gb = new GrowthBook({
  apiHost: 'https://cdn.growthbook.io',
  clientKey: 'sdk-YOUR_DEV_KEY',
});

await gb.init({ timeout: 2000 });

// JSON flag — returns the object or the fallback
const config = gb.getFeatureValue('checkout-config', { maxItems: 10, theme: 'light' });
console.log(config.theme); // 'dark' if the flag is on, 'light' otherwise
How many core pillars does GrowthBook have?
What does an SDK Connection provide?
Where does GrowthBook store experiment data?
What does GrowthBook call a feature flag internally?