Zum Hauptinhalt springen
← Alle ManaScores
Ausgereift 24. März 2026 von Till Schneider

Was ist der ManaScore?

Der ManaScore ist das interne Qualitätsbewertungssystem für alle ManaCore Apps. Er bewertet jede App in 8 Kategorien auf einer Skala von 0-100.

Gesamtscore

Gewichteter Durchschnitt aus 8 Kategorien

100 /100

Kategorie-Scores

Backend
100
Frontend
100
Database
100
Testing
100
Deployment
100
Doku
100
Security
100
UX
100

Metriken

0 Backend Module
0 Web Routes
0 Komponenten
0 DB Tabellen
0 Tests
0 Test Files
0 Sprachen
manascore quality methodology

Was ist der ManaScore?

Der ManaScore ist das interne Qualitätsbewertungssystem für alle Apps im ManaCore-Ecosystem. Er gibt einen schnellen Überblick über den Reifegrad jeder App und identifiziert Bereiche, die vor einem Production-Deployment verbessert werden müssen.

Der ManaScore ist kein Lighthouse-Score und kein Performance-Benchmark. Er bewertet die ganzheitliche Production-Readiness einer App — von der Code-Qualität über Security bis hin zur User Experience.


Die 8 Kategorien

Jede App wird in 8 Kategorien bewertet. Der Gesamtscore ist der gewichtete Durchschnitt aller Kategorien.

1. Backend (Gewicht: 15%)

Bewertet die Qualität und Vollständigkeit des NestJS Backends.

KriteriumPunkte
Module-Architektur (Trennung, Services)0-15
DTO-Validation (class-validator)0-15
Error Handling (Exception Filter, konsistentes Format)0-10
API-Dokumentation (Swagger/OpenAPI)0-10
Health Endpoint0-10
Rate Limiting (ThrottlerGuard)0-10
Auth Guards (JwtAuthGuard)0-15
Credit Operations Integration0-5
Metrics/Monitoring (Prometheus)0-10

2. Frontend (Gewicht: 15%)

Bewertet die Web-App (SvelteKit/Svelte 5).

KriteriumPunkte
Komponentenstruktur (Atoms/Molecules/Organisms)0-10
State Management (Svelte 5 Runes)0-10
Error Handling (Error Page, Error Boundaries)0-10
Loading States (Skeleton Loader)0-10
Empty States0-5
PWA (Service Worker, Manifest, Icons)0-15
Offline-Support (Offline Page)0-10
Context Menus (Shared ContextMenu)0-5
API Client (Error Handling, Retry, Timeout)0-10
Security Headers (CSP, X-Frame-Options)0-10
Meta/OG Tags (SEO)0-5

3. Database (Gewicht: 10%)

Bewertet das Datenbankschema und die ORM-Integration.

KriteriumPunkte
Schema-Design (Normalisierung, Beziehungen)0-25
Drizzle ORM Type Safety0-15
Migrations (Advisory Locks, Rollback)0-20
Indexes (Performance)0-15
JSONB für flexible Daten0-10
Seed-Skripte0-15

4. Testing (Gewicht: 15%)

Bewertet die Test-Coverage und -Qualität.

KriteriumPunkte
Unit Tests (Services)0-25
Unit Tests (Frontend/Stores)0-15
E2E Tests (Playwright)0-25
Integration Tests (API)0-15
Mock Factories0-10
Coverage Threshold konfiguriert0-10

5. Deployment (Gewicht: 10%)

Bewertet die Deployment-Infrastruktur.

KriteriumPunkte
Multi-Stage Dockerfile (Web)0-20
Multi-Stage Dockerfile (Backend)0-20
Health Checks (Docker)0-15
docker-compose (Production)0-15
Entrypoint Scripts (DB-Wait)0-10
Environment Variables (.env.example)0-10
CI/CD Pipeline0-10

6. Documentation (Gewicht: 10%)

Bewertet die Projektdokumentation.

KriteriumPunkte
CLAUDE.md (vollständig, aktuell)0-30
API-Endpunkte dokumentiert0-20
Datenbankschema dokumentiert0-15
Befehle dokumentiert (dev, build, test)0-15
Environment Variables dokumentiert0-10
Architecture/Patterns erklärt0-10

7. Security (Gewicht: 15%)

Bewertet die Sicherheitsmaßnahmen.

KriteriumPunkte
Auth Guards auf allen Endpoints0-20
Rate Limiting0-15
CORS konfiguriert0-10
Security Headers (CSP, HSTS, X-Frame-Options)0-15
Input Validation (DTOs, Sanitization)0-15
Error Tracking (GlitchTip)0-10
Encryption (sensible Daten)0-10
Audit Logging0-5

8. UX (Gewicht: 10%)

Bewertet die User Experience und Accessibility.

KriteriumPunkte
i18n (mindestens 5 Sprachen)0-15
Responsive Design0-15
Keyboard Navigation0-10
Focus Trapping (Modals)0-10
ARIA Labels/Roles0-10
Toast/Feedback System0-10
Loading/Skeleton States0-10
Dark/Light Mode0-10
Help-Seite (shared-help-ui)0-5
Feedback-Seite (shared-feedback)0-5

Erweiterte Metriken

Zusätzlich zu den 8 Kern-Kategorien erfasst der ManaScore weitere Metriken, die auf der Detail-Seite jeder App angezeigt werden.

Score-Trend

Zeigt die Entwicklung des Gesamtscores über Zeit als Sparkline-Chart (Übersicht) oder Area-Chart (Detail). Jede Score-Änderung wird in der history gespeichert.

Lighthouse Scores

Direkt von Google Lighthouse übernommene Werte in 4 Kategorien:

KategorieBeschreibung
PerformanceLadezeit, First Contentful Paint, Time to Interactive
AccessibilityARIA, Kontraste, Keyboard-Navigation, Screenreader
Best PracticesHTTPS, keine Deprecated APIs, Error Logging
SEOMeta Tags, Crawlbarkeit, Mobile-Friendly

Dependency Health

Automatisierbar per pnpm outdated und pnpm audit:

MetrikBeschreibung
TotalGesamtanzahl der Abhängigkeiten
OutdatedPakete mit verfügbaren Updates
VulnerabilitiesAufgeschlüsselt nach Schweregrad (Critical, High, Moderate, Low)
Health %Anteil aktueller Pakete: (total - outdated) / total * 100

API Conformity

Prüft 7 Konsistenz-Kriterien der Backend-API:

CheckBeschreibung
Konsistente ResponsesAlle Endpoints nutzen ApiResult<T> Format
Error CodesKonsistente HTTP Status Codes (400, 401, 403, 404, 500)
PaginationOffset/Cursor-basierte Pagination wo nötig
VersioningAPI-Versionierung via /api/v1/
DokumentationSwagger/OpenAPI automatisch generiert
Health Endpoint/health Endpoint vorhanden
ValidationDTO-Validation mit class-validator auf allen Inputs

Analytics Maturity

Bewertet die Tiefe der Umami-Analytics-Integration pro App:

CheckBeschreibung
Page View TrackingUmami-Script via hooks.server.ts injiziert (automatische Page Views)
Custom EventsApp-spezifische Events implementiert (z.B. TodoEvents, ChatEvents)
Auth TrackingLogin/Signup/Logout automatisch via @manacore/shared-auth getrackt
Landing TrackingLanding Page Events (CTA-Clicks, Pricing Views) via Analytics.astro
Public DashboardÖffentliches Dashboard auf stats.mana.how konfiguriert

Apps mit allen 5 Checks sind analytics-mature — sie erfassen nicht nur Page Views, sondern auch Feature-spezifische Nutzerinteraktionen, Auth-Flows und Landing-Conversions.

Cross-App Consistency

Misst wie konsequent eine App die shared Packages des Monorepos nutzt:

PackageTypBeschreibung
shared-authCoreJWT-Authentifizierung via mana-core-auth
shared-uiCoreGemeinsame UI-Komponenten (Modal, ContextMenu, Toast, etc.)
shared-themeCoreTheme-System (Dark/Light, Varianten)
shared-brandingCoreApp-Icons, Farben, URLs
shared-i18nCoreInternationalisierung (Sprach-Utilities)
shared-error-trackingCoreGlitchTip Error Tracking
shared-help-uiCoreHilfe-Seite mit FAQ, Features, Shortcuts
shared-feedback-uiCoreFeedback-Seite für Nutzer-Rückmeldungen
shared-storageOptionalS3/MinIO Datei-Upload (nur wenn relevant)
shared-llmOptionalLLM-Integration (nur wenn AI-Features)

Reifegradstufen

StufeScoreBedeutung
Prototype0-25Proof of Concept, nicht für Nutzer gedacht
Alpha26-50Grundfunktionen vorhanden, aber instabil
Beta51-70Funktionsfähig, aber noch Lücken
Production71-85Stabil und deploybar, kleinere Lücken
Mature86-100Vollständig production-ready, best practices überall

Wie wird der ManaScore aktualisiert?

  1. Initiales Assessment — Beim ersten Audit wird jede Kategorie einzeln bewertet
  2. Fortlaufende Updates — Nach größeren Änderungen (z.B. i18n-Migration, Security-Fixes) wird der Score aktualisiert
  3. Änderungslog — Jeder ManaScore enthält eine “Änderungen seit letztem Audit”-Tabelle
  4. Top-3 Empfehlungen — Jeder Report endet mit den 3 wichtigsten nächsten Schritten

Scoring-Philosophie

  • Pragmatisch, nicht perfektionistisch — Ein Score von 85+ bedeutet “production-ready”, nicht “perfekt”
  • Gewichtet nach Impact — Security und Testing wiegen schwerer als Documentation
  • Relativ zum Ecosystem — Scores werden im Kontext des ManaCore-Monorepos vergeben
  • Kein Benchmarking gegen externe Apps — Der ManaScore vergleicht Apps nur untereinander
  • Action-orientiert — Jeder Report enthält konkrete Empfehlungen, nicht nur Bewertungen