Stack
Jede App, die ich baue, startet vom selben Bauplan. Jede Entscheidung unten bekommt einen eigenen Text in Boring Stack.
| Bereich | Wahl | Warum |
|---|---|---|
| Sprache | Go | Ein statisches Binary, eine Standardbibliothek, die HTTP abdeckt, und Code, der sich auch in fünf Jahren noch gleich liest |
| Routing | net/http |
Der Standard-Router kann Methoden und Pfadparameter, ein Framework bringt nichts dazu |
| Frontend | templ, htmx, Tailwind | Serverseitig gerendertes HTML mit typgeprüften Templates; Interaktivität ohne zweite App in JavaScript |
| Datenbank | SQLite | Eine Datei, kein Server, schnell genug für fast alles, was ein kleines Team baut |
| Datenzugriff | sqlx und handgeschriebenes SQL | Das SQL, das man liest, ist das SQL, das läuft |
| Migrationen | goose, eingebettet | Das Binary migriert seine Datenbank beim Start selbst |
| Tests | Echte In-Memory-SQLite, keine Mocks | Tests gegen eine echte Datenbank finden die Fehler, die Mocks verstecken |
| Entwicklung | Nur Docker | Ein neuer Rechner braucht Docker und sonst nichts |
| Hosting | Ein VPS, Caddy | Günstig und schnell; ein einzelner Server ist leicht zu durchschauen |
| Websites | Hugo | Statische Dateien, keine Laufzeit, nichts zu patchen. Diese Seite läuft darauf |