---
title: 'ManaCore: Production Readiness Audit'
description: 'Multi-App Ecosystem Dashboard mit 25 Web-Routes, 11 Dashboard-Widgets, 103 Tests, Error Boundary, Onboarding, 5 Sprachen, Mobile App'
date: 2026-03-19
app: 'manacore'
author: 'Till Schneider'
tags: ['audit', 'manacore', 'production-readiness', 'platform']
score: 88
scores:
  backend: 55
  frontend: 90
  database: 70
  testing: 72
  deployment: 90
  documentation: 88
  security: 80
  ux: 92
status: 'production'
version: '0.3.0'
stats:
  backendModules: 0
  webRoutes: 25
  components: 36
  dbTables: 0
  testFiles: 12
  testCount: 103
  languages: 5
---

## 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
