Why evolveAB
evolveAB is A/B testing for the Next.js App Router that writes its own variants, runs them with no flicker, keeps visitor data in your Postgres, and ships winners as pull requests. Each of those four claims is below, with how it works and where to check it.
#No flicker
The variant is chosen on your server, before the page renders. Your proxy.ts reads a signed config held in memory, picks a variant and the page renders with it, so the HTML that reaches the browser already contains the variant. There is no script swapping content in the browser and no anti-flicker snippet hiding the page while one loads.
What it costs, measured: Evolve's code in the proxy takes 0.1 to 0.35 ms and makes no network call. On Vercel any proxy at all adds roughly 20 ms to a first page view (a proxy that does nothing measured 18 to 23 ms in our tests). Client-side tools commonly default to hiding the page for up to 4,000 ms.
Bots and crawlers always get control and no cookies, so search engines see your real page.
Check it: How a request is served · The anti-flicker tax · Two ways to serve a variant in the App Router
#Your data stays on your servers
Raw events go to your own Postgres, and Evolve Cloud never connects to it. Page views, exposures, goal events and identities are written by your app, on your origin, to your database. When the cloud needs numbers, it sends your app a signed request and gets back counts and sums per experiment, variant, goal and day. That is enough for Bayesian results and bandit weights.
Never sent to Evolve: visitor ids, your user ids, IP addresses, user agents, event props, page-view paths, individual events or timestamps. The cloud's database has no column for them, and a test fails if one is added.
Check it: What leaves your server (every call, both directions) · Four numbers per arm
#AI on autopilot, within guardrails
AI writes the challengers; checks and limits decide what reaches visitors. Every suggestion must fit the component's schema, leave locked fields alone, avoid your forbidden claims, not duplicate an existing variant, and pass a second model that reads it for unsupported claims against your brand profile. It then waits for your approval. Approved variants start at no more than 20% of traffic.
Autopilot is optional. It only turns on for a running bandit with auto-rollback on, fresh data, no failing guardrail and a saved brand profile, and it pauses itself when its data goes stale. Auto-rollback pauses a variant that hurts a guardrail goal or makes the page clearly slower (Core Web Vitals measured in visitors' browsers).
Check it: Five checks between an AI's draft and your homepage · What autopilot is allowed to do · Marketer guide: AI proposals and autopilot
#Winners come back as pull requests
When a variant wins, Evolve opens a pull request that puts it in your code. Click Promote winner and the Evolve GitHub App commits the winner's props into your repository, with the results table in the PR description. Once it merges and deploys, the region reports the new props and the experiment archives itself, so no finished test keeps running. Choose Unwrap and the PR also removes the testing wrapper, leaving plain component code.
This loop has run on a live production site: the first winner PR merged on November 9, 2026, and the experiment archived itself after the deploy. Winner pull requests are on the Growth and Enterprise plans and in the free trial.
Check it: Winner pull requests (setup, what the PR changes, what happens after the merge) · or start a 30-day free trial, no card needed, and connect a repository in site settings.
#Questions
#Does evolveAB work with the Pages Router?
No. It's built for the App Router: Next.js 15.5+ (proxy.ts on Next 16, middleware.ts on 15.5), Node 22.12+ and Postgres 14+.
#What do I need to install?
Run npx next-evolve init in your app. It sets up the proxy, the browser script, the API routes and the database tables. Then wrap a component with optimizable() and a Zod schema to make it testable. See the quickstart.
#Is the SDK open source?
Yes. next-evolve is MIT licensed and on npm. Evolve Cloud, which runs the statistics, the AI and the dashboard, is a hosted service.
#What does it cost?
A 30-day free trial of the full product, with no card. Then Free, Pro ($149 per site per month), Growth ($499 per month with 5 team members) or Enterprise. See pricing.