Skip to content

CHANGELOG Rebel Girl FM

v3.1.0 2026-04-08
Vollständige Astro 6 MigrationSexualitäts-Feld für alle 11 PersonasMusik Videos Playlist im Rebel PlayerSEO & PWA OptimierungKI-Dokumentation (docs/ai/)Bugfixes: Charakter-Bilder, Player-Playlisten

🚀 Vollständige Astro 6 Migration

  • Framework-Wechsel: Komplette Umstellung von statischem HTML/JS auf Astro 6 + Preact + Tailwind CSS v4.
  • 85 Seiten werden jetzt statisch generiert — schneller, sicherer, SEO-freundlicher.
  • Preact Islands: Interaktive Komponenten (Player, Galerie, Filter) als isolierte Islands.
  • Nanostores: Globaler State zwischen Islands (Playback-Status, aktueller Track).
  • Astro Content Collections: Charakter-Profile und Changelog als typsichere Markdown-Dateien.
  • SPA Transitions: Seitenübergänge via <ClientRouter /> ohne Vollseiten-Reload.

👤 Persona-Updates

  • Sexualitäts-Feld: Neues Profilfeld zwischen Alter und Wohnort auf allen 11 Persona-Seiten.
  • Alle Werte in Deutsch, Englisch und Spanisch übersetzt.
  • Hauptpersonas: Rebel Girl (Bisexuell), Shadowman (Hetero), Folk-Hexe (Hetero – noch nicht sicher), Freundin (Lesbisch), Rumpelstilzchen (Bisexuell), Punk-Muschi (Hetero).
  • Nebencharaktere: Stalkerin (Lesbisch), Stalker (Hetero), Teufel (Bisexuell), Radioschwestern (Hetero), Ex-Freund (Hetero – möglicherweise schwul).
  • Person JSON-LD: Alle Persona-Seiten haben jetzt strukturierte Daten für Suchmaschinen.

🎵 Rebel Player

  • Musik Videos Playlist: Neue Playlist-Gruppe im Video-Bereich mit 7 Unterplaylisten (Rebel Girl, Folk-Hexe, Freundin, Rumpelstilzchen, Shadowman, DampferBurg, Cover-Songs).
  • Fetch statt SSR-Prop: media-index.json (262 KB) wird jetzt client-seitig geladen statt als SSR-Prop serialisiert — behebt leere Playlist-Anzeige.
  • Ladeindikator während der Player-Initialisierung.

🔍 SEO & Performance

  • JSON-LD RadioStation auf der Startseite mit vollständigen Metadaten.
  • OG-Image Dimensionen (1200×630) und korrekte CDN-URLs in allen Meta-Tags.
  • Twitter/X Tags: twitter:site und twitter:creator (@DampferBurg) ergänzt.
  • PWA Manifest (manifest.webmanifest): Seite ist jetzt als App installierbar (Android/iOS).
  • App-Shortcuts: Player und Galerie direkt vom Home-Screen erreichbar.
  • Persona-Bilder: fetchpriority="high" + loading="eager" für sofortiges Laden.
  • Footer: Layout-Container mit max-w-7xl für konsistente Breite.
  • robots.txt: AI-Bots explizit erlaubt, /admin/ blockiert, RSS-Feed verlinkt.

🔒 Sicherheit

  • CSP erweitert: cdn.rebel-girl-fm.de in media-src, img-src und connect-src eingetragen — Medien wurden zuvor vom Browser blockiert.
  • manifest.webmanifest mit korrektem Content-Type: application/manifest+json Cache-Header.

🐛 Bugfixes

  • Charakter-Bilder (Über-Uns): Alle 6 Charakter-MD-Dateien hatten lokale Bildpfade — auf CDN-URLs korrigiert.
  • Player leere Playlist: media-index.json als 262 KB SSR-Prop führte zu Hydration-Problemen — auf Client-Fetch umgestellt.
  • OG-Image URL: Falsche Domain rebel-girl-fm.de/downloads/...cdn.rebel-girl-fm.de/downloads/....
  • Deploy Workflow: Node.js 20 → 22 (Projekt-Anforderung).
  • GitHub Actions Workflow entfernt — Deploy läuft direkt über Cloudflare Pages Git-Integration.

📚 KI-Dokumentation

  • CLAUDE.md im Repo-Root — wird von Claude Code automatisch geladen.
  • docs/ai/ mit 10 strukturierten Anleitungsdateien für KI-Assistenten:
    • Projektstruktur, Personas, R2-Speicher, Medienkonvertierung, Datei-Integrität, Optimierung, Sub-Agenten, Änderungs-Tracking, Sicherheit.

📦 Dependencies

  • Tailwind CSS v4.2.2
  • Astro 6.1.4 (unverändert)
v3.0.0 2026-04-07
Medien-Migration auf Cloudflare R2 CDNAlte Formate (MP4, WAV, PNG) entferntCode-Bereinigung und Dependency-Updates

🚀 Cloudflare R2 Migration

  • CDN-Umstellung: Alle Mediendateien (Audio, Video, Bilder, Logos) werden jetzt über cdn.rebel-girl-fm.de (Cloudflare R2) ausgeliefert statt lokal aus dem Repository.
  • Schnellere Ladezeiten: Medien werden weltweit über das Cloudflare-CDN gecacht und ausgeliefert.
  • Schlankes Repository: Der public/downloads/-Ordner wurde aus dem Git-Repo entfernt — das Repo ist jetzt deutlich kleiner.

🧹 Aufräumarbeiten

  • Alte Formate entfernt: 864 MP4, 863 WAV und 1 PNG Datei gelöscht — nur noch moderne Formate (WebM, Opus, WebP) im Einsatz.
  • Unbenutzte Skripte entfernt: 11 einmalige PowerShell-Konvertierungsskripte und temporäre Artefakte aus dem Projekt entfernt.
  • Code-Warnungen behoben: Alle TypeScript-Hints (unbenutzte Variablen, deprecations) aufgelöst — 0 Errors, 0 Warnings, 0 Hints.

📦 Updates

  • Astro 6.1.3 → 6.1.4
  • Preact 10.29.0 → 10.29.1
  • Security-Fixes für defu und vite
  • z-Import auf astro/zod migriert (Deprecation behoben)

🔧 Fixes

  • Lyrics-Index repariert: sync.js und check_assets.js suchten Lyrics im falschen Ordner (Audio/ statt Songtexte/) — jetzt korrekt (1.726 Lyrics indexiert).
  • StorytellerZ-Logo: Unicode-Fehler im Dateinamen korrigiert (falsches Zeichen in 3 Seiten).
  • Ex-Freund-Bild: Neues WebP-Bild auf allen Persona- und Über-uns-Seiten eingebunden.
  • Teufel-Alter: Anzeige von “13.800.000.000 Jahre” auf “~13,8 Mrd. Jahre” gekürzt.

📝 Datenschutz

  • Datenschutzerklärung um Cloudflare R2 als Medien-CDN ergänzt (alle 3 Sprachen).
v2.9.5 2026-04-05
Neue Bilder für Side-Characters hinzugefügtBildkonvertierung von PNG zu WebP

🖼️ Medien-Updates

  • Neue Assets: Bilder für die Stalkerin, den Stalker und die Hirnlosen Radioschwestern hinzugefügt und in das .webp Format konvertiert.
  • Profilseiten aktualisiert: Die generierten Persona-Bilder wurden in die entsprechenden Nebencharakter-Seiten (stalker.astro, stalkerin.astro) eingebunden.
  • Sauberer Speicher: Alte .png Dateien wurden aus dem Repository gelöscht und der Media-Index via sync.js neu aufgebaut.
v2.9.4 2026-04-03
Persona-Lore auf allen ProfilseitenÜber-Uns-Seite mit Lore-Beschreibungeni18n 372 Keys × 3 SprachenDependency- & Konfig-Updates

📖 Persona-Lore

  • Lore-Texte eingebaut: Alle 5 Persona-Seiten zeigen jetzt die vollständige Hintergrundgeschichte aus den AI-Prompts.
  • “Lore:” Überschrift in Charakter-Farbe vor jedem Lore-Text.
  • Beschreibung & Story entfernt: Nur noch Lore als einziger Fließtext auf Profilseiten.

👤 Persona-Daten aktualisiert

  • Geburtsdatum-Format: Alter wird jetzt als „DD.MM.YYYY (X Jahre)” angezeigt.
  • Genres: Auf Top-3 aus AI-Prompts aktualisiert (z. B. Punk-Rock, Riot Grrrl, Post-Punk).
  • Doppelte Rollen-Anzeige entfernt: Rolle nur noch in der Detail-Liste, nicht mehr als Überschrift.

🖼️ Layout-Verbesserungen

  • Bild-Box: Persona-Bild füllt jetzt die volle Höhe der Info-Box (items-stretch + object-cover).

🌍 Über-Uns & i18n

  • „Über Uns”-Seite: Lore-basierte Persona-Beschreibungen in DE / EN / ES ergänzt.
  • i18n Synchronisation: 372 Keys × 3 Sprachen vollständig abgeglichen.
  • i18n Check-Script: Regex korrigiert, erkennt jetzt auch doppelt gequotete Werte.

⬆️ Dependency- & Konfig-Updates

  • Astro 6.1.1 → 6.1.3
  • @astrojs/preact 5.1.0 → 5.1.1
  • tsconfig.json: Veraltetes baseUrl entfernt, Pfade auf ./-Prefix umgestellt.
  • README.md: Komplett neu geschrieben mit Projektdokumentation.
v2.9.3 2026-03-24
SPA-Routing Rewrite (Dual-Mode)F5-Fehler behobenTab-Klick funktionslos behoben

🔄 SPA-Routing Rewrite (Dual-Mode)

  • Dual-Mode Routing: Produktions-Domain nutzt Clean URLs via pushState. Alle anderen Umgebungen nutzen Hash-Routing — F5-sicher.
  • useCleanUrls() Funktion: Erkennt die Produktions-Domain und steuert den URL-Schreibmodus.
  • Universelle URL-Erkennung: Handler werten immer Hash → Pfad → ?p=-Parameter aus.
  • Zweiter popstate-Handler: Pfad-Fallback für Clean URLs hinzugefügt.

🛠️ Bugfixes

  • F5-Fehler behoben: “Datei nicht gefunden” beim Drücken von F5 auf allen Tabs.
  • Tab-Klick funktionslos: Tabs reagierten nicht auf Klick.
  • Syntax-Fehler behoben: Doppelte } im ersten popstate-Handler.
v2.9.2 2026-03-24
Picture-Fallback & MedienkonvertierungCharakter-Profile mit Datenblöckeni18n Synchronisation (308 Keys × 3 Sprachen)Astro-Migrationsplan erstellt

🖼️ Picture-Fallback & Medienkonvertierung

  • <picture> Fallback-System: Alle 52 Bilder mit WebP <source> + JPG <img> Fallback.
  • 397 JPG-Fallbacks generiert. 6 MP4→WebM konvertiert. 7 PNG-Duplikate entfernt.
  • Format-Paare vollständig: 397 Opus/MP3, 24 WebM/MP4, 397 WebP/JPG.

👤 Charakter-Profile

  • Profile: Rebel Girl (32), Shadowman (31), Folk-Hexe (16), Punk-Muschi (4), Freundin (30), Rumpelstilzchen (650).

🌍 i18n Synchronisation

  • Neue Label-Keys, Duplikat-Fixes, 29 fehlende ES-Keys nachgepflegt.
  • Vollständige Abdeckung: DE: 308, EN: 308, ES: 308 Translation-Keys.
v2.9.1 2026-03-21
Local File System Routing Fixi18n Completion (284 Keys)Asset Validator Korrektur

🛠️ Bugfixes & Routing (SPA)

  • Local File System Routing: Hash-Routing-Fallback für lokalen Direktaufruf.
  • OnLoad SPA Reset: Entfernung eines veralteten Event-Listeners.
  • i18n Completion: Fehlende Überschriften für die Fehlerseite in DE und ES.
  • Asset Validator: Korrektur fehlerhafter Regex in check_assets.js.
v2.9.0 2026-03-17
DSGVO/GDPR UpdateTwitch Live Streaming IntegrationCloudflare Migration

🚀 Compliance & Hosting

  • DSGVO/GDPR Update: Vollständige Überarbeitung der Datenschutzerklärung (DE, EN, ES).
  • Cloudflare Migration: Hosting via Cloudflare Pages & GitHub.

📺 Media & Twitch Integration

  • Twitch Live Streaming: Nahtlose Einbettung im Player.
  • Auto-UI Adaptation: Automatisches Ausblenden von Steuerelementen während Live-Streams.
v2.8.0 2026-03-16
Clean URLs (History API)Hierarchische PlaylistsRSS FeedSecurity Audit & HardeningWCAG Compliance

🚀 Major Feature Update

  • Clean URLs (History API): Volle Umstellung auf modernes Routing.
  • Hierarchische Playlists: Tiefere Ordnerstruktur für Audio-Quellen.
  • RSS Feed: Native Unterstützung via /rss.xml.
  • Modern Language Selector: Dropdown-Menü im Header für DE, EN, ES.

🛡️ Security Audit & Hardening

  • HTTP Security Headers (HSTS), CSP, Permissions-Policy, XSS Mitigation.

♿ UX & Accessibility

  • Contrast Update (red-500), Focus Indicators, 404 Page Revamp.
v2.7.0 2026-03-16
Security Hardening (HSTS/CSP)WCAG Compliance (Contrast Update)Clean URL Setup via 404-Redirect

🔒 Security & Accessibility

  • Security Hardening (HSTS/CSP): Initiales Hardening für Sicherheits-Header.
  • WCAG Compliance: Contrast Update für bessere Lesbarkeit.
  • Clean URL Setup: Initiales Setup via 404-Redirect.
v2.6.0 2026-03-16
Full Multilingual Support (DE, EN, ES)Shuffle & Repeat FunktionenARIA Implementation

🌐 Global & Barrierefrei

  • Full Multilingual Support (DE, EN, ES): Komplette Lokalisierung via i18n.
  • ARIA Implementation: Vollständig übersetzte ARIA-Labels.

🎵 Player & Engine Update

  • Playback Modes: Shuffle- und Repeat-Funktionen.
  • Deduplizierung: Automatisierte Bereinigung redundanter Medienformate.
v2.5.0 2026-03-14
Initial RoutingPersona Integration

Erste Implementierung

  • Initial Routing: SPA-Hashes und Video-Deduplizierung.
  • Persona Integration: Shadowman, Freundin und Rumpelstilzchen Playlists.
v2.0.0 2025-12-23
Lazy LoadingWebP & WebM Support

Performance Push

  • Lazy Loading, WebP und WebM für maximale Geschwindigkeit.
v1.0.0 2025-12-19
Initial ReleaseBasis-SPA mit Player, Galerie und Social-Features

Initial Release

  • Basis-SPA mit Player, Galerie und Social-Features.