Zurück zum Blog

8. September 2026

BandOS: Warum ich ein eigenes Bandmanagement-System gebaut habe

Probenplanung per WhatsApp, Setlisten in Excel, Absagen per Zuruf — BandOS ersetzt das alles durch ein zentrales Tool. Mobile-first gebaut, damit RSVP, Songbook und Setlisten auch vom Handy aus funktionieren. Multi-Tenant, Dark-first, Web Push.

BandOS: Warum ich ein eigenes Bandmanagement-System gebaut habe

WhatsApp-Gruppen sind kein Bandmanagement

Jede Band kennt das: eine WhatsApp-Gruppe mit 200 ungelesenen Nachrichten, irgendwo dazwischen steht der nächste Probentermin. Wer kommt? Unklar. Welche Songs spielen wir beim Auftritt am Samstag? Steht in einer Excel-Tabelle, die der Sänger mal geschickt hat — Version 3, oder war es 4? Und die neue Setliste? Die hat der Gitarrist auf einem Zettel.

Das funktioniert, solange alle immer alles lesen. Also nie.

WhatsApp ist ein Chat. Kein Kalender, kein Songbook, kein Aufgabenmanager. Und erst recht keine Setliste.

Was BandOS macht

BandOS ist ein Bandmanagement-System, das WhatsApp-Chaos und Excel-Listen durch ein zentrales Tool ersetzt. Jede Band bekommt einen eigenen Workspace — Multi-Tenant von Anfang an. Mitglieder werden per Einladungslink hinzugefügt, nicht über eine öffentliche Registrierung.

Die Module

  • Dashboard — Anstehende Termine, letzte Aktivitäten, Schnellzugriff auf alles Wichtige
  • Kalender — Monats- und Listenansicht für Proben und Auftritte, mit RSVP-Tracking
  • Proben — Terminplanung mit Zu-/Absage pro Mitglied, Notizen und Songvorschlägen
  • Songbook — Alle Songs mit Tonart, BPM, Interpret, YouTube-Links und Status
  • Songvorschläge — Mitglieder können neue Songs vorschlagen, alle stimmen ab
  • Setlisten — Drag & Drop Builder mit Set-Trennung, Pausen und Share-Links für Gäste
  • Band-Verwaltung — Mitglieder, Rollen, Einladungen
  • Einstellungen — Profil, 2FA-Sicherheit, Band-Konfiguration, Benachrichtigungen
  • Admin-Panel — SMTP, Benutzer, Bands, Branding — für den System-Owner

Mobile First — nicht nachträglich angepasst

Das war die wichtigste Designentscheidung bei BandOS: die App muss auf dem Handy genauso gut funktionieren wie auf dem Desktop. Nicht "es geht irgendwie", sondern wirklich benutzbar.

Der Grund ist simpel: Bandmitglieder sitzen nicht am Schreibtisch wenn sie zusagen, absagen oder die Setliste checken. Das passiert unterwegs, im Bus, in der Pause, fünf Minuten vor der Probe. Wenn die App auf dem Handy nicht funktioniert, wird sie nicht benutzt — egal wie gut sie am Desktop aussieht.

Konkret bedeutet das:

  • Touch-Targets mindestens 44px — kein Fummel-Klicken auf winzige Buttons
  • Bottom Navigation statt Desktop-Sidebar auf kleinen Screens
  • RSVP mit einem Tap — Zusage, Absage, Vielleicht als große, gut erreichbare Buttons
  • Kalender-Listenansicht als Default auf Mobile — die Monatsansicht ist optional
  • Setlisten-Sharing per Link — einmal tippen, Link kopieren, in die WhatsApp-Gruppe schicken
  • Web-Push-Benachrichtigungen — damit niemand die App öffnen muss um zu sehen, dass morgen Probe ist
  • Dark-first Design — das Lime-Frost-Theme auf dunklem Hintergrund schont die Augen, spart Akku auf OLED-Screens, und sieht auf der Bühne besser aus als ein gleißend weißes Interface

Tailwind CSS v4 mit Container Queries macht das responsive Layout deutlich einfacher als Media Queries allein. Komponenten passen sich an ihren verfügbaren Platz an, nicht an die Viewport-Breite — das löst das Problem verschachtelter Layouts in der Sidebar elegant.

Der Tech-Stack

Gleicher Stack wie meine anderen Projekte — bewährt und pragmatisch.

Next.js 16 · TypeScript · Prisma 7 + PostgreSQL 17 · Auth.js v5 · Tailwind CSS v4 · @base-ui/react · Web Push · React Email · Docker Compose · Traefik v3

Die Authentifizierung läuft über Auth.js v5 mit optionaler Zwei-Faktor-Authentifizierung (TOTP). Registrierung gibt es bewusst nicht — Zugang nur per Einladungslink. Das hält Spam draußen und macht die Onboarding-Erfahrung für neue Bandmitglieder einfach: Link klicken, Namen und Passwort setzen, fertig.

Für Notifications nutze ich zwei Kanäle parallel: Web Push für Echtzeit-Benachrichtigungen (neuer Termin, jemand hat abgesagt) und React Email für Zusammenfassungen und Einladungen. Web Push war überraschend gut dokumentiert — die Web Push API ist mittlerweile in allen relevanten Browsern stabil, auch auf iOS seit Safari 16.4.

Das UI basiert auf @base-ui/react — die headless Komponenten von den Radix-Machern, aber ohne vorgegebenes Styling. Zusammen mit Tailwind CSS v4 und dem Lime-Frost-Farbschema ergibt das ein konsistentes, schnelles Interface ohne CSS-Framework-Overhead.

Multi-Tenant von Tag eins

Eine der größten architektonischen Entscheidungen: BandOS ist Multi-Tenant-fähig. Ein User kann in mehreren Bands sein, jede Band hat ihre eigenen Daten, und ein Band-Wechsel ist ein Klick in der Sidebar.

Das klingt nach einem Feature das man "später mal" einbaut. Ist es nicht. Multi-Tenancy muss von Anfang an im Datenmodell stecken — jede Query braucht den Band-Kontext, jede Route muss wissen zu welcher Band sie gehört, jede Berechtigung ist band-spezifisch. Nachträglich einbauen heißt: jede Tabelle anfassen, jede Query umschreiben, jedes Permission-Check erweitern.

In Prisma sieht das so aus: fast jede Relation geht über bandId, und ein Middleware-Layer stellt sicher, dass nie über Band-Grenzen hinweg zugegriffen wird.

Was ich dabei gelernt habe

Web Push auf iOS ist möglich — aber mit Einschränkungen. Seit Safari 16.4 funktioniert die Push API auch auf iPhones, aber nur wenn die App zum Homescreen hinzugefügt wurde. Das ist eine zusätzliche Hürde die man im Onboarding erklären muss. Auf Android und Desktop-Browsern funktioniert es out of the box.

Dark-first Design erfordert andere Kontrast-Entscheidungen. Man kann nicht einfach die Farben invertieren. Texthierarchien die auf Weiß funktionieren (dunkelgrau vs. schwarz) brauchen auf Dunkel eine eigene Abstufung (hellgrau vs. weiß). Das Lime-Frost-Grün als Akzentfarbe funktioniert auf dunklem Grund deutlich besser als auf hellem — eine bewusste Entscheidung.

Setlisten-Sharing war das Feature mit dem besten Aufwand-Nutzen-Verhältnis. Technisch simpel (ein zeitlich begrenzter Token, eine öffentliche Route), aber im Alltag Gold wert. Wenn der Veranstalter vor dem Gig fragt "Was spielt ihr?", schickt man einen Link. Kein PDF generieren, kein Screenshot, kein "Moment, ich such das raus".


Aktueller Stand

BandOS läuft in Version 0.70.0 und wird aktiv weiterentwickelt. Die App ist produktiv im Einsatz und unter bandos.stack-base.de erreichbar. Der Code ist Open Source auf GitHub.

Was noch auf der Roadmap steht: ein Finanz-Modul für Bandkasse und Gagen-Splitting, Dateiablage für Noten und Verträge, und eine native PWA-Erfahrung mit Offline-Support für die Setliste auf der Bühne — damit sie auch ohne WLAN funktioniert.