v0.3.0

Monorepo-Architektur

Migration zu Turborepo mit pnpm Workspaces und geteilten Packages für konsistente Code-Wiederverwendung über alle Apps hinweg.

Das Projekt wurde von einer einzelnen Next.js-Anwendung in ein Turborepo Monorepo mit pnpm Workspaces umstrukturiert. Vor der Migration wurde geteilte Logik (Utilities, UI-Komponenten, E-Mail-Templates) zwischen den Anwendungen per Copy-Paste übertragen. Änderungen mussten manuell dupliziert werden, und Versionsabweichungen waren unvermeidlich.

Nach der Migration lebt geteilter Code in dedizierten Packages mit scoped Exports. Eine Utility-Funktion wird einmal geschrieben und konsistent über alle Anwendungen hinweg importiert:

// Vorher: per Copy-Paste in jede App
import { cn } from '@/lib/utils'

// Nachher: Single Source of Truth
import { cn } from '@nextsaasai/utils'

Das Build-System nutzt Turborepos Task-Graph, um Builds zu parallelisieren und Ergebnisse zu cachen. Geteilte Packages werden zuerst gebaut, anschließend binden die Anwendungen sie als Workspace-Dependencies ein. Die Kundenauslieferung bewahrt die vollständige Monorepo-Struktur – Kunden erhalten dasselbe Workspace-Layout, das auch in der Entwicklung verwendet wird.

Dies ist ein Minor-Version-Bump auf 0.3.0, da die Migration die grundlegende Struktur des Projekts, die Import-Pfade und die Build Pipeline verändert.

Contributors

Sascha RahnSascha Rahn