
Most preview environment comparisons stop at one question: does it deploy automatically on every pull request? By that measure, Vercel, Netlify, and Upsun all pass easily. But that question misses what actually separates them once an application has a real backend: does the preview clone the whole application, database and backend services included, or just the frontend code?
That gap, between "the frontend redeploys" and "the entire application, including its data, is isolated per branch," is what this piece is actually about.
A full-stack preview environment is a temporary, isolated copy of an entire application, including its backend services and database, created automatically for a branch or pull request, so it behaves like production rather than a partial approximation.
That definition breaks down into three parts:
With that definition in place, the differences between these three platforms become a lot clearer.
2. Netlify has recently extended its preview model further than Vercel's.
3. Upsun clones the entire application stack for every branch by default.
It's tempting to treat preview environments as a matter of ticking off features: does it clone the database, does it isolate a worker, and so on. The harder part isn't creating one preview environment; it's creating hundreds of them over time, reliably, without a team quietly building and maintaining a second platform just to keep previews working.
In addition to cloning the application itself, that work includes:
When that responsibility sits with the platform rather than with each application team, previews stop being something engineers have to trust cautiously and become something they can rely on by default. This is the real difference between a platform that clones more of the stack and one that clones less: how much of that lifecycle work moves off your team's plate.
Vercel | Netlify | Upsun | |
| Frontend code isolated per preview | Yes | Yes | Yes |
| Database isolated per preview | Not natively; requires a third-party integration such as Neon | Yes, via Netlify Database (Postgres only), added recently | Yes, natively, any supported database or service |
| Backend services and workers isolated | Limited to serverless functions | Limited to serverless/edge functions | Yes, entire multi-service stack (APIs, workers, queues, and more) |
| Setup required | None for frontend; integration setup for database branching | None; native for Postgres workloads | None; defined once in the app configuration |
| Best fit | Static sites and Next.js/edge-heavy frontends | JAMstack apps built around Postgres | Multi-service applications with real backend and data dependencies |
Choose Vercel if your application is frontend-heavy, built on Next.js, and you want the fastest, most polished preview deployment experience, with database branching handled through an integration if you need it.
Choose Netlify if your stack is JAMstack-shaped and built around Postgres, and you want native database branching per preview without adding a third-party service.
Choose Upsun if your application depends on real backend services, databases, or background workers, and you want every branch to behave like a true copy of production without wiring that up yourself.
If cloud provider flexibility matters alongside preview environment scope, that's a related question worth its own comparison. See our piece on Upsun, Fly.io, and Render on multi-cloud deployment for how each platform handles running an application across different providers.
Does Vercel isolate a database per preview environment?
Not natively. Vercel's preview deployments isolate frontend code and functions, but database branching per preview typically requires a separate integration, such as Neon.
What does Netlify Database actually do?
It's a managed Postgres service built into Netlify that automatically creates a new database branch for each deploy preview, seeded with a copy of production data at creation time. It's a recent addition to Netlify's platform, not something that's been available for years.
What does Upsun clone that Vercel and Netlify don't?
Upsun clones the entire application stack per branch: code, configuration, any database or cache, search indexes, and files, regardless of which backend services the application uses. Production-only credentials aren't included by default, so previews don't inherit sensitive secrets unless you explicitly configure them to.. Neither Vercel nor Netlify natively isolates a full multi-service backend this way.
Does Upsun's preview environment require any setup?
Cloning the application, its services, and its data needs no third-party integration and no per-branch setup; it's defined once in the application's configuration file. Masking sensitive data before it reaches a preview is a separate, one-time step, configured through sanitization hooks, not something that happens automatically with no setup at all.
What happens to an Upsun preview environment after a branch is merged?
It tears down automatically. Previews are created automatically on push and removed automatically once the branch is merged, so there's no leftover infrastructure to track down or clean up manually.
Which platform is right for a static site rather than a full-stack app? Vercel or Netlify. Full-stack preview cloning solves a problem that a static site or thin frontend generally doesn't have, so the lighter preview model on either platform is a better fit, not a lesser one.