Overview
Vercel is the default host for Next.js and for any project that needs per-PR previews, server functions, or ISR. It detects most frameworks, builds in a managed environment, and provisions HTTPS. Move to a VPS (hostinger-vps) when function or bandwidth bills outgrow the platform.
Accept the framework preset and keep overrides in vercel.json
Connect the Git repo and keep the detected preset (Next.js, Astro, SvelteKit, Nuxt, Remix, Vite). Override only when the preset is wrong, and put non-standard build commands in vercel.json rather than the dashboard so they survive team handoffs.
Default to Node.js functions on Fluid compute
Fluid compute has been on by default for new projects since April 23, 2025. It lets one function instance serve many concurrent requests, uses bytecode caching to cut cold starts, bills Active CPU time (waiting on I/O is not billed) plus provisioned memory, and runs functions for 300 seconds by default (configurable up to 800 on Pro and Enterprise). Limits are on Vercel’s functions page: 2 GB memory by default (4 GB max on Pro), 250 MB uncompressed bundle, 4.5 MB request or response body.
The Edge runtime still exists, but Vercel recommends migrating from it to Node.js, and Next.js 16.3 deprecated export const runtime = "edge". Run new routes on Node.js and read vercel-edge-functions for the few cases left.
Scope environment variables per environment
Production secrets stay on Production only; Preview gets separate credentials. Pull Development values with vercel env pull .env.local. Details, size limits, and the new Secret type: vercel-env-vars.
Treat every PR preview as a production build
Each push to a non-production branch gets an immutable deployment URL plus a branch alias. Previews use the Preview environment and sit behind Deployment Protection. See vercel-preview-deployments.
Use ISR for content that changes occasionally
ISR serves a static page and revalidates in the background. Set export const revalidate = 3600 on the route, or call revalidatePath or revalidateTag from a CMS webhook for on-demand refresh. Skip ISR for per-request data; use SSR or client fetches. Wider model: nextjs-caching.
Reproduce builds locally
Vercel caches node_modules and framework build output between deploys. If every build runs cold, check that the lockfile is committed and the cache directories are not in .vercelignore. vercel build reproduces the build locally and catches missing env vars before they cost deploy minutes.
Point DNS at the values the dashboard shows
Add the domain under Settings > Domains and use the records Vercel displays for that project: an A record for the apex (76.76.21.21 or the value on the domain card) and a project-specific CNAME for subdomains. Vercel issues the certificate. If DNS runs through cloudflare, keep the records DNS-only (grey cloud) until Vercel validates the domain, then decide whether to proxy.