Skip to content

RoutingCat

RoutingCat shows each visitor of your Nuxt site one variant of each place you choose to vary. It learns which variants convert, and for whom, and it measures what routing adds against a control: 10% of visitors who always see your current pages. It is made for founders who work with a coding agent: you say what you want, with as much or as little direction as you like, and your agent does the work.

The loop

  1. Declare. You or your agent declare in code the pages that can vary, the slots on each and the variants for each slot. What your site shows today stays as each slot’s default.
  2. Deploy. Your usual deploy, to Vercel or Cloudflare. A production deploy makes the change live within about 2 minutes; new variants reach visitors no other way.
  3. Read. npx routingcat status says what is happening: what was counted, what the model predicts with its range, and the measured gain against the control.
  4. Act. Keep a variant, pause or retire one, or try the next idea. An act is live within about 2 minutes, without a deploy.

Routing is always on: each change is compared from the moment it goes live, and what to keep is a judgment on the evidence, yours or your agent’s. How RoutingCat works explains what happens behind each step.

What your site needs

  • Nuxt 4.6 or later. RoutingCat’s module, routingcat/nuxt, joins your nuxt.config. Setup stops on an older Nuxt and gives Nuxt’s command to upgrade. The module runs on Nuxt 4’s default server, Nitro 2, where the build stops on another, and your app is served from your site’s root, since RoutingCat matches your pages’ routes from there: with an app.baseURL of its own, it routes none of them.
  • Vercel, Cloudflare Workers or Cloudflare Pages. RoutingCat picks each visitor’s variants before your page is served: in a root middleware.ts on Vercel, or in a Worker in front of Nuxt’s on Cloudflare.
    • On Vercel, the app is linked to a Vercel project, and the Vercel CLI is signed in where you run setup. Each build proves itself with Vercel’s own token, so there is no secret to set.
    • On Cloudflare, Wrangler is signed in where you run setup, or the Wrangler configuration or CLOUDFLARE_ACCOUNT_ID names the account. Production builds run in CI, Cloudflare’s own builds or GitHub Actions, with your site’s deploy key in their variables, or on your machine, under your sign-in, once you confirm what goes live. The account is on Workers Paid: see Cloudflare.
  • A package manager: pnpm, npm, yarn or bun. Setup uses the one your lockfile names.
  • A coding agent that reads skills. Setup installs RoutingCat’s skill where Claude Code, Codex, Cursor, Gemini CLI and GitHub Copilot look for one. You can also run every command yourself.
  • A RoutingCat account, created at sign-in during setup. You start on Hobby, at no cost: up to 3 sites, sharing 10,000 visitors a month on routed pages and 10 live variants, with routing starting once a card is on file, nothing charged. See Plans, billing and emails.

The docs

Start here

  • How RoutingCat works: What happens when someone visits a routed page, how routing learns, what the measured gain is, and how sure each number is.

Get started

  • Set up RoutingCat: Install RoutingCat on a Nuxt site on Vercel, Cloudflare Workers or Cloudflare Pages, choose what it counts as a conversion, deploy, and check that it works.
  • Try your first idea: Try two new headlines and a shorter line under them on your Nuxt site’s home page, from the declaration to the first days of results.

Concepts

  • Pages, variants and versions: How to shape what can change on a page, how pages, slots, variants and versions are named, and what makes a new version.
  • Conversions and visits: What counts as a conversion, how RoutingCat counts in visits and windows, how a conversion finds its visit, and how far to trust each source of events.
  • How routing learns: How routing learns, enough to predict it: a contextual bandit with Thompson sampling, what it learns from, how it explores, how it learns for whom, and what edits and settings change.
  • What the numbers mean: The three kinds of number RoutingCat reports, what the measured gain is, how to read ranges, signal, labels and scorecards, when each figure updates, and what a missing value means.

Guides

  • Build a page: Declare a page’s slots and variants in code, and render them on a Nuxt page with RoutingCatSlot, whether Nuxt prerenders the page, regenerates it or renders it at each request.
  • Change, preview and deploy: Add, refine, remove or bring back variants, look at them before and after they go live, and know what each deploy to Vercel or Cloudflare makes live.
  • Track conversions: Report sign-ups, purchases and other conversions with routingcat.identify and routingcat.track from your Nuxt app’s server code, its pages or another backend, check that each reaches its visit, and record a tracking gap when tracking breaks.
  • Whop: Credit Whop payments and memberships to the visits that led to them by connecting your Whop company, then passing the visitor id in the checkout your server creates.
  • Clerk and other auth providers: Record each sign-up once, and link visitors to their accounts at every sign-in, from your Nuxt app’s server code, when Clerk or another provider creates the accounts.
  • PostHog: Put the visitor id and the variants on your PostHog events, take conversions your Nuxt app already captures in PostHog through a destination, and know who can read the key it holds.
  • Read and explain results: Read status, show, sources and download, and explain each figure to a person plainly, with how sure it is and without claiming more than the evidence supports.
  • Change what’s live: Pause, resume, promote, retire or revert from the command, safely, and keep your code in agreement with what’s live.
  • Routing settings: Change how a slot or the whole site is routed, with each setting’s range and default, in code or with set.
  • Work with your coding agent: How you use RoutingCat through your coding agent, from one precise change to experiments it runs for you, the skill that makes it an expert, the note in AGENTS.md that points it there, and how to run it in a sandbox.
  • Read the dashboard: Read your site’s figures, what routing gains on each page and how each variant does on the dashboard, over 7, 28 or 90 days, all time or the days you pick, turn what you see into a request for your coding agent, and find your Settings, your plan across your sites and each site’s settings.
  • Plans, billing and emails: What Hobby and Pro include and cost for every site you own, the card that starts routing on Hobby, Hobby’s 3 sites and the variants it holds past its 10, what happens past Hobby’s visitors or at Pro’s cap, how you upgrade, manage and cancel in Settings, and which emails RoutingCat sends.

Reference

  • Config and declarations: Every option of your site’s config and of its page, slot and variant declarations, with its type, default and rules.
  • JavaScript API: Every function, component and script your site’s code uses from RoutingCat, with its signature and options.
  • The routingcat command: Every command of npx routingcat, with its arguments, options and output, and the conventions they share: JSON, writes, exit codes, addresses and values.
  • JSON output: What every command prints with –json: the envelope, failures, messages and warnings, the fields of each figure, cursors and the contract’s version.
  • HTTP events API: Send conversions and identity links from any backend: the key, the body, the limits, the answers and when to retry.
  • Messages: Every warning and error RoutingCat shows, by its id: how serious it is, where it shows, what it means and how to fix it.
  • Limits and defaults: Every limit RoutingCat holds a page, a declaration or a setting to, and every default you start with, with its unit.
  • Glossary: Every term the RoutingCat documentation, the command and the dashboard use, in plain words.

Privacy and security

  • What RoutingCat collects: What RoutingCat records about your visitors, by category, and what it never stores: its cookies and browser storage, the requests your site makes, retention, deletion and how the data is used.
  • Access and keys: Who can act on your site, what each key allows, where it lives and how to replace it, what a leaked key would allow, which domains may send browser events, and how the command signs in.

Operate

  • Run it in production: What RoutingCat adds to each page of your Nuxt site on Vercel or Cloudflare, what happens when it can’t be reached, how routed pages work with caches and a Content Security Policy, and how to upgrade, pause or remove it.
  • Cloudflare: The Cloudflare settings that matter for a site RoutingCat runs on there, Workers Paid and what it costs, Workers Cache, Rocket Loader, Zaraz, cache rules, HTTPS and location, the deploy key Cloudflare’s builds carry, and production deployed from your machine.
  • Troubleshooting: Find a symptom on your Nuxt site, its cause and its fix, from a stopped init to a routed page that shows its defaults or conversions that don’t join, then read doctor’s checks one by one.

Next