Compare

ShipTiffin vs Vercel

For people with several Next.js apps, each with its own database, sign-in and error tracking.

Updated

In short

On Vercel, each app adds to the bill: Vercel Pro plus a database project per app, plus usage. On ShipTiffin, every app and its Postgres, sign-in, files, KV, jobs, analytics and error tracking run on one server in your own Hetzner account, for $19 a month plus the server. For 20 small apps that is about $41 against about $261.

You give up Vercel’s global network and its scaling across many servers. The box reads your vercel.json, so most apps move without changes.

The real differences

ShipTiffin and Vercel compared
ShipTiffinVercel
Where your apps runOne server in your own Hetzner account, in the location you pick.Vercel's own cloud, served from its global network.
Price$19 a month per box ($12 for the first 100 customers), plus the server at Hetzner’s price. No seats, no usage charges from us.Pro: $20 a month per developer seat, with $20 of usage included; usage past that is billed.
Database, sign-in, files, KVIncluded for every project: Postgres 18, Better Auth, S3-compatible buckets, Valkey.Not included: added from the Marketplace or other vendors, each billed on its own.
Error tracking and analyticsIncluded: Sentry-compatible errors, logs, alerts, cookieless analytics.Observability and Web Analytics, with paid add-ons such as Observability Plus ($1.20 per 1M events) and Web Analytics Plus ($10 a month).
Spend controlOur fee is flat. Each project can have a hard limit on memory, CPU, database share and KV.Spend management: new teams get a $200 on-demand budget by default, with alerts and an option to pause all projects at 100%.
PreviewsEvery pull request gets its own address and its own copy-on-write database branch.Every branch and pull request gets a preview deployment.
ScaleAs far as one server goes. Resize to a bigger server from your account.Functions and the CDN scale across Vercel's infrastructure.
Open sourceTiffin is AGPL-3.0. Self-host it free, or leave with your server and data.Next.js is open source; the Vercel platform is not.
Vercel facts from vercel.com/pricing and its docs on environments, read 10 October 2026. ShipTiffin facts from What works and what doesn’t, Apps and deploys and Postgres, KV and backups.

What 1, 5 and 20 small apps cost

A small Next.js app with its own database and sign-in, plus error tracking, a month in US dollars before tax.

Monthly cost of small Next.js apps on Vercel with add-ons, and on one ShipTiffin box
Vercel Pro and add-onsShipTiffin
1 small app$71: Vercel Pro $20, Supabase Pro $25, Sentry Team $26about $29: ShipTiffin $19, Hetzner CX23 (2 vCPU, 4 GB) about $10
5 small apps$111: Vercel Pro $20, Supabase Pro $65 (5 projects), Sentry Team $26about $32: ShipTiffin $19, Hetzner CX33 (4 vCPU, 8 GB) about $13
20 small apps$261: Vercel Pro $20, Supabase Pro $215 (20 projects), Sentry Team $26about $41: ShipTiffin $19, Hetzner CX43 (8 vCPU, 16 GB) about $22
The leanest Vercel setup$45 at any count: every app shares one Supabase project, and Sentry’s free plan (one user, 5k errors)Every project keeps its own database, sign-in and limit
Billed on topVercel usage past the $20 credit (data transfer past 1 TB from $0.15/GB, CDN requests past 10M from $2 per 1M), $20 per extra developer seat, Supabase usage past each quota.Nothing from us. Hetzner includes 20 TB of traffic a month in Europe (at least 1 TB in the US) and charges past that.
Read 10 October 2026: Vercel (Pro, one developer seat, $20 included credit; Hobby is for non-commercial use only), Supabase (Pro $25 with $10 of compute credit, which covers one Micro project; each more Micro project adds $10), Sentry (Team $26 a month billed yearly). Server prices at Hetzner’s prices from 15 June 2026 (Hetzner’s price list), plus IPv4 $0.60 (Hetzner) and the 40 GB data volume, before VAT. The server sizes are our estimate: a small Next.js app settles around 270 MB of memory (Next.js on the box), and 5 apps fit the smallest server but leave little room for previews. With the founding price, take $7 off each ShipTiffin total (pricing). Not counted on either side: email, KV and analytics.

What you give up

One server in one place is a different trade from a global platform. Know it before you move.

  • A global network

    Vercel serves from many regions. Your box is in the one location you pick, so visitors far from it wait longer for each request.
  • Scale across many servers

    A traffic spike gets what one server has. You can resize to a bigger server, but one app never spreads across several.
  • One server, one point of failure

    A hardware fault means downtime until the server is back. Backups are copied off a managed box every 6 hours. Backups.
  • Vercel's polish

    Vercel makes Next.js and has years of work in its dashboard and tooling. ShipTiffin is new and before version 1.0; every known gap is on What works and what doesn’t.
  • An edge image optimizer

    Each app optimizes its own images with sharp; there is no shared optimizer at the edge yet. Caching and images.
  • Paying only for what runs

    Apps on the box stay running unless you let them sleep, and a sleeping Next.js app takes about 0.9 s to wake. Sleep and wake.

Which one fits

ShipTiffin is the better fit when

  • you have several small apps and a database bill per app;
  • you want one flat price and a hard limit on each project;
  • your visitors are mostly near one region;
  • you want your apps and data on a server you own;
  • a coding agent deploys for you and you want plans, History and undo.

Vercel is the better fit when

  • your visitors are spread across the world and every millisecond counts;
  • traffic can jump far past what one server handles;
  • you want no server at all, not even one someone else runs for you;
  • you rely on vercel.json settings the box doesn't read, such as functions or regions;
  • you want a mature platform with years of production use behind it.

Moving from Vercel

The box reads what an app already has, so an app that deploys on Vercel deploys here unchanged in most cases. The details are in Coming from Vercel.

  1. Connect GitHub

    Every push to the production branch goes live, every pull request gets a preview with one comment on it, and closing the pull request removes the preview. Deploy from GitHub.
  2. Keep your vercel.json

    It is read at every deploy: build and install commands, output folder, crons (called with GET and CRON_SECRET, as Vercel does), headers and redirects. Static sites also get rewrites, cleanUrls and trailingSlash. Not used: has and missing rules, rewrites to another site, functions and regions. The build log lists what was taken and what was not.
  3. Monorepos work as on Vercel

    An app in a pnpm, Bun, npm or Yarn workspace installs with its workspace and builds in its own folder.
  4. KV and workflows run unchanged

    Apps using @vercel/kv or @upstash/redis get an Upstash-compatible endpoint on the box, and Vercel’s Workflow DevKit runs on the project’s Postgres. Moving from Upstash or Vercel KV.
  5. Move the database with the app

    Postgres and KV are reachable only from apps on the box for now, so an app left on Vercel can’t use them. Move an app and its data together. Databases from outside the box.

Questions

Which Next.js versions work?

Next.js is the first framework the box supports. With 16.2 or later the box adds its adapter: a cache shared by every instance, so revalidatePath and revalidateTag reach all of them, and client files served by the edge. Older versions build and run without it. Next.js on the box.

Why not stay on Vercel's free Hobby plan?

Vercel says its Hobby plan is for personal, non-commercial use, and Hobby accounts can’t buy usage past the caps (vercel.com/pricing, read 10 October 2026). For a side project that stays personal, it may be all you need.

Can I get a surprise bill?

Not from us: the fee is flat, with no seats or usage charges. Hetzner bills the server, and charges for traffic past what the server includes (20 TB a month in Europe, at least 1 TB in the US). Each project can have a hard limit, so one busy app can’t take the box from the others.

What happens during a traffic spike or an attack?

Every app has per-IP rate limits, CrowdSec bans scanners, and an under-attack mode puts a proof-of-work challenge in front of every app. Past that, the box serves what one server can; there is no Cloudflare in front of it yet. Protection.

Can I leave later?

Yes. The server is in your Hetzner account, Tiffin is open source, and a project exports to one file with a docker-compose.yml and a plain SQL dump. Copying and moving.

Move one app and compare the bill.

Setup takes about five minutes in your own Hetzner account. 14-day money-back.