Skip to content

Commit a1bc023

Browse files
committed
Add nextjs vercel toolbar instructions (aligned with sveltekit)
1 parent f302da3 commit a1bc023

File tree

2 files changed

+53
-4
lines changed

2 files changed

+53
-4
lines changed

skills/flags-sdk/SKILL.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ Check the project state to decide which steps you can skip:
7171
- Does `.vercel/` directory exist? → Project is linked, skip `vercel link` in step 2
7272
- Does `.env.local` contain `FLAGS=`? → Env vars already pulled, skip step 3
7373
- Does `flags.ts` (or `lib/flags.ts`, `src/flags.ts`) exist? → Add to it rather than creating from scratch (step 4)
74-
- Does `app/.well-known/vercel/flags/route.ts` exist? → Flags Explorer already set up, skip step 6
74+
- Is `@vercel/toolbar` in `package.json`? → Skip toolbar setup (step 6)
75+
- Does `app/.well-known/vercel/flags/route.ts` exist? → Flags Explorer already set up, skip step 7
7576

7677
### Steps
7778

@@ -109,7 +110,13 @@ Check the project state to decide which steps you can skip:
109110
}
110111
```
111112

112-
6. **Set up Flags Explorer** (if not already present): Create `app/.well-known/vercel/flags/route.ts` — see the [Flags Explorer setup](#flags-explorer-setup) section below.
113+
6. **Set up the Vercel Toolbar** (if not already present):
114+
- Install `@vercel/toolbar`
115+
- Wrap `next.config.ts` with the toolbar plugin
116+
- Render `<VercelToolbar />` in the root layout
117+
See [references/nextjs.md — Toolbar Setup](references/nextjs.md#toolbar-setup) for the full code.
118+
119+
7. **Set up Flags Explorer** (if not already present): Create `app/.well-known/vercel/flags/route.ts` — see the [Flags Explorer setup](#flags-explorer-setup) section below.
113120

114121
## Vercel Flags
115122

@@ -311,7 +318,7 @@ import { FlagValues, FlagDefinitions } from 'flags/react';
311318

312319
Detailed framework and provider guides are in separate files to keep context lean:
313320

314-
- **[references/nextjs.md](references/nextjs.md)**: Next.js quickstart, App Router, Pages Router, middleware/proxy, precompute, dedupe, dashboard pages, marketing pages, suspense fallbacks
315-
- **[references/sveltekit.md](references/sveltekit.md)**: SvelteKit quickstart, hooks setup, toolbar, precompute with reroute + middleware, dashboard pages, marketing pages
321+
- **[references/nextjs.md](references/nextjs.md)**: Next.js quickstart, toolbar, App Router, Pages Router, middleware/proxy, precompute, dedupe, dashboard pages, marketing pages, suspense fallbacks
322+
- **[references/sveltekit.md](references/sveltekit.md)**: SvelteKit quickstart, toolbar, hooks setup, precompute with reroute + middleware, dashboard pages, marketing pages
316323
- **[references/providers.md](references/providers.md)**: All provider adapters — Vercel, Edge Config, Statsig, LaunchDarkly, PostHog, GrowthBook, Hypertune, Flagsmith, Reflag, Split, Optimizely, OpenFeature, and custom adapters
317324
- **[references/api.md](references/api.md)**: Full API reference for `flags`, `flags/react`, `flags/next`, and `flags/sveltekit`

skills/flags-sdk/references/nextjs.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Table of Contents
44

55
- [Quickstart](#quickstart)
6+
- [Toolbar Setup](#toolbar-setup)
67
- [App Router](#app-router)
78
- [Pages Router](#pages-router)
89
- [Evaluation Context](#evaluation-context)
@@ -32,6 +33,45 @@ export const exampleFlag = flag({
3233
});
3334
```
3435

36+
## Toolbar Setup
37+
38+
1. Install `@vercel/toolbar`
39+
2. Add Next.js plugin:
40+
41+
```ts
42+
// next.config.ts
43+
import type { NextConfig } from 'next';
44+
import createWithVercelToolbar from '@vercel/toolbar/plugins/next';
45+
46+
const nextConfig: NextConfig = {};
47+
48+
const withVercelToolbar = createWithVercelToolbar();
49+
export default withVercelToolbar(nextConfig);
50+
```
51+
52+
3. Render toolbar in root layout:
53+
54+
```tsx
55+
// app/layout.tsx
56+
import { VercelToolbar } from '@vercel/toolbar/next';
57+
58+
export default function RootLayout({
59+
children,
60+
}: {
61+
children: React.ReactNode;
62+
}) {
63+
const shouldInjectToolbar = process.env.NODE_ENV === 'development';
64+
return (
65+
<html lang="en">
66+
<body>
67+
{children}
68+
{shouldInjectToolbar && <VercelToolbar />}
69+
</body>
70+
</html>
71+
);
72+
}
73+
```
74+
3575
## App Router
3676

3777
Call the flag function from any async server component or proxy:
@@ -432,6 +472,8 @@ The `hasAuthCookieFlag` checks cookie existence without authenticating. Two shel
432472

433473
## Flags Explorer (Next.js)
434474

475+
The Flags Explorer is part of the Vercel Toolbar. Before adding the discovery endpoint below, make sure the toolbar is set up by following the [Toolbar Setup](#toolbar-setup) steps first.
476+
435477
### App Router
436478

437479
```ts

0 commit comments

Comments
 (0)