Compares Vercel's managed CDN, functions and usage-based billing with Coolify running Next.js and other frameworks as Docker containers on your own servers: preview deployments, rollbacks, image and caching features, scaling across servers, and the operations work that moves to your team.
Compares Vercel with Dokploy, an open-core self-hosted platform with an Apache 2.0 core and source-available enterprise features, built on Docker, Traefik and Docker Swarm: build types, GitHub preview deployments, multi-server clusters, and which features need a paid Dokploy agreement.
What changes when a Next.js app leaves Vercel for containers you run: building with output standalone, image optimization with sharp, sharing the ISR cache across instances with a custom cache handler, encryption keys and deployment IDs for multiple instances, streaming behind a proxy, and moving environment variables.
Moving Vercel projects to Coolify with Coolify's own guide for teams leaving managed platforms: mapping functions, previews, domains and rollbacks to Coolify equivalents, setting up GitHub pull request previews with wildcard DNS, and staging the DNS cutover.
Cost by component: Vercel seat fees and metered data transfer, CDN requests, function CPU and memory, image and ISR usage against servers, a CDN, optional Coolify Cloud or Dokploy plan fees, and the engineering time for builds, caching and on-call.
Getting configuration and data out of Vercel: environment variables with vercel env pull and the Secret values it cannot return, Blob objects through the SDK's paginated list, databases held by Marketplace providers such as Neon and Upstash, and what has to be rebuilt by hand.
Replacing Vercel's per-branch preview deployments with Coolify previews (GitHub, GitLab, Gitea and Bitbucket, wildcard DNS, removed on merge) or Dokploy previews (GitHub, capped at three per app by default), and protecting preview URLs without Vercel's SSO.
Moving files from Vercel Blob to S3-compatible object storage you run: Garage for small geo-distributed clusters or SeaweedFS for many small files, plus the archived MinIO community edition to avoid, and how apps switch from the Blob SDK to an S3 client.
Vercel Functions default to Washington, D.C. and traffic passes through a global network. This page covers keeping Next.js apps, functions and data in the EU on servers you control with Coolify or Dokploy, and what moves out of reach, such as the global CDN.