Zum Inhalt springen

Vercel-Alternativen: warum wir Vercel und Cloudflare nutzen

Für CTOs und EntwicklerCTO-Entscheidungen · Aktualisiert

Filip PapranecGründer von Digitaliko

Vercel-Alternativen: wir nutzen beide. Illustration: ein Fenster mit Preview-Deployments einer Next.js-Website neben einem Fenster alchemy.run.ts, das einen Worker, eine D1-Datenbank und einen KV-Namespace deklariert.Vercel-Alternativen: wir nutzen beide. Illustration: ein Fenster mit Preview-Deployments einer Next.js-Website neben einem Fenster alchemy.run.ts, das einen Worker, eine D1-Datenbank und einen KV-Namespace deklariert.

Die beste Vercel-Alternative hängt von der App ab, deshalb nutzen wir beide. Next.js-Websites, auch diese, bleiben auf Vercel. Neue Apps laufen auf Cloudflare Workers mit einer D1-Datenbank und werden in einer einzigen TypeScript-Datei mit Alchemy beschrieben.

Die kurze Antwort: Vercel gewinnt bei Next.js und Preview-Deployments ohne Konfiguration. Cloudflare gewinnt, wenn App, Datenbank, Cache und Speicher in einem Konto leben sollen, als Code beschrieben und pro Anfrage abgerechnet. Unten steht, wie wir entscheiden, was die Preislisten sagen, unsere echte Konfiguration und ein Problem, das keine Vergleichsliste erwähnt: Vercel hat Deploys von Commits blockiert, die unser KI-Agent geschrieben hat.

Vercel oder Cloudflare: welche App wohin?

Wir wählen den Hoster nicht pro Firma. Wir wählen ihn pro App, nach dem, was die App braucht:

Die App brauchtWo sie bei uns läuftWarum
Eine Next.js-Website mit PreviewsVercelNext.js läuft dort ohne Konfiguration, jeder Branch bekommt eine Preview-URL
Eine ältere Next.js-App mit Postgres und PrismaVercelSie läuft, und niemand bezahlt einen Umzug, der für Nutzer nichts ändert
Eine neue App mit Datenbank, Cache und DateispeicherCloudflare Workers, D1, KV, R2Ein Konto, eine TypeScript-Datei beschreibt alles
Eine ganze App auf einem Server unter Ihrer KontrolleEin einfacher VPSVolle Kontrolle, und die Rechnung wächst nicht pro Anfrage

Die letzte Zeile ist keine Theorie. Den Online-Marktplatz eines Kunden haben wir von einer Managed Cloud auf einen einfachen VPS umgezogen. Der richtige Hoster ist der, der heute zur App passt, nicht der vom letzten Projekt.

Was kosten Vercel und Cloudflare laut Preisliste?

Listenpreise, abgerufen am 24.10.2026. Sie ändern sich, prüfen Sie die Seiten vor der Entscheidung:

  • Vercel (Preise): Hobby für 0 $, Pro für 20 $ im Monat mit 20 $ Nutzungsguthaben, danach nach Verbrauch. Die Seite nennt bei Pro 20 $ im Monat pro Entwickler-Sitzplatz.
  • Cloudflare Workers (Preise): Der Free-Plan hat 100.000 Anfragen pro Tag. Workers Paid kostet mindestens 5 $ im Monat pro Konto, inklusive 10 Millionen Anfragen und 30 Millionen CPU-Millisekunden.
  • Cloudflare D1 (Limits): 500 MB pro Datenbank im Free-Plan, 10 GB in Workers Paid. Free-Konten haben insgesamt 5 GB Speicher.

Die Falle ist nicht der Preis von Pro. Es ist der Hobby-Plan für ein Kundenprojekt:

Hobby teams are restricted to non-commercial personal use only. All commercial usage of the platform requires either a Pro or Enterprise plan.

Vercel
Fair Use Guidelines (abgerufen am 24.10.2026)

Auf Deutsch: Hobby ist nur für die persönliche, nicht kommerzielle Nutzung. Vercel zählt auch einen bezahlten Berater, der den Code schreibt, als kommerzielle Nutzung. Ein kostenloses Freelancer-Konto mit einer Kunden-App ist also keine Ersparnis, sondern ein Verstoß gegen die Bedingungen.

Was wir zahlen, veröffentlichen wir nicht. Unsere Rechnungen sagen nichts über Ihre: Traffic, Sitzplätze und Dienste sind bei jeder App anders.

Wie deployen wir mit Alchemy auf Cloudflare?

Alchemy beschreibt sich als „a single, type-safe TypeScript program for your cloud“, also ein typsicheres TypeScript-Programm für die ganze Cloud. In der Praxis ist es eine Datei neben der App. So sieht unser alchemy.run.ts aus, gekürzt und mit allgemeinen Namen:

import alchemy from "alchemy";
import { D1Database, KVNamespace, TanStackStart } from "alchemy/cloudflare";

const app = await alchemy("my-app", {
  stage: process.env.ALCHEMY_STAGE || "production",
});

const db = await D1Database("database", {
  migrationsDir: "../../packages/db/src/migrations",
});

const cache = await KVNamespace("cache", { title: "my-app-cache" });

const web = await TanStackStart("web", {
  cwd: "../../apps/web",
  bindings: {
    DB: db,
    CACHE: cache,
    BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET ?? "",
    BETTER_AUTH_URL: process.env.BETTER_AUTH_URL ?? "",
  },
});

await app.finalize();

Datenbank, Cache und App sind in derselben Sprache beschrieben wie die App selbst. Kein YAML, kein Klicken im Dashboard. Ein Deploy läuft so:

  1. Schema ändern

    Das Drizzle-Schema ist TypeScript. drizzle-kit generate schreibt eine SQL-Migration.

  2. Deploy starten

    Alchemy legt die D1-Datenbank und den KV-Namespace an oder aktualisiert sie und wendet die Migrationen aus migrationsDir an.

  3. Ressourcen binden

    Die App bekommt DB und CACHE als typisierte Bindings, ohne Connection-Strings.

  4. Worker veröffentlichen

    Der TanStack-Start-Build geht unter derselben Stage auf Cloudflare Workers.

Ein ehrlicher Kompromiss. Alchemy speichert seinen State standardmäßig im lokalen Ordner .alchemy, und unserer steht in der gitignore. Unsere interne App deployt deshalb von einem Entwicklerrechner, nicht aus der CI. Alchemy bietet einen CloudflareStateStore für Remote-State (Doku). Den haben wir noch nicht eingerichtet. Bei einer Kunden-App, die mehrere Leute deployen, käme das zuerst.

Warum bleibt diese Website auf Vercel?

Diese Website ist Next.js 16 mit statischen Artikelseiten und next/image. Ihre vercel.json auf Vercel ist wörtlich {}. Jeder Branch bekommt eine eigene Preview-URL, und genau so prüfen wir einen neuen Artikel, bevor er live geht.

Vercel oder Cloudflare: welche App wohin gehört. Links Vercel: Next.js-Websites und ältere Next.js-Apps mit Postgres, ohne Konfiguration, eine Preview-URL pro Branch, aber Deploys werden blockiert, wenn der Commit-Autor nicht im Team ist. Rechts Cloudflare Workers: neue TanStack-Start-Apps mit D1, KV und R2, in einer Datei alchemy.run.ts beschrieben und pro Anfrage abgerechnet.Vercel oder Cloudflare: welche App wohin gehört. Links Vercel: Next.js-Websites und ältere Next.js-Apps mit Postgres, ohne Konfiguration, eine Preview-URL pro Branch, aber Deploys werden blockiert, wenn der Commit-Autor nicht im Team ist. Rechts Cloudflare Workers: neue TanStack-Start-Apps mit D1, KV und R2, in einer Datei alchemy.run.ts beschrieben und pro Anfrage abgerechnet.

Next.js läuft auch auf Cloudflare. Der OpenNext-Adapter deployt Next.js auf Workers und unterstützt Next.js 16. Wir haben diese Website nicht umgezogen und können daher keinen Vergleich liefern. Eine funktionierende Website nur für einen Hosterwechsel umzuziehen, ist Arbeit ohne Ergebnis für alle, die sie lesen.

Genauso ist es bei älteren Kunden-Apps. Ein System, das wir für eine Spedition gebaut haben, läuft als Next.js mit Postgres und Prisma auf Vercel. Es bleibt dort. Neue Apps starten auf Cloudflare, weil dort unsere Vorlage lebt, nicht weil die alten gescheitert wären.

Warum hat Vercel Deploys von unserem KI-Agenten blockiert?

Unser KI-Kollege arbeitet in einem eigenen Konto an Issues und öffnet Pull Requests. Nachdem wir einen seiner PRs gemergt hatten, lief das Produktions-Deployment auf Vercel nicht. Der Status war BLOCKED mit dem Code TEAM_ACCESS_REQUIRED.

Der Grund: Vercel blockiert Deployments, deren Commit-Autor kein Mitglied des Vercel-Teams ist. Ein Squash-Merge behält den Agenten als Autor. Wir haben mit einer anderen Autor-E-Mail gemergt. Das half nicht, weil GitHub eine Co-authored-by-Zeile mit dem Agenten anhängt, und Vercel blockiert auch Co-Autoren. Andere Teams hatten dasselbe mit Agenten als Co-Autoren (Thread in der Vercel-Community).

Was funktioniert, ist ein Deploy ohne Git-Metadaten:

git archive origin/main | tar -x -C /tmp/site-export
cp -r .vercel /tmp/site-export/
cd /tmp/site-export && vercel deploy --prod

Der andere Weg ist ein Vercel-Sitzplatz für den Agenten. Auf Cloudflare kam die Frage nie auf, weil Alchemy aus dem Code deployt, nicht nach Commit-Autor.

Welche anderen Vercel-Alternativen gibt es?

Die üblichen Listen nennen immer dieselben Hoster. Zu jedem eine Zeile und ehrlich, was wir darüber wissen:

  • Netlify: ein ähnliches Modell wie Vercel, Deploys aus Git und Previews. Von uns nicht in Produktion getestet.
  • Render: lang laufende Dienste und Managed Postgres. Von uns nicht getestet.
  • Ein VPS mit Coolify: ein eigener Server mit einer Deploy-Oberfläche. Einfache VPS betreiben wir, Coolify nicht in Produktion.

Wenn Ihnen jemand eine Liste mit zehn Hostern verkauft, fragen Sie, welche davon er heute selbst betreibt.

Ist Ihre App bereit, Vercel zu verlassen?

Gehen Sie das durch, bevor Sie einen Umzug starten. Jeden Punkt beantwortet Ihr Repository:

Der erste Punkt überrascht die meisten Teams. Eine Next.js-App auf Vercel nutzt oft Plattformfunktionen, die niemand aufgeschrieben hat. Finden Sie sie vor dem Umzug, nicht danach.

Wie wir entscheiden, was ein Agent ändern darf und was Code vor einem Merge prüft, steht in Harness Engineering in der Praxis.

Möchten Sie eine App, die dort läuft, wo sie passt?

Wir bauen und betreiben Webanwendungen auf Vercel, Cloudflare oder Ihrem eigenen Server, mit der Infrastruktur in Ihrem Konto und im Code. Siehe Webanwendungen nach Maß. KI schreibt heute unseren gesamten Code, und ein Senior steht für das Ergebnis gerade. Seit 2023 haben wir 15+ Produktionsprojekte geliefert.

Wir melden uns innerhalb von zwei Arbeitstagen und wählen gemeinsam, was wir zuerst lösen.

Wenn Sie lieber zuerst sprechen möchten, buchen Sie ein 15-Minuten-Meeting mit Filip.

Welche Ihrer Apps läuft nur deshalb bei ihrem Hoster, weil sie niemand umgezogen hat?

Kurz gesagt

  • Wählen Sie den Hoster pro App, nicht pro Firma: Next.js-Websites auf Vercel, neue Apps mit Datenbank auf Cloudflare Workers und D1.
  • Vercel Hobby ist nur für nicht kommerzielle Nutzung. Ein Kundenprojekt braucht Pro.
  • Alchemy beschreibt Worker, D1 und KV in einer TypeScript-Datei. Der State ist standardmäßig lokal.
  • Vercel blockiert Deploys von Commit-Autoren außerhalb des Teams, KI-Agenten eingeschlossen. Ein Git-loser Export-Deploy oder ein Sitzplatz löst es.

Häufige Fragen

Was ist die beste Vercel-Alternative?

Das hängt von der App ab. Für eine Next.js-Website ist Vercel selbst schwer zu schlagen. Für eine App, die Datenbank, Cache und Speicher in einem Konto braucht und pro Anfrage abgerechnet wird, nutzen wir Cloudflare Workers mit D1. Netlify, Render oder ein VPS mit Coolify sind weitere Optionen, die wir aber nicht in Produktion betrieben haben.

Ist Cloudflare Workers günstiger als Vercel?

Laut Preisliste ist der Einstieg niedriger: Workers Paid beginnt bei 5 $ im Monat pro Konto mit 10 Millionen inklusiven Anfragen, Vercel Pro kostet 20 $ im Monat mit 20 $ Nutzungsguthaben (beides abgerufen am 24.10.2026). Was Sie tatsächlich zahlen, hängt von Traffic, Sitzplätzen und Diensten ab. Vergleichen Sie mit Ihren eigenen Zahlen.

Kann ich Next.js auf Cloudflare betreiben?

Ja, über den OpenNext-Adapter, der Next.js auf Cloudflare Workers deployt und Next.js 16 unterstützt. Wir haben diese Website nicht dorthin umgezogen und können daher nicht sagen, wie sie sich im Vergleich zu Vercel verhält.

Darf ich den Vercel-Hobby-Plan für ein Kundenprojekt nutzen?

Nein. Laut Vercel ist Hobby für die persönliche, nicht kommerzielle Nutzung, und als kommerziell zählt auch bezahlter Code eines Beraters. Ein Kundenprojekt braucht Pro oder Enterprise.

Warum blockiert Vercel mein Deployment?

Eine häufige Ursache: Der Commit-Autor oder eine Co-authored-by-Zeile ist kein Mitglied des Vercel-Teams. Das passiert bei Commits von KI-Agenten. Deployen Sie einen Export ohne Git, oder geben Sie dem Agenten einen Sitzplatz.

Fragen Sie eine KI zu diesem Artikel

Die KI nutzt dabei auch unsere anderen Artikel und Erfahrung aus echten Projekten.

ChatGPTClaudePerplexity
Engineering

Weitere Artikel

CTO-Entscheidungen

Claude Code Preise fürs Team: Pläne, API und Agenten

Claude Code Pricing laut der öffentlichen Preisliste von Anthropic (Oktober 2026): Pro, Max, Team-Seats, Enterprise und API-Tokens. Was zu Entwicklern passt, worauf ein dauerhaft laufender Agent und ein CI-Reviewer laufen, und die Leitplanken, die einen Hintergrund-Agenten davon abhalten, das Budget zu verbrennen.

CTO-Entscheidungen

Better Auth vs. Clerk: Warum wir Better Auth nutzen

Better Auth vs. Clerk entscheidet sich daran, wo Ihre Nutzer und Sessions liegen. Wir sind in jeder neuen App von NextAuth auf Better Auth gewechselt und haben Clerk nie gewählt. Unsere echte Konfiguration, die Plugins in Produktion, die Clerk-Preise und wann Clerk die bessere Wahl ist.

CTO-Entscheidungen

Drizzle vs Prisma: warum wir beide in Produktion nutzen

Drizzle vs Prisma aus zwei ORMs, die wir in Produktion betreiben: Prisma auf Postgres in älteren Kunden-Apps, Drizzle auf Cloudflare D1 in allem Neuen. Echte Konfiguration, der Migrationsablauf, was Prisma 7 geändert hat und wann wir nicht wechseln würden.

Zeit, mit dem Planen aufzuhören und das Problem zu lösen.

Kontakt

  • Digitaliko s.r.o.
    Šípková 377/17
    958 03 Malé Uherce, Slowakei
  • Melden Sie sich bei uns
    info@digitaliko.com
    +421 950 595 506
    WhatsApp