Skip to content

Intro & Setup

GrowthBook is an open-source platform that combines three capabilities in a single tool:

  • Feature flags — gate any code path behind a named toggle you control from the UI.
  • A/B testing & experimentation — run statistically rigorous experiments without writing analysis code.
  • Analytics on your own data warehouse — connect Snowflake, BigQuery, Redshift, or any SQL source you already own; GrowthBook never touches your raw events.

You can self-host it on your own infrastructure (Docker, Kubernetes) or use GrowthBook Cloud with no server to manage. This course uses Docker so every concept is reproducible locally.

LessonSlugTopic
1index (this page)Module overview & the core loop
2what-is-growthbookThree pillars — flags, experiments, analytics
3run-with-dockerDocker Compose setup
4first-loginAdmin account & navigating the UI
5sdk-connectionSDK Connection key & first SDK call

Every GrowthBook workflow follows four steps:

  1. Run GrowthBook — start the platform (Docker or Cloud).
  2. Log in — create your admin account and explore the dashboard.
  3. Create a feature flag — give it a key, a type, and a default value.
  4. Read the flag in your app via the SDK — one isOn() call is all it takes.

The snippet below shows the minimal SDK setup you will build toward in Lesson 5.

import { GrowthBook } from "@growthbook/growthbook";
const gb = new GrowthBook({
apiHost: "https://cdn.growthbook.io",
clientKey: "sdk-abc123", // from SDK Connection page
});
await gb.loadFeatures();
if (gb.isOn("dark-mode")) {
enableDarkMode();
}
import { GrowthBook } from "@growthbook/growthbook";

const gb = new GrowthBook({
  apiHost: "https://cdn.growthbook.io",
  clientKey: "sdk-abc123",          // from SDK Connection page
});

await gb.loadFeatures();

if (gb.isOn("dark-mode")) {
  enableDarkMode();
}
What is GrowthBook primarily used for?
What is the SDK clientKey used for?
What does "shipping dark" mean in a GrowthBook workflow?