Vercel is the company behind Next.js, and the Vercel platform is built around running Next.js (and increasingly Astro, SvelteKit, Nuxt) better than anywhere else. If Firebase Hosting is “a CDN that knows how to call your backend,” Vercel is “a runtime that ships your framework end to end.” Below is the mental model, real pricing and limits as of June 2026, a baseline vercel.json, and the 5-minute deploy.
TL;DR
- Vercel turns a Git push into a deployed, SSR-capable framework app with zero server config. Next.js gets the deepest integration; Astro, SvelteKit, Nuxt, and Vite are first-class too.
- The free Hobby plan is personal and non-commercial only. Running ads (including Google AdSense) or taking payments means you need Pro at $20/seat/month.
- Pick Vercel when you want framework features (SSR, ISR, image optimization, preview deploys) to work out of the box. For a plain static site at scale, Firebase Hosting or Cloudflare Pages is usually cheaper.
How Vercel actually works
Vercel grew from “deploy a Next.js app in 30 seconds” into a full platform: serverless functions, edge functions, Incremental Static Regeneration (ISR), image optimization, and analytics. The model is simple. You connect a Git repository, and every push produces a deployment. Pushes to your production branch update the live site; every other branch and pull request gets its own preview URL.
The part that trips people up is billing. Firebase’s free Spark tier is a fixed allowance that you cannot exceed without explicitly enabling pay-as-you-go. Vercel’s Hobby tier is a free allowance that pauses when exhausted, and Pro is usage-based: a base seat fee plus metered overages. You should understand that shape before you commit a commercial project.
Should you use Vercel?
Use Vercel when:
- You are building with Next.js, Astro, SvelteKit, Nuxt, or another supported framework and want SSR, ISR, and image optimization with zero config.
- You want a preview deployment on every pull request, with a per-branch URL and an automatic PR comment.
- You are comfortable with usage-based billing as you grow, rather than a hard free ceiling.
Skip Vercel when:
- Your stack is already on Firebase and you want one console for hosting, auth, and database.
- Your site is plain static HTML at meaningful scale, where Firebase Hosting (free Spark tier allows commercial use) or Cloudflare Pages will cost less.
Pricing and limits (June 2026)
The free Hobby plan is genuinely useful, but read the fair-use rule first: Vercel defines commercial usage to include “any method of requesting or processing payment” and “the inclusion of advertisements, including but not limited to online advertising platforms like Google AdSense.” Donations are exempt. So a hobby blog with AdSense on it technically needs Pro. Firebase Hosting’s free Spark tier, by contrast, permits commercial use.
| Hobby (Free) | Pro ($20/seat/mo) | |
|---|---|---|
| Commercial use | Not allowed | Allowed |
| Fast Data Transfer (bandwidth) | 100 GB/mo | 1 TB included, then metered |
| Function invocations | 1 million/mo | 1 million included, then $0.60/1M |
| Active CPU | 4 CPU-hours/mo | Included credit, then metered |
| Edge requests | Included allowance | 10 million included, then metered |
| Build execution | 6,000 min/mo | Included credit |
| Deployments per day | 100 | 6,000 |
| Build time per deployment | 45 min | 45 min |
| Concurrent builds | 1 | 12 |
| Runtime log retention | 1 hour | 1 day |
| Custom domains per project | 50 | Unlimited (soft cap) |
When a Hobby project hits its allowance, deployments pause until the cycle resets; there is no surprise overage bill. Pro includes a $20 usage credit on top of the seat fee, and extra usage is metered (transfer and edge requests are now priced regionally). Source: Vercel limits and Vercel pricing.
Function duration: what changed with Fluid Compute
This is the number people most often get wrong. With Fluid Compute (enabled by default for projects since April 2025), the duration limits are no longer the old 60-second-Hobby figures:
| Plan | Default max duration | Maximum (Fluid Compute) |
|---|---|---|
| Hobby | 300s (5 min) | 300s (5 min) |
| Pro | 300s (5 min) | 800s (13 min) |
| Enterprise | 300s (5 min) | 800s (13 min) |
Legacy projects created before April 2025 and not using Fluid Compute still cap at 60s on Hobby, 300s on Pro, and 900s on Enterprise. For anything truly long-running, Vercel now points you to Vercel Workflows, which pause and resume with no duration limit. Functions still cannot act as a WebSocket server, so realtime needs a third-party service.
Five-minute deploy
Before you start
- A repo on GitHub, GitLab, or Bitbucket.
- Your framework decided (Next.js, Astro, etc.).
- A custom domain ready (optional).
Note: a Hobby team cannot connect to Git repositories owned by a Git organization — those require a Pro team. Personal repos are fine on Hobby.
Step by step
-
Sign up via your Git host at vercel.com. Vercel inherits your repositories.
-
Import the repo and let Vercel auto-detect the framework. It pre-fills the build command and output directory. For an Astro project:
Framework Preset: Astro
Build Command: astro build
Output Directory: dist
Install Command: npm install
Root Directory: ./
- Add a
vercel.json(optional but useful) to control headers, redirects, and clean URLs:
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"cleanUrls": true,
"trailingSlash": true,
"redirects": [
{ "source": "/blog/(.*)", "destination": "/articles/$1", "permanent": true }
],
"headers": [
{
"source": "/(.*)\\.(jpg|png|svg|webp|woff2)",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=2592000" }
]
},
{
"source": "/_astro/(.*)",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=31536000, immutable" }
]
}
]
}
Each redirect, rewrite, and header counts toward the 2,048 routes-per-deployment limit, so keep the list lean.
- Deploy from the CLI for repeatability:
npm install -g vercel
vercel link # link local repo to a Vercel project
vercel --prod # production deploy
# Production: https://your-project.vercel.app
-
Add a custom domain. Go to Project, then Settings, then Domains, and add
yourdomain.com. Configure DNS using the values shown in your project settings. Vercel’s general-purpose values are apexA 76.76.21.21and wwwCNAME cname.vercel-dns.com, but runvercel domains inspect yourdomain.comto confirm the exact records for your project before you change DNS. SSL is provisioned automatically. -
Set environment variables for Production and Preview:
vercel env add OPENAI_API_KEY production
vercel env add SITE_URL production
# https://yourdomain.com
The total size of all environment variables per environment is capped at 64 KB, which is also the max size of any single variable.
-
Use preview deployments for pull requests. Every PR gets its own URL automatically, and Vercel posts a comment with the link. Previews are
noindexby default, so they will not compete with your production pages in search. -
Confirm the deploy with
curland Lighthouse:
curl -sI https://your-project.vercel.app/ | grep -i x-vercel
# x-vercel-cache: HIT
# x-vercel-id: ...
npx lighthouse https://your-project.vercel.app/ --only-categories=performance,seo --chrome-flags="--headless"
Launch checklist
- Framework preset matches reality.
vercel.jsonagrees with your framework on trailing slash and clean URLs.- Production env vars set, and Preview env vars set if previews need them (a missing Preview var makes preview deploys fail silently).
- Custom domain has valid SSL and both
vercel.appand the apex return 200. - DevTools Network tab shows
immutablecache on hashed assets.
Common pitfalls
- Treating Hobby like a fixed allowance. It throttles by pausing deployments, not by billing you. Active CPU (4 CPU-hours/month) is the limit you will hit first on a function-heavy app.
- Shipping a commercial site on Hobby. Ads or payments trigger the fair-use rule. Move to Pro before you monetize.
- Putting a large monolithic API on one serverless function. Cold starts and the duration ceiling will hurt; split the work or use Vercel Workflows.
- Forgetting Preview env vars. Previews that need secrets fail quietly when the variable only exists in Production.
- Hosting a high-traffic static site here purely on cost. At scale, Firebase Hosting or Cloudflare Pages is cheaper for plain static.
FAQ
- Is Vercel free? The Hobby plan is free but non-commercial only — no ads, no payments. Commercial or team use requires Pro at $20 per seat per month (with a $20 usage credit included).
- Does Vercel only do Next.js? No. Astro, SvelteKit, Nuxt, Vite, and many others are first-class. Next.js just gets the deepest integration because Vercel builds it.
- Can I run a long-running backend on Vercel? Functions cap at 300 seconds by default (up to 800 seconds on Pro with Fluid Compute). For longer jobs use Vercel Workflows or a separate worker, and note that functions cannot be a WebSocket server.
- Vercel vs Firebase Hosting in one sentence? Vercel runs your framework; Firebase Hosting serves your files and calls your backend.
- Does Vercel work for static sites? Yes, perfectly, with zero config. The real question is whether it beats Cloudflare Pages or Firebase Hosting on cost at your scale.
- Why did my Hobby deployments stop? You hit a monthly allowance (often bandwidth or Active CPU). Deployments resume at the next cycle, or you upgrade to Pro.
Related
- Vercel Hobby vs Pro
- Is Vercel a good choice for content sites?
- Firebase vs Vercel
- Vercel deploy Astro
- Vercel custom domain
Tags: #Indie dev #Vercel #Hosting #Getting started #Comparison