Devlog·KW 21·18.–24. Mai 2026

Die große Entflechtung: aus einer App wird ein Ökosystem

Eine Woche, in der die Sammel-App schrumpft, damit die Apps wachsen können. Modul für Modul verlässt jeder Bereich — Stadt-Ecken, Essen, Garderobe, Pflanzen, Memos, Zitate, Karten — die alte unified-App und zieht in ein eigenes Repo, einen eigenen Container, eine eigene Domain. Am Ende der Woche hört die alte Compose-Datei sogar auf, die Plattform-Dienste mitzuschleppen. Das ist kein Aufräumen um des Aufräumens willen, sondern eine Haltung in Code gegossen: Ein Produkt gehört nur sich selbst.

Worum es geht

Vor einem Jahr war fast alles eine App. Eine SvelteKit-Oberfläche unter mana.how trug über zwei Dutzend Module: Karten, Pflanzen, Essen, Zitate, Stadt-Ecken, Sprach-Memos und mehr — eine gemeinsame Datenbank, eine Anmeldung, ein Deployment. Bequem zu bauen, schwer zu trennen. Was eine App tat, betraf alle anderen.

Diese Woche dreht sich diese Logik um. Reihenweise laufen Commits der Form „Modul X aus unified-App entfernen“ — und jedes Modul, das geht, taucht woanders wieder auf: als eigenständiges Repo, eigener Container, eigene Domain. Die Sammel-App wird zum Resthof. Das Ökosystem wird sichtbar.

Ein Produkt gehört nur sich selbst

Am Montag fällt die größte Lösch-Bilanz der Woche: citycorners, food, wardrobe, plants, who, memoro, news, comic, uload verlassen die unified-App an einem Tag. Am Dienstag folgen Musik, Zitate, Artikel, Orte. Jedes Modul nimmt seinen Code mit — und ab jetzt auch seine Verantwortung. Pageta etwa trägt die Artikel-Verarbeitung seither allein, nicht mehr ein gemeinsamer Worker, der allen gehört und niemandem.

Der Grund ist mehr als Hygiene. Solange alles in einer App steckt, kann keine App ehrlich „eigenständig“ heißen. Wer Pflanzen-Tagebuch nutzt, schleppt unsichtbar die Karten-Datenbank mit; wer ein Modul abschalten will, kann es nicht. Getrennte Repos heißen: jede App hat ihre eigene Datenbank, ihren eigenen Deploy-Pfad, ihre eigene Datenschutzerklärung. Man kann sie einzeln verstehen, einzeln prüfen, einzeln verlassen. Das ist Offenheit nicht als Versprechen, sondern als Bauplan.

Parallel werden die getrennten Apps an eigene Domains verdrahtet: app.zitare.com, herbatrium.com, seepuls.com, comicello.com als Primär-Domains — die alten *.mana.how-Adressen treten in den Hintergrund. Eine App, die unter ihrer eigenen Domain lebt, ist schwerer wieder einzukassieren als ein Untermieter im Verein-Subnetz.

Der chirurgische Schnitt zum Schluss

Am Sonntagmorgen, kurz vor drei Uhr, ein einziger Commit: minus 935 Zeilen. Die Kern-Dienste — Auth, Sync, Mail, das gemeinsame Rückgrat — fliegen aus der managarten-Compose-Datei. Sie leben ab jetzt in mana-core, dem reinen Plattform-Repo. Damit hört die alte App- Sammlung endgültig auf, Plattform-Infrastruktur mitzutragen, und beschränkt sich auf das, was sie noch ist: ein Stapel App-Stacks.

Das ist die saubere Trennlinie, auf die die ganze Woche zuläuft. Auf der einen Seite die Dienste, die der Verein für alle betreibt; auf der anderen die Apps, die sie nutzen. Wer was tut, ist jetzt am Verzeichnis ablesbar — und genau das ist der Punkt.

Damit Trennung nicht Zersplitterung heißt

Eine Gefahr beim Auseinanderschneiden: Jede App baut sich danach ihr eigenes Süppchen, und am Ende gibt es zwölf verschiedene Login- Bildschirme, zwölf Offline-Seiten, zwölf Theme-Systeme. Genau das verhindert die zweite Bewegung der Woche — die geteilten Fundamente ziehen überall ein, während die Apps auseinanderwandern.

ManaMeme und das Skizzenbuch Manawald adoptieren beide das gemeinsame PWA-Paket (@mana/shared-pwa) — die fünfte und achte App, die ihre Installierbarkeit, Offline-Sicht und ihren Install-Hinweis nicht mehr selbst pflegt, sondern aus der zentralen Lib bezieht. Beide ersetzen außerdem handgeschriebene Session-Logik durch die geteilte Auth-Lib: beim Skizzenbuch fliegt die Eigenbau-Session vom Vortag wieder raus, sobald die gemeinsame Bibliothek verfügbar ist — minus 154 Zeilen eigener Code, ehrlich als Vorgriff erkannt und zurückgebaut. Dazu der gemeinsame Design-Stack: @mana/shared-ui springt auf v1.0 und 1.1, das Theme-System wird gebündelt geladen, die Marken-Optik kommt aus den Verein-Paketen statt aus App-lokalem CSS.

Der Trade-off ist benannt: Wer eine geteilte Lib adoptiert, bindet sich an deren Versionierung — die shared-pwa-Versions-Bumps tauchen über die Woche immer wieder auf. Das ist der Preis dafür, dass eine Verbesserung an einer Stelle allen zugutekommt. Wir zahlen ihn bewusst.

Auf der nativen Seite dieselbe Linie: Cross-App-SSO über eine geteilte Keychain-Gruppe (ev.mana.session) — meldet man sich in einer mana-App an, ist man in der nächsten schon angemeldet. Dazu in der gemeinsamen Swift-Bibliothek eine reifere Auth-Resilienz: Ein abgelaufener Token wirft nicht mehr stumpf jede:n hinaus. Ein vorübergehender Netzwerkfehler — ein DNS-Hänger, ein kurzes 503 — hält die Sitzung und versucht es erneut; nur ein vom Server wirklich ungültig gemachter Token führt zum sauberen Logout. Ein kleiner Unterschied mit großer Wirkung im Alltag: Man bleibt angemeldet, wenn das Netz wackelt, und fliegt nur raus, wenn es wirklich sein muss.

Datenschutz, bevor es Inhalte gibt

Die dritte Bewegung ist leise, aber sie hat Vorrang — wörtlich: „Datenschutz vor Inhalten“ ist eine Phasen-Pflicht. ManaMeme und Manawald bekommen ihre Datenschutz-Erstentwürfe nach gemeinsamer Verein-Vorlage, damit die Aussagen über alle Apps hinweg konsistent bleiben statt frei formuliert und je App anders.

Bemerkenswert ist ein Detail: Der Föderations-Paragraph wird um die tatsächliche Realität ergänzt — dass Beiträge über mana-share an andere Verein-Apps gehen können und dass das mitprotokolliert wird. Das hätte man auch weglassen können; es steht jetzt da, weil es wahr ist. Ehrlich über das, was die Apps untereinander austauschen, statt es zu verschweigen — das ist die Haltung, die wir auch bei den Schriften und der Infrastruktur einnehmen.

Offene Punkte

  • Die App-Trennung ist im Code vollzogen, aber die Aufräum-Politik im Skizzenbuch-Inkubator ist noch offen — tote Skizzen bleiben vorerst als Referenz liegen, statt automatisch zu wandern.
  • Die geteilte PWA-Lib läuft noch unter 0.1.0-alpha — die Apps hängen damit an einer Vorab-Version, die sich noch bewegt.
  • Die native WebShell-Hülle für Hybrid-Apps hat aktuell keinen Konsumenten mehr (Zitare und Seepuls sind voll nativ geworden); sie bleibt bewusst als schneller Start-Baustein erhalten, nicht als Altlast.

Was kommt

Die Trennung ist die Voraussetzung, nicht das Ziel. Jetzt, wo jede App ihr eigenes Repo, ihre eigene Datenbank und ihre eigene Domain hat, kann jede für sich reifen — und die geteilten Fundamente sorgen dafür, dass sie dabei trotzdem zur selben Familie gehören. Die nächsten Wochen ziehen die übrigen Apps auf den gemeinsamen Design- und PWA-Stack nach und schärfen die Datenschutz-Entwürfe zur Veröffentlichungsreife.

Wer mitmachen will: [email protected].

Veröffentlicht
24. Mai 2026
Repos
managartenmanamememanameme-nativemanawaldmana-swift-coremana-swift-ui
Tags
architekturentflechtungsouveraenitaetshared-foundationdatenschutz
Weiterlesen