Comparison

The European alternative to Vercel.

Vercel is an excellent product — run by a US company, on US-controlled infrastructure, under US law. If your clients, your lawyers, or your own principles say European data should live on European infrastructure, that's a problem no settings page fixes.

I built slew.sh to keep the workflow you already have — connect a repo, push, get a live URL and preview deploys — and to run it entirely on EU-operated infrastructure: Hetzner in Germany, Bunny in Slovenia. Not an EU region of an American cloud. European companies, top to bottom.

slewVercel
JurisdictionEuropean UnionUnited States
Underlying infrastructureHetzner (DE) + Bunny (SI)AWS (US company)
Data residency by defaultEU, alwaysConfigurable, US-controlled
US CLOUD Act exposureNoYes
git push → live URLYesYes
Preview URLs per pull requestYesYes
Next.js SSRYes — as a real serverYes — serverless/edge
ISR / stale-while-revalidateYes — platform cache + on-demand revalidationYes
Edge middlewareNoYes
Image optimizationIncluded, every planMetered per transformation
Cookieless analyticsIncluded, every planMetered add-on
Team pricingFlat, zero seat feesPer member, USD
Pricing currencyEURUSD

The same workflow, in detail

"Yes" in that table means the workflow you know, not an approximation. Connect a repository through the GitHub App and every push builds and deploys, with the result reported back to the commit as a status check. Every pull request gets its own temporary preview URL that updates on each push and expires on its own after 7 days.

Deploys are zero-downtime: the new version boots next to the one serving traffic and has to pass a health check before traffic cuts over, so a build that crashes on boot never sees a request. Node and Next.js apps run as real servers — env vars, live logs, scheduled cron calls — and scale to zero when idle unless you keep them ready on your plan. Rollback is re-pointing at any earlier deployment; seconds, no rebuild.

SSR runs as a server, not a lambda

The architectural difference: Vercel decomposes your Next.js app into serverless and edge functions; slew runs it in standalone mode as the long-running Node server the framework was written to be. That means no cold-start budget arithmetic, in-process state and WebSockets work, and the mental model of `next start` survives contact with production. ISR works: pages that emit stale-while-revalidate headers are served from the platform cache — even while an idle app wakes — and an on-demand revalidation endpoint evicts a path from every cache layer. The trade: rendering happens in one EU region behind a CDN, not in dozens of edge locations. Details on the Next.js hosting page.

What the bill looks like

A concrete scenario: a four-person team with fifteen sites, two of them Next.js apps. On Vercel that's per-member pricing in dollars before any usage; on slew it's Scale at €24/month flat — 30 projects, 5 server apps kept ready, 500 GB, whole team included, zero seat fees. Analytics and image optimization are included on every slew plan rather than metered. Early customers keep their price for as long as they stay subscribed.

When Vercel is still the right choice

Honestly: if you need a global edge network across dozens of regions, edge middleware, ISR at the edge, or deep enterprise features, Vercel is more mature — slew is a young platform run by one person, me, and I answer my own support email. slew is the right choice when EU jurisdiction is a requirement rather than a nice-to-have, when you want a bill that doesn't scale with headcount, and when "git push, live URL" is the product you actually need.

Young doesn't mean careless: platform data is backed up every 6 hours, encrypted, to off-site EU object storage, and the restore path has been rehearsed for real — a full recovery from backup onto a fresh machine, performed and timed, not assumed.

Migrating is one command, not a weekend

The CLI has a Vercel importer. Run it in your project directory and it reads your vercel.json and — with a Vercel token — your build settings, env vars, connected repo and domains straight from Vercel's API, read-only. It starts with an honest compatibility report: what carries over (redirects with their exact status codes, same-site rewrites, crons, env vars, the git connection), what to move into framework config (headers go in next.config.js, where they keep working because your app runs as a real server), and what would not run at all — in which case it stops before creating anything.

$ slew import vercel --dry-run
Compatibility check: clean — nothing in the way.

$ slew import vercel
Created project 'your-project' → https://your-project.slew.cloud
Set DATABASE_URL (both) … Connected acme/your-project @ main.
Imported. Nothing on Vercel was changed — cut over when ready:

It ends with a DNS cutover checklist filled in with your actual domains. Your site keeps serving from Vercel until you flip DNS yourself — and flipping it back is the same edit in reverse, so there is no leap-of-faith moment. The full walkthrough, including what's genuinely different, is in the migration guide. Migrating a portfolio? The importer is scriptable — one command per project.

Frequently asked

Where exactly does my data live?
Source, builds, logs and platform data on Hetzner in Germany; CDN and DNS at Bunny in Slovenia; company incorporated in the EU with no US parent. The privacy page lists every subprocessor.
You use GitHub — isn't that a US company?
Yes, for auth and repositories, and it's worth being precise: your GitHub account identity is under GitHub's jurisdiction, but everything slew hosts — source checkouts, builds, traffic, logs, analytics — stays on EU infrastructure.
Custom domains and TLS?
Add your domain, point DNS, certificates are provisioned automatically. Domains can also track a specific branch — a staging domain on staging, production on main.
Do I need a DPA?
If you process personal data for clients, probably. Email me and a signed DPA plus the subprocessor list comes back as documents.
What if slew shuts down?
You are not stuck: your repository is the source of truth, builds are plain static files or plain Node, and nothing here is a proprietary format. Moving off slew is a git push somewhere else.
Start deploying

or email hello@slew.sh — I'll migrate your first project for you.