Langlebigkeit
Bewährte Stacks, klare Service-Grenzen, gute Doku. Wir bauen für zehn Jahre, nicht für die nächste Funding-Runde.
Wir bauen für zehn Jahre. Das ist keine Floskel, sondern eine konkrete Entscheidung gegen kurzfristige Optimierung.
Konkret heißt das: Wir wählen Stacks danach, ob sie in zehn Jahren noch da sein werden. Postgres. SQLite. Hono. Astro. SvelteKit. Bun. Swift. Nicht jeden Monat das Neueste, sondern das, was sich gehalten hat.
Wir grenzen Services klar ab. Jede App ihre eigene Datenbank, JWT statt zentraler Session, Events statt verteilter Transaktionen — so können einzelne Bauteile sterben, ohne die anderen mitzureißen.
Und wir schreiben Doku. Vielleicht zu viel, manchmal. Aber lieber ein README zu viel als ein Bauteil, dessen Urheber niemand mehr erreicht.
Wir bauen auch für Geräte, die noch lange laufen müssen. Eine Mission, die nur auf dem neuesten iPhone Pro Max funktioniert, ist keine Mission, sondern eine Zielgruppe.
Was wir tun
- Bewährte Stacks — Postgres (40+ Jahre), Hono, SvelteKit, Astro, Bun, Swift
- Klare Service-Grenzen — jede App eigene DB, JWT statt verteilter Sessions, Events statt verteilter Transaktionen
- Doku ist Pflicht — pro App ein README, pro Service ein CLAUDE.md, pro Architektur-Entscheidung ein Doc
- Reichweite und Hardware-Langlebigkeit — Apps laufen auch auf alten Phones, schmaler Bandbreite, kleinen Bildschirmen
- Keine Hype-Migrationen ohne Mehrwert für Nutzer:innen
Was wir nicht tun
- Kein Framework-Wechsel, weil ein neues hyped wird
- Keine Abhängigkeiten, die wir nicht selbst verstehen oder forken könnten
- Keine „smarten" Drittpartei-Hooks, die in 18 Monaten kommerziell uminterpretiert werden
Was uns dieser Wert kostet
Jeder Wert hat einen Preis. Wir benennen ihn, damit Werte keine Floskeln werden.
- „Bewährt" heißt manchmal — nicht das modernste oder schnellste
- Doku-Pflege kostet Zeit, die nicht in Features fließt
- Reichweite auf alte Hardware bedeutet UI-Kompromisse, die jüngere Geräte überflüssig finden
Wo dieser Wert konkret im Code steht
Diese Apps, Services und Pakete führen Langlebigkeitausdrücklich in ihrer Werte-Liste. Werte gewinnen erst, wenn sie sich an Bauteilen festmachen lassen.
- MemoroStimme aufnehmen, automatisch in Text verwandeln, sortieren und durchsuchen — für Notizen, Meetings, Interviews oder Tagebuch.
- ZitareEin offener Zitate-Korpus zum Sammeln, Suchen und Kuratieren — Werke gemeinfreier Stimmen, sauber belegt, unter freier Lizenz.
- KistliKleine Apps für Kinder — komplett offline, ohne Konto, ohne Werbung, ohne Zeitdruck. Eine ganze Familie.
- WordeckFreie Karteikarten zum Behalten — über 50 fertige Decks gratis, Lernen im eigenen Tempo, und jede Karte kommt zurück, kurz bevor du sie vergisst.
- PagetaLese-App ohne Algorithmus-Druck — Save-it-later mit Markierungen, Pocket-Umzug, voller Export. Was du willst, nicht was klicken soll.
- MoodlitAmbient Lighting für jeden Moment — 24 Voreinstellungen, eigene Farben, verkettete Sequenzen, als Vollbild und auch ohne Account.
- MukkeDeine Musik, dein Server — selbst-gehostete Library, persistenter Player, Studio für Lyrics-Sync mit Waveform.
- uLoadURL-Shortener mit eigenen Kurz-Codes, Click-Analytics und QR-Codes — Werkzeug-haft statt Linktree-Builder.
- Chorportal ThurgauGemeinsame Plattform für die Chöre des Kantons Thurgau — Repertoire, Noten, Übungs-MP3s und Setlisten an einem Ort, untereinander teilbar.
- SaldoEinnahmen, Ausgaben und Belege — privat und für die Selbständigkeit in der Schweiz. Rechnung fotografieren, der Rest füllt sich.
- ManatalEin gemütliches Hex-Dorf bauen — ohne Zeitdruck, ohne Gegner, ohne verlieren zu können.
- AvatarEine Pixel-Figur Stück für Stück selbst zusammensetzen — offline, kostenlos und ohne dass ein Bild jemals verschickt wird.
- NotizEin einziges, ewig langes Dokument, das sich selbst sortiert — Ende-zu-Ende verschlüsselt, ohne Konto nutzbar.
- KollektaBücher, Filme, Serien und Comics mitschreiben — verschlüsselt, ohne Empfehlungs-Algorithmus, ohne Konto-Zwang.
- GalerieKunst, die man begeht — kuratierte Ausstellungen gemeinfreier Werke als 3D-Räume im Browser.
- BildaEine Bild-Bibliothek, die ohne Konto rein im Browser läuft — und mit Konto verschlüsselt auf deine Geräte kommt.
- WorldreamErfundene Welten als vernetzte Texte bauen — Figuren, Orte und Geschichten verweisen aufeinander, KI nur, wenn du sie rufst.
- LernkofferThemen zum Anfassen und Mitnehmen — ein Koffer aus gedruckten Heften, Lernkarten und 3D-gedruckten Teilen.
- Kulturdaten BodenseeBesucherzahlen der Museen zwischen Konstanz und Kreuzlingen — offene Daten, sichtbar gemacht über die Grenze hinweg.
- Amana-authIdentität, Sessions und JWKS für alle Vereins-Apps — eine Anmeldung, lokale Token-Verifikation, kein Cloud-Auth-Anbieter.
- Amana-auth-webDas Anmelde-Portal als eigene Web-App — gemeinsame Login-Seite für alle Vereins-Apps mit App-spezifischem Branding.
- AauraPrivater Anerkennungs-Ledger für Beiträge zum Ökosystem — sechs Botanik-Ränge, kleine reale Geschenke, kein Leaderboard.
- XxpGeplantes Lern- und Kompetenz-Backbone der Plattform — Skill-XP pro App, neun Intelligenz-Domains, globaler Level, opt-in-Portfolio.
- Lmana-linksDeep-Link-Resolver — Apps registrieren ihre URI-Schemata, andere verlinken stabil quer durch das Ökosystem.
- Emana-eventsPlattform-Pub/Sub — Topic-basiertes Event-Bus mit At-least-once-Delivery, DLQ und Wildcard-Subscriptions.
- Mmana-mcpTool-Registry und MCP-Gateway — sammelt AI-Tools aus App-Manifesten und liefert sie an Claude-Clients per Model Context Protocol.
- Smana-searchFöderierte Aggregat-Suche — verteilt eine Anfrage über alle Apps eines Users und vereint die Ergebnisse.
- Mmana-mediaObjekt-Speicher für alle Vereins-Uploads — S3-kompatibles MinIO im Eigenbetrieb, Buckets pro App.
- Tmana-transcodeVideo-Transcoding-Worker — liest BullMQ-Jobs, läuft ffmpeg, schreibt 720p/480p/Poster zurück in mana-media.
- Smana-syncEvent-Store-Server für die Event-Sourced-Plattform — Append-only Event-Log pro User pro App, JWT-Auth via mana-auth.
- Nmana-news-poolGeteilter RSS/JSON-Feed-Pool — kuratierte Quellen, die alle Apps gemeinsam lesen können.
- S@mana/shared-uiVereins-UI-Komponenten — Svelte 5 mit strikter 12-Token-Disziplin. Die UI-Foundation aller mana-Apps.
- S@mana/shared-tailwindTailwind-Preset für alle Vereins-Apps — gemeinsamer Farb-Token-Satz, Spacing-Skala, Schriften-Stack.
- S@mana/shared-iconsPhosphor-Icon-Wrapper für alle Vereins-SvelteKit-Apps — einheitliche Icon-API, bundlebar pro App nur die genutzten.
- S@mana/shared-theme12-Token-Theming-Engine — pro App ein Theme, ein Token-Satz, eine konsistente Optik.
- T@mana/themesTheme-Variants für Vereins-Apps — konkrete 12-Token-Belegungen, die App-Stimmungen tragen.
- S@mana/shared-brandingBrand-Assets der Vereins-Apps — Logos, Favicons, App-Icons, Footer-Bausteine. Eine Quelle für visuelle Identität.
- S@mana/shared-pwaPWA-Boilerplate für Vereins-Apps — Vite-Plugin, Theme-Bridge, Install-Banner, Update- und Offline-Komponenten.
- S@mana/shared-honoHono-Server-Foundation — JWT-Auth-Middleware, Health-Endpoints, Admin-Routen, Fehlerbehandlung. Jeder Server-Service nutzt das.
- S@mana/shared-drizzle-configDrizzle-ORM-Konfiguration-Factory für alle Vereins-Services — eine DB pro Service, schema-isoliert via pgSchema.
- S@mana/shared-typesGemeinsame TypeScript-Typen für das Vereins-Monorepo — Wissens-Brücke zwischen Services und Apps.
- T@mana/tsconfigGeteilte tsconfig-Bases — Web/SvelteKit und Hono+Bun-Server in zwei sauberen Voreinstellungen.
- S@mana/shared-i18nInternationalisierungs-Helpers — Datumsformat, Pluralisierung, deutsche Schreibweisen. Heute deutsch-only, vorbereitet für mehr.
- Mmana/shared-goGo-Helpers für die wenigen Vereins-Services in Go — Auth, Env, HTTP-Middleware. Pendant zu shared-hono.
- S@mana/shared-schemasEvent-Schemas pro Vereins-App — die Quelle der Wahrheit für mana-sync und Codegen-Quelle für event-kit.
- E@mana/event-kitEvent-Sourcing DSL und Codegen — definiert Schemas einmal, generiert TypeScript, Swift und Kotlin daraus.
- S@mana/shared-authErste Generation der Auth-Klienten-Utilities. Lebt weiter, neue Apps starten auf shared-auth-sso.
- S@mana/shared-auth-ssoSvelte-5-Auth-Klient für das SSO-Cookie-Pattern — createSession, tryRefresh, buildLoginRedirect, AuthCallback.
- S@mana/shared-rssRSS/Atom-Parser plus Mozilla-Readability-Artikel-Extraktion plus Feed-Discovery. Pure-TypeScript ohne externe Dienste.
- D@mana/devlog-genDevlog-Generator für das Vereins-Ökosystem — geht git log durch, bucketisiert pro Tag, schreibt Markdown-Stubs.
Wogegen Langlebigkeit ansteuert — und was wir baulich dafür tun
Werte gewinnen erst gegen die Industrie-Logik, wenn sie sich an konkreten Problemen festmachen lassen — und an strukturellen Lösungenn, die sie tragen.
- Enshittification — Software wird über Zeit schlechterWenn Wachstum, Werbung und Aktionärsrendite den Takt geben, verschlechtert sich jedes erfolgreiche Software-Produkt zwangsläufig.
- Cloud-Energiehunger als SelbstzweckCloud-Wachstum dient zunehmend sich selbst — mehr Strom, um besser zu überwachen, um besser zu monetarisieren, um mehr Cloud rechtfertigen zu können.
- Event-Sourcing als Daten-ArchitekturJede Änderung ist ein Event. Apps lesen Projektionen, schreiben aber nur Events — und der Ledger ist die einzige Quelle der Wahrheit.
- Föderation statt Lock-InWenn der Daten-Austausch über veröffentlichte Protokolle läuft, ist Verlassen nicht teurer als Bleiben — das nimmt dem Enshittification-Mechanismus seinen Hebel.
- Eigenbetrieb auf einem Mac MiniSouveränität fängt damit an, dass jemand im Verein die Stromrechnung der Hardware kennt, auf der die Daten liegen.
- Was öffentlich ist, liefern wir statisch ausFür Inhalte, die öffentlich sind und für alle gleich aussehen, ist statisches Vorab-Bauen langlebiger, ausfallsicherer und günstiger als ein dynamischer Server hinter jeder Seite.
Was diesen Grundsatz weiter trägt
- JetztMemoro Web — Browser-Live-Test der wiederhergestellten UIDie SvelteKit-UI von Memoro wurde auf die neue Hono-RPC-App geliftet (Phasen A–F durch). Was fehlt vor öffentlicher Bewerbung: ein vollständiger Live-Test im Browser und eine letzte ausstehende DB-Migration.
- JetztApple-Dev-Portal — Capabilities für 13 native Apps freischaltenMehrere native Vereins-Apps sind code-fertig für TestFlight, hängen aber an Capability-Konfiguration im Apple Developer Portal. HomeKit und Local Network blocken Moodlit, App-Groups blocken Cross-App-SSO bei zwei weiteren.
- JetztDatenschutz V2 — Audit durch eine KanzleiDie DSGVO-Vorlage V2 ist eingeführt, 11 App-DSEen, ein gemeinsames VVT und ein einheitlicher Footer stehen. Was fehlt vor offizieller Vereins-Gründung: ein juristisches Audit durch eine Kanzlei mit Datenschutz-Schwerpunkt.
- JetztAuftrags-Steuerstatus juristisch klärenDas Auftrags-Modell (Software-Aufträge für gemeinnützige Organisationen, Gemeinden und Kantone) ist die geplante Haupt-Finanzierungsquelle des Vereins in der Anlaufphase. Bevor das nach außen kommuniziert wird, muss geklärt sein, ob ein steuerbefreiter Schweizer Verein Auftragsarbeiten in nennenswertem Volumen annehmen kann, ohne den Gemeinnützigkeits-Status zu riskieren — und in welcher Form Honorare an aktive Personen zulässig sind.
- BaldSchweizer Verein formal gründenmana operiert seit langem als „Verein in Gründung". Der nächste Schritt ist die formale Eintragung als Schweizer Verein nach ZGB Art. 60 ff. — mit Statuten, Vorstand und Mitgliederversammlung. Der Plan, später in eine Stiftung überzuführen, bleibt davon unberührt.
- BaldOff-Site-Backup an einem zweiten CH-StandortDer lokale Backup-Cron läuft (18 DBs, 9 Container, 46 GB nightly) — das Off-Site-Spiegel-Bein fehlt aber noch. Ohne zweiten Standort ist ein Brand- oder Diebstahl-Szenario in Tägerwilen unrettbar.
- Baldsync1 abschalten, nachdem alle Apps auf sync2 (Event-Sourcing) sindsync2 (Event-Sourcing für 9 standalone Apps) läuft live. sync1 (Legacy-LWW für managarten) läuft parallel. Sobald managarten und die letzten Hybrid-Apps vollständig auf event-sourced umgebogen sind, kann sync1 retired werden.
- Baldmana-props — eigene 3D-Objekte statt fremder ModellpaketeUnsere 3D-Apps nutzen bisher fremde CC0-Modelle und prozedurale Platzhalter — jede App für sich. Eine zentrale Bibliothek eigener Objekte soll den Stil vereinheitlichen und Mehrfacharbeit beenden. Der Stil ist per Experiment entschieden: weiche Silhouette mit sparsamer Geometrie.
- BaldAlte news.curated_articles-Tabelle droppen (~2026-06-17)In mana_platform liegen noch 25 717 Zeilen vom abgeschalteten news-ingester. Reine Hygiene-Aufgabe — keine App liest sie mehr. Recipe steht intern, nur Ausführung fehlt.
- SpäterStiftungs-Umwandlung — sobald die Plattform finanziell trägtDer Verein ist als Schweizer Verein konstituiert; die langfristige Rechtsform ist eine Stiftung, weil sie Eigentum endgültig dem Verein bindet und keinen Verkauf zulässt. Schritt entscheidend für „unverkäuflich" — aber nur dann, wenn die laufenden Kosten dauerhaft gedeckt sind.
- SpäterKnoten-Betreiber:innen mit Compute beteiligen (Stufe 3)Heute können Knoten-Betreiber:innen Backup-Spiegel anbieten. Stufe 3 wäre, dass sie Compute-Lasten mittragen — verteilte Mac-Minis oder GPU-Boxen, die KI-Inferenz oder Echtzeit-Sync föderieren.
- IdeeMana-Tag Health-Bundle — Greenfield-Plan, nicht implementiertKonzept für ein konsolidiertes Gesundheits-Bundle (Nutriphi + Body + Tagesjournal + Mood + Sport in einer kohärenten App) liegt als Playbook MANATAG_GREENFIELD.md vor, mit acht Phasen. Ob es so gebaut wird, ist noch offen.