Using Edge Config with Statsig
Learn how to use Edge Config with Vercel's Statsig integration.Statsig is a statistics engine that enables you to automate A/B testing and make data-driven decisions at scale.
The Statsig integration enables you to replace hard-coded values in your application with dynamic values on the server.
Before using this integration, you should have:
-
The latest version of Vercel CLI. To check your version, use
vercel --version
. To install or update Vercel CLI, use:pnpm i -g vercel@latest
-
A project. If you don't have one, you can run the following terminal commands to create a Next project:
pnpm i next
terminalnpx create-next-app@latest
-
A Vercel project. If you don't have one, see Creating a Project
-
An Edge Config. If you don't have one, follow the Edge Config quickstart
-
The Edge Config SDK:
pnpm i @vercel/edge-config
The following steps will walk you through:
- Configuring Vercel's Statsig integration
- Using the integration to manage Statsig experiments from your frontend code
Visit the Statsig page in the Integration Marketplace and select the Add Integration button. Then:
- Select a Vercel team and Vercel project for your integration to be applied to
- Log into Statsig
- Select or create a new Edge Config to connect to Statsig
- Statsig will provide you with a Connection String and Edge Config Item Key. Save both, as you'll need them later in the setup
Navigate to your Vercel dashboard, and select the project you want to use the Statsig integration with.
Under the Settings tab, navigate to Environment Variables, and add the following variables:
EDGE_CONFIG
: Set this to the value of your Connection StringEDGE_CONFIG_ITEM_KEY
: Set this to the value of your Edge Config Item Key
See our Environment Variables documentation to learn more.
Statsig's
statsig-node-vercel
package offers anEdgeConfigDataAdapter
class, which you can use to initialize Statsig experiments with Edge Config.The following example sets up a Statsig experiment with Edge Config in an Edge Middleware file, using the
EDGE_CONFIG_ITEM_KEY
enviroment variable.middleware.tsimport { NextResponse } from 'next/server'; import type { NextRequest } from 'next/server'; import Statsig from 'statsig-node'; import { createClient } from '@vercel/edge-config'; import { EdgeConfigDataAdapter } from 'statsig-node-vercel'; export const config = { matcher: '/', }; const edgeConfigClient = createClient(process.env.EDGE_CONFIG!); const dataAdapter = new EdgeConfigDataAdapter({ edgeConfigClient: edgeConfigClient, edgeConfigItemKey: process.env.EDGE_CONFIG_ITEM_KEY!, }); export async function middleware(request: NextRequest) { await Statsig.initialize('statsig-server-api-key-here', { dataAdapter }); const experiment = await Statsig.getExperiment( { userID: 'exampleId' }, 'statsig_example_experiment', ); // Do any other experiment actions here // Ensure that all logged events are flushed to Statsig servers before the middleware exits event.waitUntil(Statsig.flush()); return NextResponse.next(); }
Quickstart
Create and read from your Edge Config in minutes.
Read with the SDK
Read from your Edge Config at the fastest speeds.
Use the Dashboard
Manage your Edge Configs in the Vercel dashboard.
Manage with the API
Manage your Edge Configs with the Vercel API.
Edge Config Limits
Learn about the limits of Edge Configs.
Was this helpful?