Architektur-Übersicht
Wie Next.js App Router, tRPC, Better Auth und Prisma zusammenarbeiten.
VibeKit verwendet eine moderne Fullstack-TypeScript-Architektur, die auf Wartbarkeit, Skalierbarkeit und durchgängige Typsicherheit ausgelegt ist.
Anfrage-Ablauf
Wenn ein Benutzer Ihre Anwendung besucht oder ein Formular absendet, durchläuft die Anfrage folgende Schichten:
- Client / Browser: React 19 Komponenten in
apps/webrendern die Benutzeroberfläche mit Tailwind CSS und Radix UI. Formulare und Abfragen rufen tRPC-Prozeduren über@trpc/react-queryauf. - Next.js App Router: Next.js übernimmt Server-Rendering, flache Routen (ohne Sprach-Präfix), Layout-Komposition und Route-Handler (
/api/[trpc],/api/webhooks/stripe). - Kontext & Authentifizierung: Better Auth in
packages/authextrahiert und validiert dasauth_session-Cookie und lädt die Benutzersitzung in den tRPC-Anfragekontext. - tRPC-Prozeduren: Prozeduren in
packages/apivalidieren eingehende Eingaben mit Zod und wenden Autorisierungs-Middleware an (publicProcedure,protectedProcedure,adminProcedure). - Datenbank-Schicht: Der Prisma Client in
packages/databasefragt PostgreSQL mit vollständiger TypeScript-Typinferenz ab.
Durchgängige Typsicherheit
Wenn Sie eine Datenbankspalte umbenennen oder ein API-Eingabeschema anpassen, meldet TypeScript sofort jeden Typfehler über Backend-Prozeduren und Frontend-Komponenten hinweg.
Design-Prinzipien
- Explizite Vertrauensgrenzen: Eingabedaten werden auf dem Server immer mit Zod validiert. Autorisierungsprüfungen laufen serverseitig ab, selbst wenn die UI eine Schaltfläche ausblendet.
- Isolierte Paket-Workspaces: Kern-Utilities, Authentifizierungslogik und Zahlungsadapter leben in wiederverwendbaren Paketen ohne Abhängigkeiten von Web-spezifischen Globals.
- Einheitliches Datenbankschema:
schema.prismadient als zentrale Quelle der Wahrheit für Datenbankmodelle, Migrationen und abgeleitete Zod-Validierungsschemata. - Klare Dokumentation: Jede Funktion ist mit verständlichen Erklärungen und direkt ausführbaren Befehlen dokumentiert.
Weiterlesen: Datenbank & ORM.