Wie man mit einem 20-Dollar-Stack mehrere Unternehmen mit 10.000 Dollar Monatsumsatz betreibt
(stevehanov.ca)- Eine Bootstrapping-Strategie, um mit Infrastrukturkosten von unter 20 Dollar pro Monat mehrere SaaS-Unternehmen mit mehr als 10.000 Dollar MRR zu betreiben – unter Nutzung eines einzelnen VPS, der Sprache Go, SQLite und einer lokalen GPU
- Statt AWS oder komplexer Cloud-Orchestrierung laufen alle Dienste auf einem einzigen VPS für 5 bis 10 Dollar, sodass man sich auf die Verarbeitung von Anfragen statt auf Infrastrukturmanagement konzentrieren kann
- Als Backend-Sprache wird Go gewählt, um einen extrem einfachen Deployment-Prozess zu erhalten: ohne Abhängigkeitsmanagement zu einer einzelnen Binärdatei kompilieren und anschließend auf dem Server bereitstellen
- Durch den Betrieb von VLLM auf einer lokalen GPU (RTX 3090) werden die Kosten für AI-Batch-Verarbeitung auf null gesenkt; nur für nutzerseitige Funktionen kommen über OpenRouter Frontier-Modelle zum Einsatz
- Auch ohne Venture Capital kann man sich durch nahezu null laufende Kosten eine praktisch unbegrenzte Runway sichern und so genug Zeit gewinnen, Product-Market-Fit zu finden
Lean-Strategie für den Serverbetrieb
- Die übliche Art, 2026 eine Web-App zu starten, ist das Provisionieren eines EKS-Clusters, einer RDS-Instanz und eines NAT Gateway auf AWS; dabei entstehen schnell Kosten von über 300 Dollar im Monat – selbst ohne einen einzigen Nutzer
- Als Alternative wird ein VPS für 5 bis 10 Dollar pro Monat bei Linode oder DigitalOcean gemietet und alles auf einem einzelnen Server betrieben
- Selbst 1 GB RAM reichen bei sinnvoller Nutzung aus; wenn etwas Puffer nötig ist, hilft eine Swap-Datei
- Mit nur einem Server weiß man genau, wo sich die Logs befinden, warum etwas abgestürzt ist und wie man es neu startet
- Der Grund, statt AWS einen VPS zu wählen, sind vorhersehbare Kosten und eine einfache Architektur
Warum Go gewählt wird
- Python oder Ruby verbrauchen schon durch das Starten des Interpreters und das Verwalten von gunicorn-Workern die Hälfte des RAM
- Go liefert bei Web-Workloads deutlich bessere Performance, hat ein strenges Typsystem und ist im Jahr 2026 eine Sprache, über die LLMs sehr leicht schlussfolgern können
- Der wichtigste Vorteil von Go ist die Einfachheit des Deployment-Prozesses: Die komplette Anwendung wird zu einer einzelnen statisch gelinkten Binärdatei kompiliert, auf dem Laptop gebaut und per
scpauf den Server kopiert und dort ausgeführt - Es gibt keine
pip install-Abhängigkeitshölle und keine virtuellen Umgebungen, und auch ohne aufgeblähte Frameworks lässt sich ein Webserver auf Produktionsniveau bauen - Schon mit der Go-Standardbibliothek allein kann man einen Server schreiben, der Zehntausende Anfragen pro Sekunde verarbeitet
Lokale AI nutzen: Batch-Jobs auf null Kosten bringen
- Wer zu Hause eine Grafikkarte hat, besitzt im Grunde bereits unbegrenzte AI-Credits
- Beim Aufbau von eh-trade.ca war groß angelegte qualitative Aktienanalyse nötig, bei der Quartalsberichte von Tausenden Unternehmen ausgewertet werden mussten; mit der OpenAI API hätte das mehrere hundert Dollar kosten können
- Stattdessen lief VLLM auf einer für 900 Dollar über Facebook Marketplace gekauften RTX 3090 (24 GB VRAM), wodurch keine Kosten mehr an AI-Anbieter gezahlt werden mussten
- Der Upgrade-Pfad für lokale AI:
- Mit Ollama starten: per Einzeiler (
ollama run qwen3:32b) eingerichtet, ideal zum sofortigen Testen verschiedener Modelle und für Prompt-Iterationen - Für die Produktion auf VLLM umsteigen: Ollama wird bei gleichzeitigen Anfragen zum Flaschenhals, während VLLM durch PagedAttention drastisch schneller ist. Schickt man 8 bis 16 asynchrone Anfragen gleichzeitig, werden sie im GPU-Speicher gebatcht und fast in derselben Zeit verarbeitet wie eine einzelne Anfrage
- Transformer Lab: Wenn Vortraining oder Fine-Tuning eines Modells nötig ist, lässt sich das einfach auf lokaler Hardware ausführen
- Mit Ollama starten: per Einzeiler (
- Zur Verwaltung davon wurde laconic selbst entwickelt: ein Agenten-Forschungstool, optimiert für ein 8K-Kontextfenster, das wie der virtuelle Speicher-Manager eines Betriebssystems unnötige Teile von Gesprächen „auslagert“, damit nur die Kernfakten im aktiven LLM-Kontext bleiben
- llmhub: ein Tool, das alle LLMs über die Kombination aus provider/endpoint/apikey abstrahiert und Text- sowie Bild-I/O nahtlos lokal oder in der Cloud verarbeitet
Zugriff auf Frontier-Modelle über OpenRouter
- Nicht alles lässt sich lokal verarbeiten; für nutzerseitige Chat-Interaktionen mit niedriger Latenz braucht man modernste Reasoning-Modelle wie Claude 3.5 Sonnet oder GPT-4o
- Statt getrennt Billing-Konten, API-Schlüssel und Rate Limits für Anthropic, Google und OpenAI zu verwalten, wird alles über OpenRouter gebündelt
- Mit nur einer OpenAI-kompatiblen Integrationslogik erhält man sofortigen Zugriff auf alle wichtigen Frontier-Modelle
- Unterstützt wird auch nahtloses Fallback-Routing: Fällt die Anthropic API aus, wird automatisch auf ein gleichwertiges OpenAI-Modell umgeschaltet, sodass Nutzer keinen Fehlerbildschirm sehen und keine komplexe Retry-Logik nötig ist
Kosteneffizientes AI-Coding mit GitHub Copilot
- Während jede Woche neue teure Modelle erscheinen, geben Entwickler monatlich Hunderte Dollar für Cursor-Abos und Anthropic-API-Schlüssel aus
- Dagegen steigen die monatlichen Kosten selbst bei ganztägiger Nutzung von Claude Opus 4.6 kaum über 60 Dollar
- Das Geheimnis ist die Nutzung des Preismodells von Microsoft: 2023 wurde ein GitHub-Copilot-Abo abgeschlossen und mit dem normalen VS Code verbunden
- Der entscheidende Trick bei Copilot: Microsoft berechnet nicht pro Token, sondern pro Anfrage, und eine „Anfrage“ ist einfach eine Eingabe im Chat-Fenster. Selbst wenn der Agent 30 Minuten lang die gesamte Codebasis analysiert und Hunderte Dateien ändert, kostet das nur etwa 0,04 Dollar
- Die optimale Strategie: einen detaillierten Prompt mit strengen Erfolgskriterien schreiben, dann anweisen, „weiterzumachen, bis alle Fehler behoben sind“, und ausführen lassen
SQLite als Datenbank für alles
- Beim Start eines neuen Ventures wird immer sqlite3 als Hauptdatenbank verwendet
- Aus Enterprise-Sicht scheint ein Datenbankserver als separater Prozess nötig zu sein, doch in Wirklichkeit ist eine lokale SQLite-Datei, die über eine C-Schnittstelle oder direkt im Speicher angesprochen wird, um Größenordnungen schneller als ein entfernter Postgres-Server mit TCP-Netzwerk-Hop
- Ein verbreitetes Missverständnis zur Nebenläufigkeit ist die Annahme, SQLite sperre bei jedem Schreibvorgang die gesamte Datenbank; das wird durch Aktivierung von Write-Ahead Logging (WAL) gelöst
- Mit
PRAGMA journal_mode=WAL;undPRAGMA synchronous=NORMAL;blockieren sich Lese- und Schreibzugriffe nicht gegenseitig - Mit einer einzelnen
.db-Datei auf einem NVMe-Laufwerk lassen sich Tausende gleichzeitige Nutzer bedienen
- Mit
- Um die Implementierung der Benutzerauthentifizierung zu vereinfachen, wurde die eigene Bibliothek smhanov/auth entwickelt: Sie integriert sich direkt in die verwendete Datenbank und unterstützt Registrierung, Sessions, Passwort-Reset sowie Logins über Google/Facebook/X/SAML
Fazit: Startups ohne komplexe Infrastruktur bauen
- Die Tech-Branche behauptet oft, dass für den Aufbau eines echten Geschäfts komplexe Orchestrierung, hohe monatliche AWS-Kosten und Millionen an Venture Capital nötig seien – das stimmt nicht
- Kombiniert man einen einzelnen VPS, statisch kompilierte Binärdateien, lokale GPU-Hardware für Batch-AI-Jobs und die rohe Geschwindigkeit von SQLite, lässt sich ein skalierbares Startup zum Preis einiger Tassen Kaffee pro Monat bootstrappen
- Das gibt einem Projekt unbegrenzte Runway und verschafft Zeit, sich auf die Lösung von Nutzerproblemen zu konzentrieren statt sich über die Burn Rate Sorgen zu machen
1 Kommentare
Hacker-News-Kommentare
In Unternehmensumgebungen ist die Vorstellung weit verbreitet, man müsse einen externen DB-Server verwenden, aber in der Praxis ist eine lokale SQLite-Datei beim Zugriff über die C-Schnittstelle oder den Speicher viel schneller als ein entfernter Postgres
SQLite ist natürlich großartig, aber wenn man sich auf localhost per Unix-Domain-Socket mit Postgres verbindet, lässt sich der Netzwerk-Overhead fast vollständig eliminieren
Es ist nicht wesentlich schwieriger zu benutzen als SQLite, man kann alle Funktionen von Postgres nutzen, und Dinge wie Reporting, Read Replicas oder HA-Setups sind deutlich einfacher
Postgres auf demselben Server wie die App zu betreiben, ist eine völlig andere Entscheidung als die Übervorsorge, gleich einen Kubernetes-Cluster aufzubauen
Wenn man eine monolithische App auf einer einzelnen Maschine betreibt, bietet Postgres gegenüber SQLite nicht besonders viele zusätzliche Vorteile
SQLite lässt sich mit Application functions direkt in der Anwendungssprache erweitern, und dank Litestream sind auch Backups und Replikation deutlich besser geworden
Allerdings sind die Standardeinstellungen nicht ideal, daher sollte man Lese- und Schreibverbindungen trennen und die Write Queue direkt in der App verwalten
SELECT 1ausführt, braucht Postgres 2,77 Sekunden, SQLite (in-memory) dagegen 0,07 Sekunden — ein erheblicher Unterschied (Benchmark-Link)Mit einem entfernten Server wäre es auch möglich gewesen, aber deutlich komplexer
Stattdessen haben wir die DB auf S3 gelegt, sodass jede Instanz eine Kopie ziehen und parallel verarbeiten konnte. SQLite ist eine bewährte Alternative, wenn es eher auf Performance als auf Funktionsumfang ankommt
Viele glauben, man müsse von Anfang an komplexe Setups mit Serverless, Kubernetes, Multi-Zone-HA und Ähnlichem aufbauen
Wenn man sagt: „Es läuft auch einfach auf einem günstigen VPS“, kommen sofort Reaktionen wie „Und das Skalieren?“, „Und die Backups?“, „Und die Wartung?“ — dabei werden im Grunde nur Cloud-Marketing-Floskeln wiederholt
Diese Haltung kommt einer erlernten Hilflosigkeit nahe
Zum Beispiel werden in eine einfache SPA mit ein paar Eingabeformularen gleich Shadcn, Tailwind, React, Zod und Vite hineingepackt. Der Wartungsaufwand ist enorm
Solche Setups mögen die „richtige Antwort“ sein, aber nicht unbedingt die situationsgerechte Antwort
Ich nutze Linode oder DigitalOcean und zahle nur 5 bis 10 Dollar im Monat. 1 GB RAM reicht völlig
Wenn man mehrere Projekte auf einem einzigen dedizierten Server bündelt, lassen sich die Kosten weiter senken
Ich nutze zum Beispiel einen Server für 40 Euro pro Monat aus der Hetzner Serverbörse und lasse darauf Proxmox laufen (Proxmox-Link)
Selbst mit 15 VMs landet man bei rund 2,66 Euro pro VM, also einer sehr hohen Kosteneffizienz im Verhältnis zur Größenordnung
Bei generalüberholter Hardware sind Backups Pflicht, aber die braucht man ohnehin
Anbieter wie Hetzner, Contabo oder Scaleway sind nach wie vor günstige Optionen
Ich denke, der größte Kostensenker ist der WAL-Modus von SQLite
Auch Python oder Node lassen sich genauso gut einsetzen wie Go. Ein VPS von Hetzner mit 4 GB RAM und 10 TB Traffic kostet ungefähr 5 Dollar im Monat
Wer allerdings einen dedizierten Server nutzt, sollte häufige DB-Backups machen und die Sicherheit selbst verantworten
Ich setze das so auf, dass ich per Terraform den SSH-Zugriff auf meine IP beschränke, dann Tailscale einrichte und anschließend den öffentlichen SSH-Port schließe
Ich nutze Backblaze B2, aber mit Restic kann man auch leicht zu anderen Diensten sichern
Auch kürzlich haben sich SSH-Versuche innerhalb einer Stunde im Log angesammelt. Inzwischen deaktiviere ich Passwort-Logins und greife nur noch über Tailscale zu
Ein öffentlich erreichbarer Server ist wirklich gefährlich
Ich halte die Begrenzung auf 1 GB RAM für unnötig. Für 20 Dollar im Monat bekommt man 8 GB RAM, die man für Cache oder DB nutzen kann
Der Unterschied von 15 Dollar hat auf den Geschäftsbetrieb kaum Einfluss. Sich krampfhaft an einen 5-Dollar-VPS anzupassen, hilft dem Wachstum eines Geschäfts nicht
Früher lief ein LAMP-Stack auch gut mit 128 MB, und Webseiten sind heute nicht automatisch komplex
17 Millionen Requests pro Tag ohne Cache sind machbar; die Infrastruktur schon vorher zu vervierfachen, ist Verschwendung
Das 8-GB-Modell des Macbook Neo ist ein gutes Beispiel dafür
WebSequenceDiagram wirkt wie ein cooles Produkt
Aber schwieriger als die technische Umsetzung ist es, ein wertvolles Problem zu finden und die Nutzer zu erreichen. Darin steckt der eigentliche Wert
Ich habe 2023 GitHub Copilot abonniert, in VS Code eingebunden und nutze es seitdem durchgehend
Entscheidend ist, dass Microsoft pro Request abrechnet. Selbst wenn mit einer einzigen Anfrage über viele Minuten hinweg der gesamte Code umgebaut wird, kostet das nur etwa 0,04 Dollar
Deshalb formuliere ich sehr konkrete Prompts und sage dann: „Mach weiter, bis alle Fehler behoben sind“, und gehe einen Kaffee holen. Satya Nadella subventioniert damit praktisch meine Rechenkosten
Ich habe aus dem Artikel nichts Neues gelernt. Vieles wirkte wie grundlegende Ratschläge, nur von KI verpackt
Nach dem Titel hatte ich eher erwartet, etwas über Ideenfindung und erfolgreiche Launches zu lesen
Falls sich noch jemand wie ich gefragt hat: MRR steht für „Monthly Recurring Revenue“
Ich habe sogar Leute gesehen, die nach nur zwei Monaten Betrieb schon ARR verkündet haben
Cloud-zentriertes Denken erhöht in vielen Fällen unnötig Komplexität und Kosten
Für die meisten Projekte reicht ein mittelgroßer VPS völlig aus
Unsere Firma konnte Seiten mit 600.000 Nutzern auf einem 30-Euro-VPS betreiben, ist dann zu AWS gewechselt und zahlt jetzt 800 Euro im Monat. Gewonnen haben wir dadurch nichts
Wenn es keinen guten Grund gibt, sollte man bei dem einfachen Serveransatz bleiben, der seit Jahrzehnten zuverlässig funktioniert
Soweit ich weiß, wird auch StackOverflow mit ein paar leistungsstarken Root-Servern betrieben