# 07 β€” Features-Matrix > **Hinweis:** Diese Datei zeigt den **geplanten und aktuellen** Scope pro > Feature. Die High-Level-Roadmap steht in [09-roadmap.md](09-roadmap.md). ## Legende - βœ… in Produktion / live verifiziert - 🚧 in Arbeit - ⬜ geplant - ❌ nicht in Scope ## Auth & Users | Feature | Status | Version | | --- | :-: | :-: | | Register / Login (E-Mail + Passwort, Better-Auth) | βœ… | v0.1 | | Session-Cookie + Admin-Bootstrap-Hook | βœ… | v0.1 | | Rollen (Admin/Moderator/Creator/Viewer) | βœ… | v0.1 | | Self-lockout-Schutz im Admin | βœ… | v0.1 | | Email-Verify | ⬜ | v1.0 | | Password-Reset | ⬜ | v1.0 | | OIDC via Authentik | ⬜ | v1.0 | | Passkey (WebAuthn) | ⬜ | v1.0 | ## Video-Core | Feature | Status | Version | | --- | :-: | :-: | | Direct-Stream-Upload (video/\* raw) | βœ… | v0.1 | | FFmpeg-Transcode β†’ HLS (720p/480p, 1080p wenn Source) | βœ… | v0.1 | | HLS.js Player + Safari-native HLS | βœ… | v0.1 | | Sichtbarkeit: public / unlisted / private / logged-in | βœ… | v0.1 | | 5 Thumbnail-Kandidaten (10/30/50/70/90 %) + Picker | βœ… | v0.2 | | KanΓ€le (1 Default pro User) | βœ… | v0.1 | | Watch-Seite mit Player + Meta + Actions | βœ… | v0.2 | | View-Tracking (sessionStorage-dedupliziert) | βœ… | v0.2 | | Tags + Kapitel + commentsEnabled | βœ… | v0.2 | | Video-Format-Klassifikation (LONG/SHORT) | βœ… | v0.2 | | yt-dlp-Import (Kopie in MinIO) | βœ… | v0.2 | | Upload-MenΓΌ ΓΌberall (Split-Dropdown Upload/Import) | βœ… | v0.2 | | tus.io Resumable-Uploads | ⬜ | v0.3 | | Captions (manueller Upload) | ⬜ | v0.3 | | Auto-Captions (Whisper) | ⬜ | v1.0 | ## Studio (Creator-Backend) | Feature | Status | Version | | --- | :-: | :-: | | Studio-Sidebar (Dashboard/Videos/Upload/Channel/…) | βœ… | v0.2 | | Dashboard mit 4 Stats-Cards + Status-Pills | βœ… | v0.2 | | Video-Liste + Status-Filter + Editor-Link | βœ… | v0.2 | | Inline-Editor (Titel/Desc/Tags/Kategorie/Chapters) | βœ… | v0.2 | | Thumbnail-Picker mit 5 Kandidaten | βœ… | v0.2 | | Kommentare-Moderation (eigene Videos) | βœ… | v0.2 | | Kanal-Profil (Name/Description/About/Socials) | βœ… | v0.2 | | Branding (Avatar/Banner-Upload) | ⬜ | v0.3 | | Analytics (Views/Watch-Time/Retention) | ⬜ | v1.0 | | Custom-Thumbnail-Upload | ⬜ | v0.3 | | Trim-Scrubber | ⬜ | v0.3 | ## Admin | Feature | Status | Version | | --- | :-: | :-: | | Admin-Sidebar (Overview/Style/System) | βœ… | v0.2 | | Dashboard mit Stats + Quick-Actions + Audit-Feed | βœ… | v0.2 | | User-Verwaltung (Rolle/Ban) | βœ… | v0.1 | | Globales Video-Management | βœ… | v0.2 | | Kategorien-Verwaltung + Icon-Picker | βœ… | v0.2 | | Moderation-Queue + Takedown-Flow | βœ… | v0.2 | | System-Health (DB/Queue/Env) | βœ… | v0.2 | | Audit-Log global | ⬜ | v0.3 | | Site-Settings (Name/Locale/SEO) | ⬜ | v0.3 | ## Community | Feature | Status | Version | | --- | :-: | :-: | | Kommentare threaded (2 Level) | βœ… | v0.2 | | Likes / Reactions | βœ… | v0.2 | | Subscriptions (Schema + UI) | βœ… | v0.2 | | Report-Flow (7 Reasons) | βœ… | v0.2 | | In-App-Notifications (Header-Bell) | βœ… | v0.2 | | NEW_UPLOAD-Notification an Abonnenten | βœ… | v0.2 | | Comment-Reply-Notification | βœ… | v0.2 | | Watch-Later + History | ⬜ | v0.3 | | Playlists | ⬜ | v0.3 | | E-Mail-Notifications | ⬜ | v1.0 | ## Startseite & Navigation | Feature | Status | Version | | --- | :-: | :-: | | Video-Grid (Latest) | βœ… | v0.1 | | Hero-Block mit Featured-Video-Picker (Admin-only) | βœ… | v0.2 | | Category-Chips (aus DB, verlinkt) | βœ… | v0.2 | | Block-Composer (Drag-Reorder, 4 Blocktypen) | βœ… | v0.3 | | Kategorie-Seite `/category/[slug]` | βœ… | v0.2 | | Kanal-Directory `/channels` | βœ… | v0.2 | | Abos `/subs` + Feed | βœ… | v0.2 | | Bibliothek `/library` (Abo-Feed + Eigene) | βœ… | v0.2 | | Suche `/search?q=…` + Tag-Matches | βœ… | v0.2 | | Shorts-Grid `/shorts` (v0.2) | βœ… | v0.2 | | Shorts-Swipe-Feed (vertikal, full-screen, loop) | ⬜ | v0.3 | | Weitere Block-Typen (Video-Row, Featured-Channel, Trending, Text) | ⬜ | v0.3 | | YouTube-Style-Public-Sidebar | ⬜ | v0.3 | | Recommendation-Engine (Tags + History) | ⬜ | v1.0 | | Postgres-FTS-Indizes | ⬜ | v0.3 | | Meilisearch | ⬜ | Backlog | ## SEO & Sharing | Feature | Status | Version | | --- | :-: | :-: | | Per-Video OG-Tags + Twitter-Cards | ⬜ | v0.2 | | Schema.org VideoObject JSON-LD | ⬜ | v0.2 | | Sitemap + robots.txt | ⬜ | v0.2 | | Share-Buttons (Copy/X/WhatsApp/Telegram/Mail) | βœ… | v0.2 | | oEmbed-Endpoint | ⬜ | v0.3 | | Embeddable Player `/embed/[slug]` | ⬜ | v0.3 | | RSS-Feed pro Kanal | ⬜ | v1.0 | ## Theming (Kern-Differenzierer) | Feature | Status | Version | | --- | :-: | :-: | | Primitive Tokens (tokens.json β†’ CSS vars) | βœ… | v0.1 | | Semantic Tokens (Tailwind v4 @theme) | βœ… | v0.1 | | Admin-Live-Editor (Colorpicker + Sliders) | βœ… | v0.2 | | Preset-Switch (dark/light/high-contrast/retro) | βœ… | v0.2 | | Preset Export / Import (JSON) | βœ… | v0.2 | | Custom-CSS-Sandbox + CSS-Parser + Revisionen | βœ… | v0.2 | | Logo-Upload + Logo-Filter (10 Presets inkl. invert) | βœ… | v0.2 | | Audit-Log fΓΌr Theme-Γ„nderungen | βœ… | v0.2 | | SSE-Live-Sync (cross-tab) | βœ… | v0.2 | | Layout-Block-Editor (Drag-Reorder, Hero-Video-Picker) | βœ… | v0.3 | | Favicon-Upload | ⬜ | v0.3 | | SVG-Icon-Library (projektweit, keine Emojis) | βœ… | v0.2 | | Theme-Marketplace | ❌ | β€” | ## Legal & Compliance (DE-Launch-Blocker) | Feature | Status | Version | | --- | :-: | :-: | | Impressum / Datenschutz / AGB-Stubs | βœ… | v0.2 | | StaticPage-CMS (Admin-only Markdown-Pages) | ⬜ | v0.3 | | Cookie-Consent-Banner (3-Stufen) | ⬜ | v0.3 | | DSGVO-Export eigener Daten | ⬜ | v0.3 | | DSGVO-Account-LΓΆschung | ⬜ | v0.3 | | Age-Gate fΓΌr 18+ Videos | ⬜ | v1.0 | ## Infrastruktur | Feature | Status | Version | | --- | :-: | :-: | | Monorepo (pnpm + Turborepo) | βœ… | v0.1 | | Dev-Docker-Compose (Postgres/Redis/MinIO) | βœ… | v0.1 | | Prod-Docker-Compose (Unraid-VLAN) | 🚧 | v0.3 | | Prod-Deploy auf Unraid (echter Bau-Durchlauf) | ⬜ | v0.3 | | NPM-Proxy-Konfig dokumentiert | ⬜ | v0.3 | | Backup-Script (pg_dump + MinIO-rsync) | βœ… | v0.1 | | GitHub-Repo public | ⬜ | v0.3 | | GitHub-Actions CI (typecheck/lint/build) | ⬜ | v0.3 | | Unraid Community Store | ⬜ | v0.3 | | Sentry / Error-Tracking | ⬜ | v1.0 | | Prometheus `/metrics` | ⬜ | v1.0 | ## Website / Marketing | Feature | Status | Version | | --- | :-: | :-: | | itsweber.de Produktseite | ⬜ | v0.3 | | Download-Bereich (Docker-Compose-Template) | ⬜ | v0.3 | | Demo-Video | ⬜ | v0.3 | | Screenshots + Feature-Matrix-Grafik | ⬜ | v0.3 | ## Dokumentation | Feature | Status | Version | | --- | :-: | :-: | | Architektur-Docs (`docs/*.md`) | βœ… | v0.1 | | Progress-Log | βœ… | v0.1 | | Installationsanleitung Unraid | ⬜ | v0.3 | | Installationsanleitung generic Docker | ⬜ | v0.3 | | Admin-Handbuch | ⬜ | v0.3 | | Creator-Handbuch | ⬜ | v0.3 | | GitHub-Wiki (10+ Seiten) | ⬜ | v0.3 | | API-Referenz (aus tRPC abgeleitet) | ⬜ | v1.0 | | Video-Tutorial | ⬜ | v0.3 | ## Accessibility | Feature | Status | Version | | --- | :-: | :-: | | Keyboard-Nav | βœ… | v0.1 | | High-Contrast Preset | βœ… | v0.2 | | aria-Labels auf Icon-Buttons | βœ… | v0.1 | | Focus-Rings (shadcn-Style) | βœ… | v0.1 | | Captions-Support im Player | ⬜ | v1.0 | ## Nicht in Scope - ActivityPub / Federation β€” bewusst Single-Instance - MediaCMS-Bestand-Migration vor v1.0 - Γ–ffentliches Paywall / Monetarisierung vor v1.0 - Native Mobile-App (PWA reicht) - GPU-Transcoding (optional via `TRANSCODE_USE_GPU`, benΓΆtigt dedizierte GPU) - Livestreams (RTMP Ingest) β€” Backlog, nicht priorisiert