Zum Hauptinhalt springen
← Alle ManaScores
Production 19. März 2026 von Till Schneider

ManaCore: Production Readiness Audit

Multi-App Ecosystem Dashboard mit 25 Web-Routes, 11 Dashboard-Widgets, 103 Tests, Error Boundary, Onboarding, 5 Sprachen, Mobile App

Gesamtscore

Gewichteter Durchschnitt aus 8 Kategorien

88 /100

Kategorie-Scores

Backend
55
Frontend
90
Database
70
Testing
72
Deployment
90
Doku
88
Security
80
UX
92

Metriken

50.234 Lines of Code
300 Source Files
7.8 MB (Source)
214 Commits
4 Contributors
2025-11-26 Erster Commit
0 Backend Module
25 Web Routes
12 Stores
36 Komponenten
0 DB Tabellen
103 Tests
12 Test Files
5 Sprachen
111 TODOs/FIXMEs
2001 Max File (LOC)
audit manacore production-readiness platform

Zusammenfassung

ManaCore ist das Herzstück des Monorepos - das Multi-App Ecosystem Dashboard mit Onboarding-Wizard, 11 konfigurierbaren Dashboard-Widgets, Credit-System und App-Switcher. Als Aggregator-App ohne eigenes Backend designt - nutzt mana-core-auth + API-Middleware zu allen Service-Backends. Starkes Frontend mit 5 Sprachen, deployed auf Mac Mini via Docker.

Hinweis: ManaCore ist eine Aggregator-App. Backend- und Database-Scores bewerten die API-Integration und das Architektur-Pattern, nicht eigene Services.

Backend / API-Integration (55/100)

Stärken:

  • Saubere Integration mit mana-core-auth (JWT, SSO, Token-Refresh)
  • SvelteKit Server Hooks für Auth Guards (hooks.server.ts)
  • API-Middleware-Layer für Proxy zu externen Services
  • 21 API-Client-Module (Credits, Gifts, Profile, Subscriptions, API Keys, etc.)
  • Health-Check-Endpoint

Lücken:

  • Kein dedizierter NestJS Backend-Service (by design)
  • Keine Server-Side Validation eigener Business-Logik
  • Keine Rate-Limiting auf SvelteKit-Ebene

Frontend (90/100)

Stärken:

  • 25 Web-Routes in 2 Route-Groups ((auth) + (app))
  • 36 Komponenten, 6 Svelte 5 Rune Stores (690 LOC)
  • 11 Dashboard-Widgets (Calendar, Clock, Contacts, Chat, Picture, Tasks, Credits, Storage, Transactions, ManaDeck, Zitare)
  • 5-Step Onboarding-Wizard (Welcome → Profile → Credits → Apps → Complete)
  • App-Switcher (AppSlider) für Multi-App Navigation
  • Skeleton Loading States, Error Boundaries auf Widgets
  • Globaler Error Boundary (+error.svelte) mit Indigo-Theme
  • Mobile App (Expo 54) mit Drawer + Tabs, 20 Screens, 15 Komponenten
  • PWA konfiguriert - Service Worker + Offline Page

Lücken:

  • Mobile App hat keine Dashboard-Widgets (nur Web)

Database / Daten-Integration (70/100)

Stärken:

  • Sauberes Aggregator-Pattern: Daten über APIs von externen Services
  • User-Daten via mana-core-auth API
  • Widget-Daten von 11 verschiedenen Service-Backends
  • Kein eigener DB-State = keine Sync-Probleme

Lücken:

  • Keine eigene Datenbank (by design)
  • Kein lokaler Cache/Offline-Speicher
  • Widget-Daten nicht persistiert

Testing (72/100)

Stärken:

  • Vitest konfiguriert mit Coverage (package.json)
  • Playwright für E2E Tests eingerichtet
  • @vitest/coverage-v8 und @vitest/ui installiert
  • 12 Test-Dateien mit 103 Unit Tests:
    • Dashboard Widget Registry Tests (14 Tests)
    • Default Dashboard Config Tests (12 Tests)
    • Base API Client mit Retry-Logik (15 Tests)
    • Credits Service API Tests (7 Tests)
    • API Keys Service Tests (4 Tests)
    • Profile Service Tests (6 Tests)
    • Contacts Widget Service Tests (10 Tests)
    • Storage Widget Service Tests (10 Tests)
    • Todo Widget Service Tests (7 Tests)
    • Calendar Widget Service Tests (6 Tests)
    • Chat Widget Service Tests (6 Tests)
    • Zitare Widget Service Tests (6 Tests)

Lücken:

  • Keine E2E Tests (Playwright Setup vorhanden)
  • Keine Store-Tests (Auth, Dashboard State)

Deployment (90/100)

Stärken:

  • Multi-Stage Dockerfile (Node 20-alpine)
  • docker-compose.macmini.yml Integration
  • Health Check konfiguriert (HTTP GET /health, 30s Intervall)
  • Entrypoint Scripts mit Runtime-Env-Injection
  • Landing Page auf Cloudflare Pages deployed
  • SvelteKit adapter-node für SSR

Lücken:

  • Kein CI/CD Pipeline (GitHub Actions)
  • Kein automatisiertes Deployment

Documentation (88/100)

Stärken:

  • 229 Zeilen CLAUDE.md - umfassend
  • Landing Page mit Devlogs, Audits, Apps, Legal, Privacy
  • Store-Dateien mit JSDoc-Kommentaren
  • README.md mit 322 Zeilen

Lücken:

  • Keine Komponenten-API-Dokumentation
  • Keine Architecture Decision Records

Security (80/100)

Stärken:

  • Proper JWT Integration via @manacore/shared-auth
  • Token-Manager mit Auto-Refresh
  • Cross-Domain SSO via shared Session Cookies (.mana.how)
  • Route Guards in hooks.server.ts
  • Bearer Tokens auf allen API Calls
  • Server-Side Proxies (Backend-URLs nicht exponiert)

Lücken:

  • Kein Audit-Logging
  • Keine explizite CSRF-Protection (SvelteKit Default)
  • Kein Rate-Limiting

UX (92/100)

Stärken:

  • 5 Sprachen (DE, EN, FR, ES, IT) via svelte-i18n
  • Onboarding-Wizard für neue User (5 Steps)
  • 11 konfigurierbare Dashboard-Widgets mit Skeleton Loading
  • Theme-System (Light/Dark/System) mit persistenter Präferenz
  • App-Switcher für nahtlose Multi-App Navigation
  • Profil-Management (Edit, Passwort, 2FA, QR-Export)
  • Organizations & Teams Verwaltung
  • Credit-System (Saldo, Transfer, Geschenke)
  • Responsive Design (Mobile, Tablet, Desktop)
  • ARIA Labels, Dialog Roles, semantisches HTML
  • Keyboard Navigation

Lücken:

  • PWA Offline-Modus nicht verifiziert
  • Mobile App simpler als Web (keine Widgets)

Top-3 Empfehlungen

  1. E2E Tests - Playwright Tests für Login/Onboarding/Dashboard Flow → Testing von 48 auf 70+
  2. Error Tracking - GlitchTip Integration (wie andere Backends) für Production Monitoring
  3. PWA verifizieren - Offline-Modus testen, Service Worker prüfen, Manifest validieren