Zum Inhalt wechseln
cutty.dev
All posts

Der Technologie-Stack von cutty.dev – bewusste Entscheidungen

Was steckt hinter cutty.dev und warum? Ohne Evangelismus: Philosophie – ein langweiliger, stabiler Tech-Stack, Hosting in der EU und Datenschutz als fester Bestandteil einer Architektur, die von einer einzigen Person gewartet werden kann.

Die meisten Artikel über „mein Tech-Stack“ sind eine stolze Liste von Neuheiten. Dieser handelt von etwas anderem — von der Philosophie, die den Entscheidungen hinter cutty.dev zugrunde liegt: langweilig und stabil statt modisch, europäisch statt amerikanisch, von Grund auf privat und so einfach, dass eine einzelne Person das alles warten kann.

Rahmenwerk: Astro (Server-seitiges Rendering)

cutty.dev ist eine Astro-Anwendung mit Server-Side-Rendering. Jede Anfrage wird vom Server verarbeitet, die Seite dynamisch erstellt und als fertiges HTML zurückgegeben.

Warum: Ich wollte Server-Side-Rendering ohne schweren Ballast, gute Unterstützung vieler Sprachen, die direkt im Framework integriert sind, und Geschwindigkeit ohne Overhead. Astro bietet all das, und der Code bleibt übersichtlich – was bei einem Solo-Projekt mehr wert ist als jeder trendige Zusatz.

Datenbank: SQLite

Eine einzige Datenbank, eine einzige Datei. Dazu eine typsichere Abfrageschicht, die dafür sorgt, dass Änderungen an der Datenstruktur sofort Fehler im Code anzeigen – und nicht erst in der Produktion.

Warum: cutty.dev ist in erster Linie „read-heavy" – jeder Klick auf einen Link bedeutet ein Lesen und erhöht den Zähler. SQLite erledigt dies hervorragend, auch bei sehr hohem täglichen Verkehrsaufkommen. Ein Backup besteht einfach darin, eine einzige Datei zu kopieren – ohne Replikationszeremonien, ohne komplizierte Skripte. Einfachheit ist hier keine Einsparung an Qualität; es ist eine bewusste Entscheidung, dass weniger bewegliche Teile weniger Dinge bedeuten, die kaputtgehen können.

Hosting: Server in der Europäischen Union

Dedizierter Server in der EU, eigenes TLS-Zertifikat, Reverse-Proxy mit automatischem HTTPS, Container-basierte Anwendung.

Warum: Dies ist das Fundament dafür, wie cutty.dev mit Daten umgeht. Volle Kontrolle über deren Speicherort (entscheidend für Kunden in der EU und für die DSGVO), keine Abhängigkeit von einem einzelnen Anbieter, keine automatische Replikation in die USA, die große Cloud-Plattformen bieten, sowie kalkulierbare Kosten statt einer vom Datenvolumen abhängigen Abrechnung. Komfortable westliche Plattformen würden einen schnelleren Start ermöglichen – jedoch zum Preis dessen, wo die Daten Ihrer Nutzer physisch gespeichert werden.

Übersetzungen: lokales KI-Modell

cutty.dev spricht 25 Sprachen, und die Übersetzungen werden von einem lokalen, Open-Source-KI-Modell durchgeführt, das auf unserer eigenen Infrastruktur läuft.

Warum: Kein Text aus der Benutzeroberfläche wird nach außen gesendet – wir übermitteln ihn an keinen externen KI-Anbieter. Dies führt zu null Kosten pro Übersetzung und voller Kontrolle über die Qualität: Wir können sie jederzeit aktualisieren. Maschinelle Übersetzungen erfordern stets eine menschliche Überprüfung – und jede Sprache wurde einer solchen Prüfung unterzogen –, aber dies intern durchzuführen bedeutet, dass Privatsphäre keine Option in der Preisliste ist, sondern eine Eigenschaft der Architektur.

CSS: nutzungsbasiert (Tailwind)

Ein einziges Stylesystem, kein CSS-in-JS, keine separaten Stylesheets. Alles direkt in den Templates.

Warum: Iterationsgeschwindigkeit. Ich verschwende keine Zeit mit der Namensfindung für Klassen, und nicht genutzte Styles kommen sowieso nicht auf die finale Seite. Ein konsistentes Design wird durch das System selbst erzwungen. Für eine einzelne Person zählt jede Minute, die ich nicht mit Nebensächlichkeiten verbringe.

Implementierung: Container

Container-Anwendung (Docker), bereitgestellt auf wiederholbare und portable Weise.

Warum: dieselbe Umgebung lokal und in der Produktion, kein „bei mir hat es funktioniert“, und die Möglichkeit, alles innerhalb von 30 Minuten auf einen anderen Server zu übertragen, falls erforderlich. Portabilität ist eine Form der Unabhängigkeit.

Was hat mich das gelehrt?

  • Ein langweiliger Tech-Stack gewinnt. Astro, SQLite, Tailwind, Container – alles ausgereift, gut dokumentiert und stabil. Nichts bricht im unpassendsten Moment zusammen.
  • Hosting in der EU ist produktionsreif. Der Mythos „Du musst zu einem großen amerikanischen Cloud-Anbieter gehen, um ernst genommen zu werden“ ist genau das – ein Mythos.
  • Lokale KI ist real. Man muss seine Daten nicht an eine externe API abgeben, um gute Übersetzungen zu erhalten.
  • Eine einzelne Person kann etwas veröffentlichen, das wie ein Produkt eines ganzen Teams aussieht. Zeit ist eine wertvollere Ressource als Geld, daher hat jede Entscheidung hier genau darauf geachtet, Zeit zu sparen.

Live ansehen. Fragen zum technischen Ansatz — hello@cutty.dev, ich antworte am selben Tag.