Vercel CI is worth trying if your Next.js repo is private, already on Vercel, and your checks are slow because they rerun everything on every push. It reads your Turborepo task graph, runs only what a change affects, and bills per CPU minute. GitHub Actions is still the general-purpose tool: any trigger, any OS, deploys, schedules, and free on public repos. For most teams the answer for now is both, with GitHub Actions keeping the jobs Vercel CI can't do.
Everything below was checked against Vercel's and GitHub's own docs and pricing pages on 2 November 2026. Vercel CI is a beta from 28 October, so treat the numbers as a snapshot, not a contract.
What Vercel launched on 28 October 2026
Vercel announced Vercel CI in beta on 28 October 2026 (also in the changelog). The pitch is aimed squarely at people whose coding agents open more pull requests than humans can wait for: most CI reruns the whole workflow for a one-line change, and that gets expensive when agents push all day.
How it works, according to the Vercel CI docs:
- You tag Turborepo tasks with
"tags": ["ci"]inturbo.json. - On every
git push, Turborepo works out which tagged tasks the change affects. - Tasks whose inputs haven't changed come back from Vercel Remote Cache, on by default.
- The rest run in dependency order, each on its own isolated machine.
- Vercel posts a check to the pull request, so branch protection can block merges as it does today.
{
"tasks": {
"lint": { "tags": ["ci"] },
"typecheck": { "tags": ["ci"] },
"build": { "tags": ["ci"], "outputs": [".next/**", "!.next/cache/**"] }
}
}
That's the whole config. No workflow YAML. Vercel's claim is that push-to-green in its own repos got 2 to 6 times faster, and that the system has run nearly 8 million tasks across its repos and the private beta. Those are Vercel's numbers about Vercel's repos; I haven't reproduced them.
Vercel CI vs GitHub Actions: the comparison table
| Vercel CI (beta) | GitHub Actions | |
|---|---|---|
| Status | Beta since 28 Oct 2026; "features and configuration may change" | Generally available |
| Config |
ci tags in turbo.json
|
YAML in .github/workflows/
|
| What runs | Only tagged Turborepo tasks the change affects, plus their dependencies | Whatever the workflow says, every time, unless you add filters |
| Triggers |
git push only |
Push, pull request, schedule, manual, issues, labels, releases and more |
| Operating systems | Linux only (Amazon Linux 2023 by default, Ubuntu image optional) | Linux, Windows, macOS |
| Repo support | GitHub only, private repos only | GitHub, public and private |
| Compute | 2 CPUs / 4 GB per task by default, up to 32 CPUs | 2-core Linux standard runner; larger runners on Team and Enterprise |
| Caching | Vercel Remote Cache, zero config |
actions/cache, or Remote Cache with TURBO_TOKEN secrets |
| Free allowance | Hobby: 200 CPU minutes/month | Free: $12/month of compute on private repos; standard runners free on public repos |
| Paid rate | Pro: $0.0035 per CPU minute, billed per second | 2-core Linux: $0.006 per minute, rounded up per job |
| Logs and reruns | Dashboard CI tab, vercel ci CLI, Vercel MCP, REST API |
Actions tab, gh CLI, REST API |
Sources: Vercel CI docs, Vercel's migration guide, Vercel CI pricing, Vercel pricing, GitHub Actions billing and runner pricing, all as of 2 November 2026.
Pricing, with the arithmetic
The units differ, which is where comparisons usually go wrong.
Vercel CI bills CPU minutes: CPUs requested multiplied by run time, rounded up to the second. Each run pays for bootstrapping (cloning and installing dependencies, 4 CPUs by default) plus each task that actually runs (2 CPUs by default). Cached and skipped tasks cost nothing.
GitHub Actions deducts a dollar amount from your plan's included compute. The standard 2-core Linux runner costs $0.006 a minute, and each job is rounded up to the whole minute. GitHub Free includes $12 a month, which is 2,000 minutes on that runner. Public repos on standard runners don't count at all.
A made-up but realistic Next.js run, to show the shape (the durations are mine, not measured):
| Step | Vercel CI | GitHub Actions (one job) |
|---|---|---|
| Install deps, 1 min | 4 CPUs × 1 = 4 CPU min | 1 min |
| Lint, 1 min | 2 × 1 = 2 CPU min | 1 min |
| Type check, 1 min | 2 × 1 = 2 CPU min | 1 min |
next build, 3 min |
2 × 3 = 6 CPU min | 3 min |
| Total, cold | 14 CPU min ≈ $0.049 on Pro | 6 min = $0.036 |
On a cold run Vercel CI is not cheaper. It wins when most tasks come from cache, for example a docs-only change where only lint is affected. Then the bill is bootstrap plus one small task, and the wall clock is shorter because tasks run in parallel on separate machines.
The free tiers are where the difference is stark. Vercel Hobby's 200 CPU minutes is about 14 cold runs of the example above. GitHub Free's $12 covers about 333 of them on a private repo. If you're a solo developer pushing all day, do that maths before you migrate.
The limits that decide it for most people
Straight from Vercel's docs, as of 2 November 2026:
- Public repositories aren't supported. Open-source projects stay on GitHub Actions, where standard runners are free.
- GitHub only. No GitLab or Bitbucket.
-
git pushis the only trigger. No cron, no manual dispatch, no "run when someone adds a label". - Linux only. macOS and Windows test jobs stay where they are.
-
Turborepo 2.11.7+ and Vercel CLI 64.3.1+. Older Turborepo rejects the
tagskey. - Node.js 24 image. Vercel's guide says Vercel CI currently provides Node.js 24; if you pin Node 22 in your workflow, test that first.
- One Vercel team per repo. A repo linked to projects on two teams won't enable.
-
It tests the pushed commit, not GitHub's merge commit. A
pull_requestworkflow in Actions tests the merge result by default, so the two can disagree on a branch that's behind main.
One beta-shaped caveat: on Vercel's community forum a user reported cache misses across Git refs with identical task hashes (29 October). When I checked on 2 November the thread had no reply from Vercel, so I'd treat cross-branch cache reuse as "verify on your repo".
What GitHub Actions still does that Vercel CI doesn't
Vercel's own migration guide says to keep these in GitHub Actions:
- Deploys and package publishing
- Scheduled jobs
- Workflows triggered by issues or labels
- Anything that needs macOS or Windows
- Commands that aren't Turborepo tasks (or turn them into
package.jsonscripts and tasks first)
Add security scanning, release automation and anything that comments on PRs with a custom bot, and most real repos keep at least one workflow file. Vercel CI covers the checks, not the automation.
Running a Next.js product where CI time or agent pull requests are piling up and you want the checks, caching and merge gates set up properly?
What this site actually runs
For context, not as a benchmark: this site is a single Next.js 16 app deployed on Vercel. Its repo has no .github/workflows folder and no turbo.json, and the only checks on its commits are Vercel's deployment and a GitGuardian secret scan. The gate before merging is that the preview build passes and the preview renders. Vercel's own GitHub Actions guide is blunt that a Vercel build doesn't run your tests, so "the deploy went green" proves the site builds and nothing more.
So for a repo like this one, the honest choice isn't between Vercel CI and GitHub Actions. It's whether to add a lint and type-check step at all. If I add one, Vercel CI is a few lines (turbo as a dev dependency, a turbo.json, vercel ci enable), but the beta label, and the fact that nothing here runs tests yet, are why I'd not move anything important onto it yet.
Which one to pick
- Private Turborepo monorepo on Vercel, slow PR checks, lots of agent PRs: try Vercel CI. Run it side by side with your workflow, as Vercel's guide suggests, then switch the required check.
- Single Next.js app, few checks, Hobby plan: GitHub Actions. On private repos the free allowance is around 20 times larger for this kind of workload and the workflow file is one copy-paste.
- Public or open-source repo: GitHub Actions. Vercel CI doesn't support it yet.
- Scheduled jobs, releases, deploy gates, cross-OS tests: GitHub Actions, whatever you pick for checks.
- Most teams in practice: both. Vercel CI for lint, types and tests; GitHub Actions for everything with a trigger that isn't a push.
If agents are what's filling your queue, the CI speed-up only helps if review keeps pace too: see how to review AI-generated code for the tiering I'd put in front of it, and Claude Code vs Codex if you're picking the agent that opens those PRs.
About the author
I'm Joan Comadran, an industrial engineer turned AI engineer and full-stack developer in Barcelona. I build and deploy Next.js products on Vercel, this site included. This comparison comes from Vercel's and GitHub's documentation and pricing pages checked on 2 November 2026 and from what this site's own repo runs, not from a long production history with a beta that's five days old. If you want CI, previews and merge gates set up on a real product, that's what I do.
FAQ
Is Vercel CI a replacement for GitHub Actions?
Only for part of it. Vercel CI runs Turborepo tasks tagged ci (lint, type checks, tests, builds) on every git push and posts a check to your pull request. It has no schedules, no issue or label triggers, no macOS or Windows runners and no deploy or publish steps, and Vercel's own migration guide says to keep those jobs in GitHub Actions. As of 2 November 2026 it is also in beta.
How much does Vercel CI cost?
As of 2 November 2026, Vercel's pricing page lists 200 CPU minutes a month included on Hobby and $0.0035 per CPU minute on Pro, with custom pricing on Enterprise. Each run bills the dependency install (4 CPUs by default) plus every task that actually runs (2 CPUs by default). Tasks restored from cache or skipped as unaffected use no CPU minutes.
Do I need Turborepo to use Vercel CI?
Yes. Vercel CI reads turbo.json to decide what to run, and needs Turborepo 2.11.7 or later plus Vercel CLI 64.3.1 or later. Vercel says it also works in single-package repos, so a plain Next.js app can add turbo and a turbo.json with lint, typecheck or build tasks tagged ci.
Does Vercel CI work with public GitHub repositories?
Not yet. As of 2 November 2026 the Vercel CI documentation lists public repositories as unsupported, along with any forge other than GitHub and any trigger other than git push. For open-source Next.js projects, GitHub Actions on standard runners remains free and is the practical choice.
Originally published on joancomadran.dev. I'm Joan, an AI engineer in Barcelona — work with me.
Top comments (0)