The Wire · Showcase
VERCEL SHIPS VITEST ACROSS MONOREPO, CUTS CLI TEST TIME 60%
By RepoJournal · Filed · About Vercel
The Vercel monorepo ripped out Jest entirely and migrated to Vitest, shattering CLI unit test times from 22 minutes to 9 minutes by sharding into 7 parallel chunks.
This isn't a gradual migration — it's a wholesale replacement [1] that touches every test runner, TypeScript global, and CI discovery mechanism across the workspace. The test time collapse comes from a clever Windows-compatible sharding strategy [2] that routes test paths through environment variables instead of CLI arguments, bypassing cmd.exe's 8191-character limit that was crippling parallel execution. Meanwhile, the team is laying groundwork for continuous bleeding-edge deployments with canary snapshot releases [3] that auto-publish to npm whenever main merges, letting CLI users stay on the cutting edge without waiting for stable releases. On the CLI side, two quality-of-life wins landed: `--yes` now enables full browser recovery flows for coding agents like Claude Code and Cursor [4], and Firewall commands finally surfaced in help output [5] after living hidden for too long. Across the stack, Workflow's doing heavy lifting — auto-detecting when serverExternalPackages accidentally hide workflow code [6], shipping serializable AbortController/AbortSignal [7], and fixing `this` binding in nested arrow step functions [8]. Turbopack shrank its task tracker [10] and next.js killed off stale CI credentials in favor of a dedicated GitHub app [11][12]. Security fixes landed quietly but critically: Turborepo now blocks OTEL token injection to spoofed origins [13], filters microfrontend proxy env vars [15], and validates Host headers before routing [16].
Action items
- → Upgrade your test suite to Vitest if you haven't — this is the monorepo standard now [ref:1] vercel/vercel [plan]
- → If you're using Turborepo with remote cache, pull the OTEL token injection fix immediately [ref:16] vercel/turborepo [immediate]
- → Check that your tsconfig `paths` aliases work with TypeScript ESM in turbo boundaries [ref:17] vercel/turborepo [plan]
- → Review the Workflow v4/v5 docs split — content trees are now independent [ref:10] vercel/workflow [monitor]
References
- [1] Replace Jest with Vitest across workspace tests ↗ vercel/vercel
- [2] [ci] Shard vercel CLI unit tests into 7 chunks via VITEST_TEST_FILES ↗ vercel/vercel
- [3] Add canary snapshot releases (#16206) vercel/vercel
- [4] refactor(cli): let `--yes` enable connex token recovery in non-TTY (#16074) vercel/vercel
- [5] feat(cli): Add Vercel Firewall CLI commands to help (#16205) vercel/vercel
- [6] Auto-remove workflow packages from serverExternalPackages (#1481) vercel/workflow
- [7] feat: serializable AbortController/AbortSignal (#1301) vercel/workflow
- [8] [swc-plugin] Capture lexical `this` for nested arrow step functions (#1935) vercel/workflow
- [9] docs: split v4/v5 content trees and fix version switcher end-to-end (#1948) vercel/workflow
- [10] [turbopack] Simplify local task tracking (#93478) vercel/next.js
- [11] [ci] Move Turbopack, Rspack and font data workflows off of `RELEASE_BOT_GITHUB_TOKEN` ↗ vercel/next.js
- [12] [ci] Migrate React sync off of `RELEASE_BOT_GITHUB_TOKEN` ↗ vercel/next.js
- [13] fix: Prevent OTEL token injection to spoofed origins (#12727) vercel/turborepo
- [14] fix: Resolve TypeScript `.js` extension imports to `.ts` files in boundaries ↗ vercel/turborepo
- [15] fix: Filter microfrontend proxy environments ↗ vercel/turborepo
- [16] fix: Validate microfrontend proxy Host header ↗ vercel/turborepo
FAQ
- What changed in Vercel on May 6, 2026?
- The Vercel monorepo ripped out Jest entirely and migrated to Vitest, shattering CLI unit test times from 22 minutes to 9 minutes by sharding into 7 parallel chunks.
- What should Vercel teams do about it?
- Upgrade your test suite to Vitest if you haven't — this is the monorepo standard now [ref:1] • If you're using Turborepo with remote cache, pull the OTEL token injection fix immediately [ref:16] • Check that your tsconfig `paths` aliases work with TypeScript ESM in turbo boundaries [ref:17]
- Which Vercel repositories shipped on May 6, 2026?
- vercel/vercel, vercel/workflow, vercel/next.js, vercel/turborepo