vercelhetznerdigitaloceanrenderuk-indie-hacker

Vercel + VPS sidecar in 2026: the UK indie hacker pattern (Hetzner vs DigitalOcean vs Render)

Vercel + VPS sidecar in 2026: the UK indie hacker pattern (Hetzner vs DigitalOcean vs Render)

Key Takeaways

  • The Vercel + VPS sidecar pattern is the default UK indie hacker setup at 100-10,000 users - keep Vercel for the user-facing app, sidecar for cron/queue/scraper work.
  • Hetzner CX22 at GBP 3.55/mo is unbeatable on price for self-managed sidecars; no London region but EU adequacy makes UK GDPR simple.
  • DigitalOcean LON1 is the only major provider with a UK region, ideal for sidecars handling sensitive UK personal data.
  • Render Frankfurt is the zero-ops option for indies who never want to SSH - GBP 5.53/mo for a starter background worker.
  • Most pre-revenue UK indies do not need a sidecar - add one only when a specific job won't fit on Vercel.

Vercel + VPS sidecar in 2026: the UK indie hacker pattern (Hetzner vs DigitalOcean vs Render)

Most "Hetzner vs Vercel" content frames it as a binary: stay on Vercel and pay, or move everything to Hetzner and save. For a UK indie shipping a Next.js SaaS, the actual answer in 2026 is neither.

You keep Next.js on Vercel (RSC, edge, preview deploys, instant rollback). And you spin up a £4-£15/mo VPS sidecar for the work Vercel functions are bad at: cron jobs, scrapers, long-running queues, Postgres backups, the occasional ML inference call.

This is the Vercel + VPS sidecar pattern, and it's how most UK SaaS at 100-10,000 users actually run.

TL;DR

  • Keep Next.js on Vercel. RSC, edge functions, preview deploys, and Vercel's UK PoP make this the right call for the user-facing app.
  • Add a sidecar VPS when Vercel function limits hurt: cron schedules above the free tier, jobs over 60 seconds, persistent connections, scraping that needs a fixed IP.
  • Hetzner CX22 (~£4.15/mo) wins on price/performance for UK indies who don't mind self-managing.
  • DigitalOcean Basic ($24/mo, ~£19) wins on managed extras (databases, App Platform, Spaces).
  • Render starter background worker (~£5.50/mo) wins on zero-ops if you'd rather not see a Linux box.
  • Hetzner has no London region; for strict UK-data-residency loads, use DO LON1 or Render Frankfurt + IDTA.

What "sidecar" actually means

A sidecar is a small server that runs alongside your main app, not in front of it. Concrete UK indie examples:

  • Cron - "every Monday at 09:00 send the weekly digest" (Vercel Cron caps at 100 invocations/day on Hobby and there's a 60-second timeout)
  • Long jobs - PDF generation, video transcoding, large CSV exports (60s function limit on Vercel Hobby/Pro)
  • Scrapers - sites that block Vercel's egress IPs or need a residential-style fixed UK IP
  • Queue workers - BullMQ + Redis processing background work asynchronously
  • Postgres backups - nightly pg_dump to S3-compatible storage (Cloudflare R2, Hetzner Storage Box, or DO Spaces)
  • Webhook fanout - durable queue for Stripe/Resend webhooks so a Vercel cold start can't lose them
  • Cheap ML inference - one-off Whisper / Llama runs on a £15/mo box instead of a £150/mo GPU API

The pattern: the sidecar handles slow, scheduled, or stateful work. Vercel handles the user-facing fast path.

Three providers in GBP (April 2026)

Hetzner Cloud - the value play

PlanvCPURAMDiskBandwidthPrice/moApprox GBP
CX222 (shared)4 GB40 GB SSD20 TBEUR 4.15~£3.55
CX324 (shared)8 GB80 GB SSD20 TBEUR 7.95~£6.80
CPX223 (AMD)4 GB80 GB SSD20 TBEUR 7.99~£6.85

VAT may apply for non-business UK customers. Add it to a Ltd company VAT-registered account and reclaim it.

Strengths:

  • Cheapest by far. £3.55/mo for 2 vCPU, 4 GB RAM is not a typo.
  • 20 TB outbound included (vs DO's 4 TB).
  • EU regions: Helsinki, Falkenstein, Nuremberg.

Weaknesses:

  • No London region. Latency from Falkenstein to a UK user is ~25-35ms - fine for batch work, suboptimal for synchronous API calls.
  • Self-managed. No managed Postgres, no App Platform, no S3-compatible Spaces (Object Storage is in private beta).
  • Single region per project. Multi-AZ HA costs you the cluster setup.

DigitalOcean - the managed-extras play

PlanvCPURAMDiskBandwidthPrice/moApprox GBP
Basic Droplet (Regular)11 GB25 GB SSD1 TB$6~£4.74
Basic Droplet12 GB50 GB SSD2 TB$12~£9.48
Basic Droplet24 GB80 GB SSD4 TB$24~£18.96
Managed Postgres (Basic)11 GB10 GB--$15~£11.85

Strengths:

  • LON1 region. Sub-10ms to UK users.
  • App Platform = a real PaaS option if you don't want to SSH into anything.
  • Managed Postgres, Spaces (S3-compatible) with built-in CDN, managed Redis.
  • Documentation and support feel mature - rare for a US provider with a strong UK presence.

Weaknesses:

  • 4-5x more expensive than Hetzner for similar specs.
  • Bandwidth quota lower (1-4 TB).

Render - the zero-ops play

PlanvCPURAMPrice/moApprox GBP
Starter background worker0.5512 MB$7~£5.53
Standard background worker12 GB$25~£19.75
Cron job0.1256 MB$1 per job~£0.79

Strengths:

  • Git-push-to-deploy. No SSH, no systemd, no nginx.
  • Cron jobs as a first-class primitive.
  • Frankfurt and Oregon regions. Good for UK data with EU-residency framing.
  • Built-in HTTPS, env vars, secrets, log streaming.

Weaknesses:

  • More expensive per CPU/RAM unit than Hetzner.
  • No London region. Frankfurt is the closest for UK users.
  • Cold starts on the free tier (background workers don't cold-start, but if you also run a Render web service it's worth knowing).

UK data residency: where each provider sits

This is the boring-but-important section the global comparisons skip.

ProviderUK region?Closest EUNotes
HetznerNoFalkenstein, Nuremberg, HelsinkiUK <-> EU transfers under adequacy decision = simple
DigitalOceanYes (LON1)Amsterdam (AMS3), Frankfurt (FRA1)LON1 = data stays in UK
RenderNoFrankfurtUK <-> EU = simple under adequacy

Practical rules under DUA Act 2025 + UK GDPR Chapter V:

  • Hetzner / Render Frankfurt - your sidecar processes UK personal data in the EU. Lawful under the EU adequacy decision. Update your privacy policy and sub-processor list.
  • DigitalOcean LON1 - data stays in the UK. Simplest legal posture, especially if you handle health, finance, or government data.
  • Avoid US-only sidecars for processing UK personal data unless you've done a full transfer impact assessment and put IDTA cover in place.

For most UK indies running scrapers, cron, or queue workers that don't touch PII directly, the EU regions are fine. For sidecars that process customer payloads (e.g., backup workers reading raw user data), DO LON1 is the cleanest answer.

The wiring - how Vercel talks to the sidecar

You have three patterns. Pick one and stick to it.

Pattern 1: Vercel calls the sidecar via HTTPS webhook

// app/api/heavy-job/route.ts (on Vercel)
export async function POST(req: Request) {
  const body = await req.json()
  const signature = await sign(body, process.env.SIDECAR_HMAC_SECRET!)

  await fetch(`${process.env.SIDECAR_URL}/jobs/run`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-Signature': signature,
    },
    body: JSON.stringify(body),
  })

  return Response.json({ queued: true })
}

The sidecar verifies the HMAC signature, processes the job, optionally calls back to Vercel when done. This is the simplest pattern.

Pattern 2: Sidecar polls a shared queue

// On the sidecar (e.g., a Hetzner box running BullMQ)
const queue = new Queue('jobs', { connection: redisConfig })
const worker = new Worker('jobs', async (job) => {
  await processJob(job.data)
}, { connection: redisConfig })

Vercel pushes to the queue. The sidecar pulls. No inbound port exposed on the sidecar - just outbound Redis connection.

Pattern 3: Cloudflare Tunnel

If you want the sidecar reachable from the public internet without opening firewall ports, install cloudflared on the Hetzner box and route traffic through your Cloudflare account. Free, secure, no static IP needed.

When you DON'T need a sidecar

Most pre-revenue UK indies are over-engineering when they spin up a sidecar. Skip it if:

  • Your cron jobs fit in 60 seconds and run < 100 times/day (Vercel Cron is fine)
  • You have no real queue (in-memory job is fine)
  • You don't scrape anything blocked by Vercel egress
  • You don't yet have paying customers

The right time to add a sidecar is when you have a specific job that won't fit on Vercel - not because someone on Twitter said you should leave Vercel.

Five UK failure modes

  1. Picking Hetzner for a synchronous user-facing API. Falkenstein <-> UK is 25-35ms one way. For a request that hits the API 5 times in the page render, that's 125-175ms of latency you can't get back. Use Hetzner for batch/async; keep synchronous APIs on Vercel.
  2. Forgetting bandwidth math. Hetzner gives you 20 TB; DO gives you 1-4 TB. If your sidecar serves video, large file downloads, or unmasked log streams, DO's lower bandwidth caps will bite. Cloudflare R2 in front of either fixes it.
  3. No backup of the sidecar. Hetzner snapshots cost ~EUR 0.012/GB/mo. Set them up on day one. A failed pg_dump cron at 03:00 is not a fun Sunday morning.
  4. Hardcoding GBP / VAT logic on the sidecar separately from Vercel. Pricing config belongs in one place - either Vercel Edge Config (see our feature flag guide) or a shared database. Don't let the sidecar's BullMQ worker compute VAT.
  5. Not putting the sidecar provider in your privacy policy. Hetzner GmbH or DigitalOcean LLC must be listed as a sub-processor if it handles UK personal data. See our UK SaaS legal pages template.

30-minute ship-it: Hetzner CX22 sidecar with Coolify

Best for indies who want the cheapest setup with a friendly UI.

  1. Sign up at hetzner.com (Cloud Console). Add a payment method (UK Ltd companies can get VAT-exempt billing).
  2. Create a CX22 in Falkenstein or Helsinki, Ubuntu 24.04, add your SSH key.
  3. Reserve a Cloudflare Tunnel name on your domain (worker.yourapp.co.uk).
  4. SSH in, run wget -q https://get.coolify.io -O - | bash to install Coolify.
  5. Open Coolify on http://<server-ip>:8000, create an admin account, add your GitHub repo.
  6. In Coolify, deploy a "Background worker" service from your repo (e.g., a Node script with BullMQ).
  7. Add env vars: REDIS_URL (use Upstash UK free tier), STRIPE_SECRET_KEY, etc.
  8. Add a Cloudflare Tunnel pointing at the Coolify service.
  9. In your Vercel app, set SIDECAR_URL=https://worker.yourapp.co.uk and an HMAC secret.
  10. Deploy a test job from Vercel. Watch logs in Coolify to confirm it ran.

Total monthly cost: ~£3.55 Hetzner + £0 Cloudflare Tunnel = £3.55/mo.

30-minute ship-it: DigitalOcean LON1 + App Platform

Best for indies who want UK data residency with managed extras.

  1. Sign up at digitalocean.com. Add UK Ltd company billing for VAT receipts.
  2. In LON1, spin up an App Platform app from your GitHub repo.
  3. Configure the build (Node 22, npm run worker).
  4. Add a managed Postgres (Basic, $15/mo) in LON1 if you need one.
  5. Set env vars in App Platform.
  6. Deploy. App Platform gives you a HTTPS URL out of the box.
  7. In Vercel, set SIDECAR_URL to the App Platform URL + HMAC secret.
  8. Add Spaces in LON1 if you need S3-style storage with CDN.
  9. Set up daily Postgres backup via DO managed backups (built-in).
  10. Test end-to-end from Vercel.

Total monthly cost: ~£4.74 droplet + £11.85 Postgres + £4 Spaces = ~£20.59/mo. Higher than Hetzner but everything is managed and in the UK.

30-minute ship-it: Render Frankfurt background worker

Best for indies who don't want to SSH into anything ever.

  1. Sign up at render.com. Connect GitHub.
  2. Create a "Background worker" from your repo. Pick the Frankfurt region.
  3. Set the start command (npm run worker).
  4. Add env vars.
  5. Deploy. Render handles HTTPS, secrets, log streaming.
  6. Add a "Cron job" service for scheduled work (0 9 * * 1 for Monday 09:00).
  7. Connect to a managed Postgres (Render or Neon EU).
  8. In Vercel, set SIDECAR_URL to the Render service URL + HMAC.
  9. Configure auto-deploy on push to main.
  10. Test.

Total monthly cost: ~£5.53 worker + £0.79 cron + £11+ Postgres = ~£17-£20/mo. Slightly more than DO LON1 but truly zero-ops.

Frequently asked questions

Should I just move everything off Vercel to Hetzner?

Probably not. Vercel's value for a Next.js 16 app (RSC, Server Components streaming, edge middleware, preview deploys, instant rollback, UK PoP) is real. The hybrid pattern keeps Vercel's strengths and offloads only what Vercel functions are bad at. For a single-founder UK SaaS, all-Hetzner means more ops time you don't have.

When does the all-Hetzner setup make sense?

Past 10k MAU when Vercel Pro at GBP 16/mo + bandwidth overages start outweighing the time saved. Or if you have a Laravel / Rails / FastAPI backend that doesn't fit Vercel's serverless model. For pure Next.js indies, very rarely.

What about Coolify on a self-hosted box?

Coolify is the closest thing to a self-hosted Vercel. On a Hetzner CX22 it gives you Git deploys, secrets, HTTPS, and a UI for £3.55/mo. Excellent for the sidecar. Less ideal for the user-facing Next.js app because you lose preview deploys, instant rollback, and the UK edge PoP.

Is Render's free tier enough for a UK indie sidecar?

Render's free tier doesn't cover background workers (only static sites and a free web service that spins down after 15 mins of idle). For real sidecar work you're on Starter at £5.53/mo minimum.

Do I need a static IP for scraping from the sidecar?

Often, yes. Hetzner Cloud gives you a free static IPv4. DO droplets have static IPs by default. Render does not give you a static egress IP on starter tiers - this is a known gotcha for scrapers. If you need fixed IP scraping, Hetzner or DO win.

Key takeaways

  1. The Vercel + VPS sidecar pattern is the default UK indie hacker setup at 100-10,000 users - keep Vercel for the user-facing app, sidecar for cron/queue/scraper work.
  2. Hetzner CX22 at GBP 3.55/mo is unbeatable on price for self-managed sidecars; no London region but EU adequacy makes UK GDPR simple.
  3. DigitalOcean LON1 is the only major provider with a UK region, ideal for sidecars handling sensitive UK personal data.
  4. Render Frankfurt is the zero-ops option for indies who never want to SSH - GBP 5.53/mo for a starter background worker.
  5. Most pre-revenue UK indies do not need a sidecar - add one only when a specific job won't fit on Vercel.

[!info] Want a UK-first business idea you could ship on Vercel + a Hetzner sidecar this weekend? Every week IdeaStack publishes one deeply researched UK opportunity with real keyword data, GBP pricing benchmarks, competitor analysis, and a copy-paste builder prompt. The latest free report covers the UK Charity Soft Opt-In Compliance Toolkit (score 8.0/10).

Read the latest free report ->

Frequently Asked Questions

Should I just move everything off Vercel to Hetzner?

Probably not. Vercel's value for a Next.js 16 app (RSC, Server Components streaming, edge middleware, preview deploys, instant rollback, UK PoP) is real. The hybrid pattern keeps Vercel's strengths and offloads only what Vercel functions are bad at. For a single-founder UK SaaS, all-Hetzner means more ops time you don't have.

When does the all-Hetzner setup make sense?

Past 10k MAU when Vercel Pro at GBP 16/mo + bandwidth overages start outweighing the time saved. Or if you have a Laravel / Rails / FastAPI backend that doesn't fit Vercel's serverless model. For pure Next.js indies, very rarely.

What about Coolify on a self-hosted box?

Coolify is the closest thing to a self-hosted Vercel. On a Hetzner CX22 it gives you Git deploys, secrets, HTTPS, and a UI for GBP 3.55/mo. Excellent for the sidecar. Less ideal for the user-facing Next.js app because you lose preview deploys, instant rollback, and the UK edge PoP.

Is Render's free tier enough for a UK indie sidecar?

Render's free tier doesn't cover background workers (only static sites and a free web service that spins down after 15 mins of idle). For real sidecar work you're on Starter at GBP 5.53/mo minimum.

Do I need a static IP for scraping from the sidecar?

Often, yes. Hetzner Cloud gives you a free static IPv4. DO droplets have static IPs by default. Render does not give you a static egress IP on starter tiers - this is a known gotcha for scrapers. If you need fixed IP scraping, Hetzner or DO win.

Want data-backed business ideas every Thursday?

One validated UK business opportunity per week. Free.