Zum Hauptinhalt springen

ZurĂĽck zum Devlog

Donnerstag, 26. März 2026

Feature

61 Commits

18 min Lesezeit

Storage-Sprint, Passkeys & 2FA, Cross-App Tags, Zitare-Polish & Local-First Planung

Massiver Tag mit 61 Commits: Storage auf ManaScore 87, WebAuthn/Passkeys und TOTP-2FA, Cross-App Tag-System, Zitare-Komplett-Polish, SvelteKit Base-Image, und Local-First Architekturplanung.

T

Till Schneider

Autor

Massiver Tag mit 61 Commits über 329 Dateien und netto +16.715 Zeilen — Storage-Sprint, Auth-Features, Tag-System, Zitare-Polish, Infra und Architekturplanung:

  • Storage-App komplett — Von Score 72 auf 87: Previews, Audio-Player, Skeleton Screens, Sharing, Tagging, i18n, E2E-Tests
  • Auth: Passkeys & 2FA — WebAuthn/Passkeys und TOTP-2FA in allen Apps, Google/Apple Login entfernt
  • Cross-App Tag-System — Neues Tag-System mit Gruppen und Entity-Links in 18 Apps integriert
  • Zitare Komplett-Polish — i18n, Display-Settings, Suche, Filter, Author-Bios, Loading States
  • Local-First Architektur — Umfassende Planung fĂĽr Dexie.js + Go Sync-Server + Hono/Bun
  • Infra — SvelteKit Base-Image, build-app.sh Script, Dockerfile-Fixes

1. Storage-App: Von 72 auf 87 ManaScore

Massiver Sprint der die Storage-App von einem funktionalen MVP zu einer production-ready Anwendung transformiert hat.

Datei-Previews

Vollständiges Preview-System für alle gängigen Dateitypen direkt im Browser:

DateitypPreview
AudioPlayer mit Frequency-Visualizer (Canvas-basierte Wellenform-Animation)
VideoNative HTML5 Video Player
PDFEingebetteter Viewer
Text/CodeSyntax-Highlighting
MarkdownGerenderte Ansicht

UX-Verbesserungen

  • Skeleton Shimmer Screens — Loading-Spinner durch animierte Skeleton-Layouts ersetzt
  • SVG Empty State Illustrations — Eigene SVGs fĂĽr leere Ordner, Suche, Papierkorb, Favoriten
  • Share Modal — Dialog zum Erstellen von Share-Links mit Ablaufdatum und Passwort
  • File Tagging — TagPicker-Komponente fĂĽr Tags direkt an Dateien
  • Bulk Operations — Multi-Select mit Shift/Cmd-Klick, Bulk-Delete, Bulk-Move, Bulk-Tag
  • Storage Stats — Echte Speicher-Nutzung in den Einstellungen

Backend-Qualität

  • Swagger/OpenAPI Docs — Vollständige API-Dokumentation
  • Structured Logging — Pino Logger mit JSON-Output und Request-Tracing
  • i18n — Französisch, Spanisch und Italienisch hinzugefĂĽgt
  • E2E-Tests — Integration-Tests mit echtem Backend

Commits

  • 2150452a — Audio Player mit Frequency Visualizer
  • 59896521 — Video, PDF, Text/Code, Markdown Preview
  • 9f668009 — Skeleton Shimmer Screens
  • 56307a3d — SVG Empty State Illustrations
  • 56683876 — ShareModal
  • 5c69dc7d — File Tagging UI
  • a85682d8 — Bulk File Operations
  • 9611544f — Storage Usage Stats
  • 8692b082 — Structured Logging (Pino)
  • 8b5889e1 — Swagger/OpenAPI
  • a439d5d8 — FR/ES/IT Translations
  • 8a1cb2dc — Integration E2E Tests
  • c681a5d6 — ManaScore auf 87 aktualisiert

2. Auth: WebAuthn/Passkeys & TOTP-2FA

Passkeys (WebAuthn)

Komplette WebAuthn/Passkey-Integration fĂĽr passwortloses Login ĂĽber alle Apps:

  • PasskeyManager-Komponente — UI zum Registrieren, Benennen und Löschen von Passkeys
  • Production Config — Korrektes rpId und origin fĂĽr mana.how-Domain
  • ManaCore Integration — PasskeyManager in Settings-Page eingebaut
  • 35 Tests — Controller-Tests fĂĽr Passkey und 2FA Flows

TOTP Two-Factor Authentication

  • Authenticator-App Setup mit QR-Code und manuellem Secret
  • Recovery Codes fĂĽr Account-Zugang ohne 2FA-Gerät
  • Alle Apps zeigen 2FA-Setup in den Security-Settings

Auth UX & Cleanup

  • UX-Verbesserungen fĂĽr Passkey- und 2FA-Management (70737561)
  • Rate-Limit-Feedback, Audit-Log UI und E2E-Tests (0dfd6038)
  • Google/Apple Social Login Code komplett entfernt — Self-Sovereign Auth (2d11ba62)

Commits

  • 3091da91 — WebAuthn/Passkey Support
  • c4d55209 — PasskeyManager Komponente + Production Config
  • ac4bacad — ManaCore Settings Integration
  • f5a9edcf — TOTP 2FA in allen Apps
  • e0e9ede8 — 35 Controller-Tests
  • 70737561 — UX-Improvements
  • 0dfd6038 — Rate-Limit, Audit-Log, E2E-Tests
  • 2d11ba62 — Social Login entfernt

3. Cross-App Tag-System

Architektur

Neues, app-ĂĽbergreifendes Tag-System mit:

  • Tag-Gruppen — Kategorisierung von Tags (z.B. “Priorität”, “Status”, “Thema”)
  • Entity-Links — Tags können an beliebige Entities gehängt werden
  • Farbige Tags — Jeder Tag hat eine zuweisbare Farbe
  • Backend-Validierung — FK-Constraints, Token-Validation, Input-Validation, 37 Tests

Shared Components

  • TagStrip — Horizontale Tag-Leiste fĂĽr jede App
  • createTagStore — Svelte-Store-Factory fĂĽr Tag-Operationen

Integration

  1. ce900d5f — Todo: TagStrip + createTagStore
  2. 69aa8378 — Contacts & Calendar: TagStrip + createTagStore
  3. 91116bf0 — Alle 15 übrigen Apps: Shared TagStrip

Backend

  • 0c479b3e — Tag-System mit Gruppen und Entity-Links
  • 11ab265d — FK-Constraints, Token-Validation, Input-Validation
  • 4ddff848 — Transaction on Sync, Scroll-Indicator, 37 Backend-Tests

4. Zitare: Komplett-Polish

Umfassende Qualitätsverbesserungen für die Zitate-App:

FeatureCommit
Komplette i18n-Abdeckung aller Seiten90e61356
Display-Settings (Schriftgrösse, Layout)6107d572
Suche & Sortierung auf Kategorie-Detailseite40b55eb6
Category Filter-Chips in Suchergebnissenb7d1d2ec
Favorites-Count-Badge + Display-Settings7c7e5eb0
Author-Bio auf Zitat-Karten1316ef57
Loading States fĂĽr Listen-Operationen96ff16b7
Error-Feedback fĂĽr stille API-Fehler326acf0e
Maxlength-Validation im Listen-Formular5bb96dbf
Settings/Spiral/Themes in Account-Dropdown08629b80
Tailwind CSS v4 Vite-Plugin Fix30a0a651

5. Local-First Architekturplanung

Umfassende Planung fĂĽr den fundamentalen Umbau der gesamten ManaCore-Plattform:

Kernentscheidungen

AspektAktuellZiel
DatenmodellAPI-FirstLocal-First (IndexedDB + Sync)
Client-DBKeineDexie.js (15KB, liveQuery)
SyncKeinGo Sync-Server (100K+ WebSockets)
BackendNestJSHono auf Bun (14KB, < 50ms Cold Start)
Guest-ModeSeparater CodeNebeneffekt der Architektur
OfflineRead-Only CacheVoller CRUD
Performance200-500ms API< 5ms IndexedDB

Conflict Resolution

Field-Level Last-Write-Wins statt “ganzes Objekt gewinnt” — zwei Geräte können verschiedene Felder desselben Objekts offline bearbeiten ohne Datenverlust.

Migrationsplan

5 Phasen über ~12 Wochen: Foundation → Todo-Pilot → Alle Apps → Auth-Migration → Cleanup

Detaillierter Plan: .claude/plans/local-first-architecture-migration.md


6. Infrastructure

SvelteKit Base Image

Neues sveltekit-base:local Docker-Image mit allen Shared Packages vorinstalliert — einzelne App-Builds deutlich schneller.

  • cdfbfcd1 — SvelteKit Base Image + build-app.sh Script
  • ba6b9537 — Container-Namen statt IDs in build-app.sh

Weitere Fixes

  • e676ba68 — JSON.stringify fĂĽr Env-Var-Injection in allen hooks.server.ts
  • 9c8bae3d — NestJS Auth: Multiple JWT-Issuers fĂĽr Docker/Public URL Mismatch
  • 2b0b902b — Credit-Operations Package Exports auf compiled dist/ zeigend
  • 5a3ee5c7 — Todo Task UI: Priority-Checkboxes, Drag-Styling, Route-Fix
  • Diverse Dockerfile-Fixes fĂĽr Zitare, Storage, Todo (fehlende Dependencies, Node Heap Size)

Zusammenfassung

BereichÄnderung
StorageScore 72 → 87: Previews, Audio-Player, Sharing, Tagging, E2E-Tests, i18n
AuthPasskeys + TOTP-2FA in allen Apps, Social Login entfernt, 35+ Tests
TagsCross-App Tag-System in 18 Apps integriert, 37 Backend-Tests
ZitareKomplett i18n, Display-Settings, Suche, Filter, Author-Bios
ArchitekturLocal-First Planung: Dexie.js + Go Sync + Hono/Bun
InfraSvelteKit Base-Image, build-app.sh, Dockerfile-Fixes
Gesamt61 Commits, 329 Dateien, +19.553 / -2.838 Zeilen

Tags

#storage #auth #passkeys #2fa #tags #zitare #infrastructure #docker #local-first #architecture #i18n #testing