PWA vor Native — Web-App, wo es geht
Wo der Plattform-Vorteil einer nativen App nicht zwingend gebraucht wird, liefern wir eine progressive Web-App statt. Das spart den App-Store-Tribut, verkürzt die Update-Schleife und hält die Installation in der Hand der Nutzerin.
Die Web-Plattform ist über die letzten zehn Jahre soweit gewachsen, dass „Web-App vs. Native-App“ für die meisten Anwendungsfälle keine technische Frage mehr ist, sondern eine distributionspolitische. Eine progressive Web-App kann auf Android und Desktop heute praktisch alles, was eine Native-App kann — Hintergrund-Sync, Push-Benachrichtigungen, Offline- Modus, Geräte-Icon, eigene App-Schale. Was sie nicht hat: einen Eintrag im App-Store eines US-Konzerns.
Genau das ist für uns das Verkaufsargument. Eine PWA wird über unsere eigene Domain verteilt, ohne Apples oder Googles Genehmigung, ohne 15- bis 30-Prozent-Tribut, ohne dass der Store-Algorithmus entscheidet, wer uns findet. Updates gehen mit dem nächsten Seiten-Refresh raus, nicht mit dem nächsten Store-Review. Wenn eine Nutzerin die App wieder „deinstallieren“ will, schiebt sie das Icon weg — keine Konto-Verwaltung beim Konzern.
Die Grenze, die wir respektieren: iOS. Erstens, weil Apple- Safari einige Web-APIs absichtlich nicht implementiert oder erst mit Verzögerung freigibt, was bestimmte App-Klassen (Sprachaufnahme, HomeKit-Steuerung, Local-Network-Discovery) nicht web-baubar macht. Zweitens, weil die Kultur der Apple- Nutzer:innen den App-Store als selbstverständliche Quelle behandelt — eine PWA wird dort selten installiert, auch wenn sie besser funktionieren würde. Wir bieten dort beides an: PWA für die, die wollen, Native für alle anderen.
Die Mana-Käufe schließlich laufen seit den DMA-und-Epic-
Entscheidungen wieder vollständig über die Web-Seite. Apple
musste nach jahrelangem Anti-Steering-Druck Linking-Out für
externe Bezahl-Webseiten erlauben. Das ist kein eleganter
Vorgang, aber er reicht: ein Knopf in der iOS-App öffnet
mana-ev.ch/laden, dort findet die Transaktion statt, ohne dass
Apple einen Cent von der Provision sieht. Dass wir das überhaupt
können müssen, ist eine eigene Geschichte — siehe Problem zum
App-Store-Tribut.
Wie genau das funktioniert
- `@mana/shared-pwa` als geteiltes PWA-Bauteil: Install-Banner, Manifest-Generator, Service-Worker-Boilerplate. Adoption derzeit in 10/10 Vereins-Apps live.
- Android: PWA als primärer Reach-Pfad — Browser-Installation, kein Google-Play-Tribut, keine Play-Store-Review.
- Desktop (Chrome, Edge, Safari): PWA via „Zum Dock hinzufügen", eigene Fenster, eigenes Icon, eigene Daten-Persistenz.
- iOS: PWA + zusätzlich Native-App im App-Store, weil iOS Safari bestimmte Hardware-Features (Hintergrund-Sync, Push, Voice-Recording) nur Native-Apps gibt.
- Mana-Käufe und Mitgliedsbeiträge laufen über die Vereins- Webseite, nicht durch In-App-Purchase — seit Apple das nach dem Epic-Urteil zulassen muss.
Was uns das kostet
Jeder Lösung hat einen Preis. Diese hier zahlen wir bewusst — weil das, was wir damit erreichen, mit nachgelagerten Tricks nicht ehrlich zu bauen ist.
- Auf iOS gibt es ein Reach-Problem: Apple-Nutzer:innen installieren PWAs in der Praxis selten. Die meisten Vereins- Apps haben deshalb zusätzlich eine Native-App, was die Wartungs-Last verdoppelt.
- Hardware-nahe Features (Health, HomeKit, lokale Netzwerk- Erkennung) gehen nur nativ. Apps wie Moodlit oder Memoro brauchen Native, weil die Funktion sonst nicht da ist.
- PWAs werden weiterhin systematisch unterschätzt — auch unter Mitgliedern. „Eigene App im Store" wird als Profession wahrgenommen, PWA als Behelf.
Welche Probleme dieser Lösung adressiert
Diagnose ohne Antwort ist Lamentation; Antwort ohne Diagnose ist Ingenieurs-Spielerei. Hier verbindet sich beides.
Offene Punkte
- iOS-PWA-Adoption ist niedrig; wir haben keinen guten Mechanismus, Nutzer:innen aktiv zur Webseiten-Installation statt zum App-Store zu führen.
Weitere Lösungen dieser Art
Wie die Daten fließen — strukturelle Entscheidungen.
- Event-Sourcing als Daten-ArchitekturStatt aktuelle Zustände in einer App-Datenbank zu mutieren, schreiben unsere Apps jede Änderung als unveränderliches Event in einen zentralen, signierten Ledger. Daraus folgt vieles, was sich sonst nicht bauen lässt: Audit-Trail, Cross-App-Timeline, vollständige Lösch- und Export-Pfade, transparente KI-Aktionen.
- Cross-App-Timeline — jede Änderung ist sichtbar, auch KI-ÄnderungenEine zentrale Zeitleiste über alle Vereins-Apps zeigt in Echtzeit, was sich in den eigenen Daten geändert hat — von wem, wann, in welcher App, und ob ein Mensch oder eine KI sie geschrieben hat.
- Föderation statt Lock-InDaten gehen über App-Grenzen hinweg über offene Plattform- Protokolle (Share, Links, Events, MCP, Search), nicht über hauseigene Vendor-APIs. Jede App kann zur Allmende beitragen, jede App kann fortgehen — der Export ist gleichwertig zur internen API.
- Was öffentlich ist, liefern wir statisch ausÖffentliche Lese-Inhalte rendern wir einmal zur Bauzeit zu fertigen HTML-Dateien — nicht bei jedem Aufruf neu auf einem Server. Was keinen Server zum Anzeigen braucht, kann auch nicht mit ihm ausfallen. Zitare ist die App, an der dieses Muster zuerst greift.
Lösungen sind die strukturellen Antworten des Vereins. Werte sagen, wonach wir uns ausrichten; Probleme sagen, wogegen; Lösungen sagen, was wir daraus baulich machen.