Produktionsreifer Issue-Tracker im Jira-Stil — demonstriert skalierbare Next.js-Architektur mit Supabase, RBAC und praxisnahen Engineering-Mustern.
Enthält E2E-Tests, produktionsreife Muster und ein echtes Supabase-Backend.
01Engineering Highlights
Ops Tracker ist eine Full-Stack-Anwendung für Projektverwaltung und Issue-Tracking, die produktionsreife Frontend-Architektur auf Basis einer echten Supabase-Datenbank (PostgreSQL) demonstriert. Sie umfasst Authentifizierung, rollenbasierte Zugriffskontrolle, Kanban-Boards, projektbezogene Issues, vollständige Audit-Protokolle, transaktionale E-Mails und Internationalisierung in drei Sprachen — alles, was ein echtes B2B-SaaS braucht.
- 01Next.js 16 App Router
Server-Komponenten, Server-Actions und Proxy-Middleware treiben sowohl Authentifizierung als auch i18n end-to-end.
- 02Row Level Security in der DB
Supabase RLS erzwingt jeden Lese- und Schreibzugriff auf Datenbankebene — standardmäßig Zero Trust.
- 03Dreistufiges RBAC
Die Rollen Benutzer, Admin und Super-Admin sind als typisiertes Postgres app_role Enum gespeichert und werden serverseitig validiert.
- 04Virtualisierte Issue-Tabelle
TanStack Table v8 zusammen mit @tanstack/react-virtual hält große Issue-Listen bei jeder Zeilenanzahl flüssig.
- 05Playwright E2E-Abdeckung
Kritische Authentifizierungs- und Issue-Workflows sind durch End-to-End Playwright-Tests abgesichert.
02Architektur-Überblick
- 01Feature-basierte Module
Jede Domain liegt unter src/features/<Domain>/ mit ihren Komponenten, Hooks, Actions, Service und Zod-Schemas an einem Ort.
- 02Server-first Datenabruf
Server-Komponenten übernehmen den ersten Render; TanStack Query übernimmt anschließend auf dem Client für Listen, Filter und optimistische Mutationen.
- 03Verteidigung in der Tiefe
Supabase RLS plus Server-Action-Rollenprüfungen erzwingen Berechtigungen zweifach — dem Client wird für Autorisierung nie vertraut.
- 04Append-only Audit-Log
Jede Mutation wird in eine PostgreSQL audit_logs Tabelle mit typisierten Action-Keys, Akteur, Entität und Metadaten geschrieben.
03Herausforderungen & Entscheidungen
Wichtige architektonische Herausforderungen, Trade-offs und Entscheidungen beim Bau von Ops Tracker.
Server-Komponenten liefern einen schnellen, SEO-freundlichen ersten Render, doch Listen, Filter und Inline-Editing brauchen echte Client-Interaktivität.
Hybrides Modell: Server-Komponenten holen Daten vor und dehydrieren sie in eine HydrationBoundary, anschließend übernimmt TanStack Query auf dem Client für Filter, Sortierung und optimistische Updates.
Zwei Datenebenen erhöhen den mentalen Aufwand — jedes Feature muss entscheiden, wo seine Daten leben — aber der erste Render bleibt schnell und das UI fühlt sich nie statisch an.
B2B-SaaS braucht volle Nachvollziehbarkeit: wer hat wann was an welcher Entität verändert — ohne diese Buchführung an Feature-Code zu koppeln.
Eine append-only PostgreSQL audit_logs Tabelle wird aus einem einzigen, typisierten Audit-Service beschrieben. Action-Keys sind eine Literal-Union, sodass jede Mutation ihre Absicht auf Typebene deklarieren muss.
Schreib-Verstärkung und Speicherwachstum sind real, aber das Audit-Log ist die Quelle der Wahrheit für Compliance, Debugging und die In-App-Aktivitätszeitleisten.
Eine flache src/components + src/hooks-Struktur kollabiert unter ihrem eigenen Gewicht, sobald ein Projekt mehrere Bounded Contexts hat.
Code ist nach Feature organisiert (src/features/<Domain>/), mit Komponenten, Hooks, Server-Actions, Services und Schemas neben der Domain, zu der sie gehören.
Cross-Feature-Wiederverwendung erfordert eine bewusste Promotion nach shared/, dafür ist Eigentümerschaft offensichtlich und Refactorings einer Domain berühren selten etwas außerhalb ihres Ordners.
04Tech Stack
05Hauptfunktionen
- Drag-and-Drop Kanban-Board
Projektbezogenes Kanban-Board mit @dnd-kit, Spalten durch konfigurierbare Workflow-Status gesteuert.
- Rollenbasierte Zugriffskontrolle
Dreistufiges RBAC — Benutzer, Admin, Super-Admin — auf Datenbankebene via Supabase RLS durchgesetzt.
- Virtualisierte Issue-Tabelle
Große Issue-Listen mit TanStack Table v8 und @tanstack/react-virtual für reibungslose Performance bei hoher Datenmenge.
- Vollständiges Audit-Trail
Jede Mutation wird in PostgreSQL audit_logs mit farbcodierten Action-Badges und aussagekräftigen Zusammenfassungen gespeichert.
- Internationalisierung
Vollständige i18n via next-intl für Englisch, Deutsch und Slowenisch einschließlich aller Validierungsmeldungen und Fehlertexte.
- Admin-Kontrollpanel
Dedizierter /admin-Bereich für Benutzerrollen-Verwaltung, Issue-Status-CRUD, globales Audit-Protokoll und Super-Admin-Einstellungen.