// REFERENZEN / STREAMEREVENTS
Das Programm für Streamer-Events im DACH-Raum – redaktionell geprüft, mit Live-Abgleich über Twitch

// HERAUSFORDERUNG
Ziel war ein Programm wie im Fernsehen: auf einen Blick sehen, welche Streamer-Events heute, morgen und diese Woche stattfinden. Ein offenes Verzeichnis, in das jeder Events einreichen kann, braucht dafür klare Regeln – gegen Spam- und Testkonten, gegen Glücksspiel- und sexualisierte Inhalte und gegen reguläre Streams, die das Programm verstopfen würden. Geplante Startzeiten allein reichen nicht, weil Streams später beginnen oder länger laufen. Und wer Daten aus der Twitch-API nutzt, muss sich an enge Vorgaben halten: höchstens 24 Stunden zwischenspeichern, keine Weitergabe an Dritte.
// IN BEWEGUNG
Das Programm läuft als Zeitleiste über den Abend. Alle zwei Minuten gleicht ein Job laufende Events mit Twitch ab: Das „Live“-Badge erscheint erst, wenn der Stream wirklich läuft, und Follower bekommen dann die Push-Nachricht.
Vereinfachtes Mockup zur Veranschaulichung. StreamerEvents selbst sieht anders aus, siehe Screenshots unten.
// EINBLICK


// WAS DRIN STECKT
// SYSTEM
01
Serverseitig gerenderte Seiten mit wenig JavaScript: Programm mit Datumsleiste und Zeitleiste, Event-Seiten mit Live-Vorschau, alphabetische Streamer-Übersicht mit Suche und Streamer-Profile mit kommenden und vergangenen Events. Eigenes CSS mit Design-Tokens, selbst gehostete Schrift.
02
Filament-Backend mit den Rollen Admin und Editor. Einreichungen landen in einer Freigabe-Warteschlange; die Freigabe öffnet ein vorausgefülltes Event-Formular und ordnet Streamer bestehenden Profilen zu oder legt sie neu an. Neue Streamer lassen sich zusätzlich aus einer Kandidaten-Liste prüfen und übernehmen.
03
Ein Scheduler-Job fragt alle zwei Minuten den Live-Status der Hosts laufender und gleich startender Events ab, bis zu 100 Kanäle pro Anfrage. Ein Event gilt erst nach zwei Offline-Meldungen in Folge als beendet, Neustarts nach einem Absturz werden erkannt. Fällt Twitch aus, greift wieder die Zeitregel.
04
Antworten von Twitch werden höchstens 24 Stunden verwendet, ein stündlicher Job löscht ältere Werte. Profilbilder und Live-Vorschauen laufen über einen eigenen Proxy mit Größen- und Formatprüfung. Dauerhaft bleibt nur die Twitch-User-ID als stabiler Schlüssel, Umbenennungen bei Twitch werden erkannt und an die Redaktion gemeldet.
05
Eine versionierte JSON-API liefert Programm, Events und Streamer und nimmt Einreichungen, Geräte, Follows und Erinnerungen entgegen. Die Expo-App mit den Bereichen Programm, Folge ich, Streamer und Mehr nutzt sie und öffnet Events per Deep Link direkt aus der Push-Nachricht.
06
Konten sind freiwillig: Ohne Konto folgt man in der App anonym pro Gerät. Mit Konto folgt man auch im Web, und Follows werden zwischen Website, App und mehreren Geräten gespiegelt. Anmeldung per Passwort, Code per E-Mail, Twitch oder „Mit Apple anmelden“, abgesichert durch Rate-Limits.
// MEINE LEISTUNG
Spezifikation, Inhaltsrichtlinien, Stufenmodell und Flut-Schutz, Store-Texte und Rechtstexte. Jede dieser Entscheidungen liegt bei einer Person – samt Verantwortung für das Ergebnis.
Laravel 13 mit PostgreSQL, Filament 5 für die Redaktion, Scheduler-Jobs und Warteschlangen für Twitch-Abgleich und Push-Versand, versionierte API und Konten mit Sanctum und Socialite – abgesichert durch eine umfangreiche Pest-Testsuite.
Expo-App für iOS und Android in TypeScript mit Expo Router und TanStack Query: Programm, Folgen, Einreichen, Konto mit „Mit Apple anmelden“ und Push-Nachrichten über den Expo Push Service mit Deep Links ins Event.
Gestaltung von Website und App, Logo und das Maskottchen „Flimmi“ – vom App-Icon über leere Zustände bis zur Live-Variante bei laufenden Events.
// WEITERE PROJEKTE
Schreib mir eine kurze Nachricht – ich antworte persönlich und schnell.
Projekt anfragen→