Modern, type-safe und enterprise-grade. Die Architektur hinter flowgeist – transparent dokumentiert für Entwickler und IT-Verantwortliche.
Jede Schicht gewählt für Skalierbarkeit, Wartbarkeit und Developer Experience
Single-Page-Application mit SSR-Fähigkeit, component-basiert und vollständig typisiert.
Modularer Monolith mit strikter Modul-Isolation. API-First, decorator-basiert, NestJS-Patterns.
PostgreSQL als Single Source of Truth. Type-safe ORM mit versionierten Migrationen.
Containerisiert auf deutscher Cloud-Infrastruktur. Kein Vendor-Lock-in.
Vollständig automatisiertes Release-Management mit Semantic Versioning.
Privacy-first Analytics und strukturiertes Logging ohne PII.
Multi-Tenant SaaS mit strikter Modul-Isolation
*.flowgeist.de)ISO 27001-konforme Architektur – Security by Design
Automatisiertes Deployment mit Semantic Versioning
pnpm Workspaces mit drei Paketen:
apps/api – NestJS Backendapps/web – Next.js Frontendpackages/shared – Shared Types & Utils
Strikte Modul-Isolation: Jedes Feature lebt in modules/[name]/ mit eigenen Routes, DTOs und Services.
Automatisches Versioning via Conventional Commits:
feat: → Minor Bumpfix: → Patch Bumpfeat!: → Major Bump
CHANGELOG.md wird automatisch gepflegt. Release-PRs generieren Version-Tags für apps/api und apps/web unabhängig.
GitHub Actions mit SSH-Deploy auf Hetzner:
docker compose builddocker compose up -dnginx -t && systemctl reload nginx
Zero-Downtime-Deploy durch Health-Checks und Rolling Restarts. Rollback via Docker-Image-Tags.
Architektur-Metriken, die für sich sprechen
Technische Details für Entwickler und IT-Verantwortliche
Jeder Tenant erhält eine eigene Subdomain ([tenant].flowgeist.de). Nginx extrahiert die Subdomain und setzt den X-Tenant-Slug Header. NestJS resolved den Tenant im Request-Pipeline und isoliert alle DB-Queries auf Row-Level via Tenant-ID. Reserved Slugs (api, app, www, admin) werden blockiert.
Jedes Feature-Modul lebt in apps/api/src/modules/[name]/ mit eigenen Controllern, Services, DTOs und Prisma-Modellen. Direkte Imports zwischen Modulen sind verboten – Kommunikation erfolgt ausschließlich über definierte API-Endpoints. Ein automatisierter Compliance-Check validiert diese Isolation.
Prisma Migrate verwaltet versionierte SQL-Migrationen. Schema-Änderungen werden in schema.prisma vorgenommen, dann mit prisma migrate dev generiert. In Production läuft prisma migrate deploy beim Deployment. Migrationen sind in Git versioniert.
Node.js 22 LTS (Jod). Die Version ist in .nvmrc und Dockerfile.api fixiert. pnpm als Package Manager (v9+), definiert in pnpm-workspace.yaml.
Ja. NestJS generiert automatisch OpenAPI/Swagger-Doku unter /api/docs. Alle Endpoints sind mit @ApiOperation und @ApiResponse annotiert. DTOs nutzen Zod für Runtime-Validierung und generieren Swagger-Schemas.
Vitest für Unit-Tests (Services, Utils), Playwright für E2E-Tests (apps/e2e). E2E-Tests laufen gegen echte Docker-Container mit isolierter PostgreSQL-Instanz. CI-Pipeline in GitHub Actions führt Tests bei jedem PR aus.