
A Next.js example that uses Flags SDK and Statsig to change a greeting and show or hide a banner.
A minimal Next.js App Router example with two server-evaluated flags.
The Deploy button copies only this folder. It installs published SDK packages and uses the standard Next.js build command.
Install the Statsig integration, or use an existing Statsig project.
Create these two entities in your Statsig project:
| Name | Type | Configuration |
|---|---|---|
welcome_message_text | Dynamic Config | Set the default value to { "text": "Welcome to the Statsig example" }. |
show_banner | Feature Gate | Add a rule that passes for everyone (100%). |
Copy .env.example to .env.local and set:
STATSIG_SERVER_API_KEY: a server secret key from your Statsig project's API Keys settings.FLAGS_SECRET: generate a random secret with the command below.Optionally, enable Global Config Syncing in the Vercel integration and set both EXPERIMENTATION_CONFIG and EXPERIMENTATION_CONFIG_ITEM_KEY to use the synced configuration.
node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"
For a linked Vercel project, vercel env pull can populate .env.local.
The home page uses the Flags SDK's evaluate() API to evaluate both flags. Change the dynamic config or feature gate in Statsig and refresh the page after the SDK (or optional Global Config integration) has synced. Every visitor uses the same demo-user context; replace identify in flags.ts to add user targeting.
The example exposes its flag definitions at /.well-known/vercel/flags, protected by FLAGS_SECRET. The Vercel Toolbar is included during local development; link the project with vercel link from this folder and sign in to the toolbar to use Flags Explorer. Vercel injects the toolbar on preview deployments when enabled in project settings.
Open Flags Explorer in the toolbar to override welcome_message_text or show_banner for your session without changing the values in Statsig. Use the same FLAGS_SECRET in your local environment and the linked Vercel project.
Copy this folder, or use the Deploy button above. From the copied folder:
pnpm installpnpm dev
Open http://localhost:3000. For a production build, run pnpm build and pnpm start. Node.js 22 or newer is recommended.
Configure examples/providers/statsig/.env.local as described above. From the repository root:
pnpm installpnpm exec turbo run dev --filter=flags-sdk-statsig
The root pnpm-workspace.yaml overrides this example's flags and @flags-sdk/statsig dependencies to workspace:*. Explicit task dependencies in the root turbo.json ensure Turbo builds the local SDK and adapter before starting Next.js, since Turbo does not infer workspace links from pnpm overrides.
The root pnpm build builds only packages/*. Use pnpm build:all to build the entire workspace, including all examples and apps, after configuring their environments. To build only this example and its dependencies:
pnpm exec turbo run build --filter=flags-sdk-statsigpnpm --filter flags-sdk-statsig start
To deploy the workspace version on Vercel:
examples/providers/statsig.cd ../../.. && pnpm install --frozen-lockfile.cd ../../.. && pnpm exec turbo run build --filter=flags-sdk-statsig.When cloned independently, the root overrides are absent and the regular versions in package.json resolve from npm. No workspace files, shared TypeScript configuration, or build scripts are needed for the standalone app.