Back to timeline

Vercel Flags: Platform-native feature flags

Vercel News·Malavika Tadeusz·

At Vercel, feature flags are how we ship. From new features to model updates in v0, and even infrastructure changes like a production database migration where a flag was the cutover. The team alone runs hundreds at any given moment.v0

Merging code sends a build to production, but the feature flags control whether users can see what changed. Flags let you ship on your own schedule, release to segments when you're ready, and roll back immediately by toggling a flag, without touching source files or redeploying.

is platform-native: server-side by default, zero impact on page performance, and directly integrated with the frameworks you already use. Vercel Flags

Vercel Flags lets you create feature flags, define targeting rules by user attributes, segments, or environment, run progressive rollouts, and flip kill switches if something breaks in production.

From your code, you read flags through , an open-source, provider-agnostic library we maintain with first-class adapters for and . If you are using another framework, you can consume Vercel Flags using the built-in OpenFeature provider.Flags SDKNext.jsSvelteKit

The sits alongside your project and deployments, where you can create and manage flags.Vercel Flags dashboard

But what makes Vercel Flags different from other flag services is the framework integration.

Other flag providers give you a generic SDK to wire through your framework yourself, and a separate dashboard to manage flags in. Vercel Flags is built into the Vercel platform, so you manage flags in the same dashboard as your deployments, and your code reads them through the framework-native Flags SDK.

When a flag is evaluated on the client, users see a loader, a flicker, or a layout shift. The browser can't render the correct view until the flag value comes back. The Flags SDK evaluates on the server instead. With Next.js React Server Components, you read the flag with during render. The correct view is determined server-side and the browser renders it directly, with no separate flag request. That value comes from Vercel Flags, where a configuration change propagates to every region within milliseconds.await

For advanced cases, you can pass the flag as a promise to a client component rather than awaiting it. This lets the page start rendering before the flag value arrives, with the component showing a fallback in the meantime. The flag still resolves on the server, so there is no browser-side request for it.

Vercel Flags registers flags automatically. Define one in code, deploy, and it appears in the dashboard as a draft. Promote the draft when you're ready to configure targeting and roll out. Remove the flag from your code and the dashboard marks it as unreferenced, so you always know what's safe to archive. The flags you write are the flags you manage, with no separate list to keep in sync by hand.

Static pages are fast and consistent because they are served from the CDN regions closest to you and your users. But adding a flag makes a page dynamic. Either you render server-side and lose CDN delivery, or you fetch the flag client-side and get layout shift back. However, Flags SDK comes with an optional, advanced pattern that solves this. Precompute lets you build all variants at build time, distribute them through the CDN, and have (the file in Next.js) route each user to the right one. Every page stays static and loads with no layout shift.Routing Middlewareproxy.ts

The CLI exposes the same flag management from your terminal, so you and your coding agents can create flags, configure targeting, run rollouts, and archive them.vercel flags

, built into the , lets you override any flag in your browser session to test a variant. The shared configuration stays untouched and you do not redeploy.Flags ExplorerVercel Toolbar

While in April 2026, we've been using it internally for over a year. The team is a good example of what this looks like at scale, with hundreds of flags active at any given moment.we made Vercel Flags generally availablev0

Here are some examples of what teams put behind flags:

For a product like v0, any added latency degrades the end-user experience. Because Vercel Flags evaluates server-side, the team gets feature flagging without the additional round trip that client-side flag evaluation adds.

Because every new feature is built behind a flag, developers can merge to continuously without releasing unfinished work. There are no long-lived branches and no painful merge conflicts to resolve. Deploying code and releasing a feature become two separate decisions.main

A release moves through a controlled progression. The developer who built the feature sees it first, then the internal team. After that, the flag steps up through 5%, 10%, 25%, and 50% of users for six hours each, before going to everyone. If something goes wrong at any stage, the team can kill the feature without making a code change or redeploying.

Flags also control v0's AI model traffic, shifting gradually when a new model launches rather than cutting over all at once.

v0 even ran a production database migration with a flag. We kept the old and new databases in sync, and the flag controlled which database was in use. Flipping the flag was the cutover itself. We rehearsed it in staging repeatedly, then ran it in production without degrading traffic. The flag turned a high-stakes infrastructure change into something the team could practice, schedule, and ship with confidence.

Once shipping code and releasing a feature are separate stages, you can start to just ship things with a level of confidence that you couldn't get from PRs alone.

is available on every plan. The CLI allows you and your agents to create, inspect, manage rollouts, and archive flags from anywhere.Vercel Flagsvercel flags

Read the to get started, or ask your agent for help with the .Vercel Flags documentationFlags SDK skill

Read more

What is Vercel Flags

Why framework-native matters

Vercel ships on Vercel Flags

Get started

Server-side evaluation

Automatic flag registration

Precompute

Agent-native flag management

Overriding flags in the browser

  • New features under development

  • AI model routing per user or segment

  • Operational kill switches

  • Database migrations and provider swaps

  • Beta access for early customers or internal teams