Organisationen, Projekte, ein Kanban-Board und ein Aktivitäts-Feed – mit Anbindung an GitHub. Gebaut als Referenzprojekt: vollständig getestet, dokumentiert und im echten Betrieb.
Mehrere Teams in einer Anwendung, getrennt auf Datenebene. Rollen von OWNER bis MEMBER, Einladungen per Token.
Aufgaben mit Status, Beschreibung und Zuordnung – gruppiert in Projekten je Organisation.
Verschieben per Maus oder Tastatur. Die Reihenfolge bleibt stabil, auch wenn zwei Personen gleichzeitig sortieren.
Kennzahlen der Organisation und ein fortlaufendes Protokoll aller Änderungen, seitenweise nachladbar.
Ein Repository verbinden, und Pushes und Pull Requests erscheinen im Feed – über signierte Webhooks.
Die Organisation steht in der WHERE-Bedingung, nicht in einer Prüfung danach. Abgesichert durch Tests, die fremde Zugriffe erwarten – und durch Mutationsproben, die belegen, dass diese Tests den Schutz wirklich bewachen.
Sortierung per fractional indexing, optimistisches Sperren beim Verschieben mit 409 bei Konflikt, Idempotenz eingehender Webhooks über ein UNIQUE statt über ein vorheriges Nachsehen.
Zwei Skripte im Repository lassen die naive und die optimierte Fassung nebeneinander laufen: 202 gegen 4 Abfragen beim Dashboard, dazu die Ausführungspläne des Feeds auf 40.000 Zeilen.
Neunzehn Architekturentscheidungen mit verworfenen Alternativen und eingestandenen Nachteilen – und ein Fehlerprotokoll mit den eigenen Fehlern statt einer Hochglanzfassung.
Vercel
Next.js
Oberfläche, statisch ausgeliefert
Hetzner
NestJS im Container
hinter einem Reverse Proxy, ohne eigenen Port nach außen
Neon
PostgreSQL
verwaltet, mit geprüfter TLS-Verbindung
Aufgeteilt nach Schadenshöhe: Was nur eine Wiederholung kostet, wird selbst betrieben. Was unwiederbringlich ist – die Daten – liegt bei einem Anbieter mit Sicherungen. Begründung in den Architekturentscheidungen.