In Entwicklung · aktualisiert am 8 Nov. 2026

ASafariM OS

Eine Basisplattform: ein Betriebssystem, an das Apps andocken. Jede App bekommt die Vorteile des OS, ohne sie selbst zu bauen.

ASafariM OS ist ein neues System mit eigenen Apps. Es ist keine Migration der Plattform asafarim.com, die unverändert weiterläuft.

Sie haben Zugang? Anmelden und öffnen Sie dann Docs oder Flow, wenn Ihr Konto Zugang hat. Noch kein Zugang? Melden Sie sich mit Ihrer E-Mail-Adresse an und wählen Sie Request connection: Ein Administrator genehmigt es.

Apps

Was auf ASafariM OS läuft, und die Produkte, die daneben entstehen: wo Sie jedes finden und wie weit es ist.

Im OS enthalten

Produkte von ASafariM

Mit eigenem Code und eigenen Domains, im Stil des OS; ihre Projektseiten werden vom OS ausgeliefert.

Ausgeliefert

Was bisher gebaut und zusammengeführt ist, Phase für Phase. Diese Liste ist ein Änderungsprotokoll des Codes und auf Englisch.

  1. P0

    Foundations

    The workspace, CI and the self-describing app contract: an app's manifest, its validator and JSON Schema, and the platform CLI that compiles manifests and checks that the core never imports an app.

    Zusammengeführte Pull Requests: #1, #12, #13

  2. OS-D1

    Local dev environment

    One command starts the whole OS locally: Postgres, Redis, identity, core-api, a dev login stub with seeded users, and a dev gateway in front of every app.

    Zusammengeführte Pull Requests: #29, #38

  3. P2

    Identity

    The OpenID Connect provider for id.asafarim.site, with sign-in delegated to Hub, plus its published container image and production deploy files.

    Zusammengeführte Pull Requests: #23, #41, #46, #47

  4. P3

    Control plane

    core-api's registry, permission catalog and lifecycle; the app SDK and Notes, the first built-in app; the Admin console for apps, roles, grants and the audit log.

    Zusammengeführte Pull Requests: #33, #39

  5. P4.1

    Event bus and bus auth

    NATS JetStream with CloudEvents, an outbox and relay, durable consumers with dedupe and dead letters, and per-app bus permissions checked by core-api when an app connects.

    Zusammengeführte Pull Requests: #50, #52, #54, #56

  6. P4.2

    Event catalog

    Apps upload signed schemas for the events they publish, and the Admin console lists every event type with its publisher, subscribers and schema.

    Zusammengeführte Pull Requests: #65, #67

  7. Remove

    Remove an app

    The last lifecycle step: an admin removes an app, its grants and bus resources are cleaned up, and it can be installed again from scratch.

    Zusammengeführte Pull Requests: #69

  8. P6.1

    Health and status board

    core-api checks every active app's live and ready endpoints from its manifest, and the Admin console shows them on one Status page.

    Zusammengeführte Pull Requests: #84

  9. Landing

    This page is live

    asafarim.site now serves the OS landing page from its own container, deployed on its own with one command and no identity. The placeholder page is gone.

    Zusammengeführte Pull Requests: #74, #98

  10. P6.2

    Traces, request metrics and trace-id logs

    Every app's requests become OpenTelemetry traces and per-route rate, error and duration metrics, with only route patterns leaving the app, and its JSON log lines carry the trace id. One command starts a local collector.

    Zusammengeführte Pull Requests: #96

  11. External apps

    Install an app from its image

    An app built in another repository is installed from its container image: its manifest travels as an image label and is validated, and one command runs it locally or writes its production compose file.

    Zusammengeführte Pull Requests: #90, #105, #107

  12. Docs

    A private documentation reader

    docs.asafarim.site, the second built-in app: it renders documents from their source repository with contents and search, keeps study notes on a part of a document, and is open only to the people the OS grants it to.

    Zusammengeführte Pull Requests: #85, #86, #88, #91, #92, #111

  13. P6 part 2

    Traces across apps

    One request stays one trace through the gateway, core-api and the event bus, and every app flushes its traces and metrics when it stops.

    Zusammengeführte Pull Requests: #112, #113, #114, #117, #125

  14. Retention

    Backup and purge

    Removing an app first backs up its database. The database is dropped only after a retention window, and only if the backup is still there and unchanged. The CLI can remove, purge and list them.

    Zusammengeführte Pull Requests: #115, #116

  15. P7.2

    Manifest review

    Every pull request gets an advisory check that compares an app's manifest with its code: unguarded routes, permissions never checked, and events without a schema or a handler, posted as one comment.

    Zusammengeführte Pull Requests: #118, #121, #124

  16. Sign-in

    Email codes and passkeys

    id.asafarim.site signs people in with a one-time email code or a passkey, built in the OS with no outside provider, and an admin approves new connections.

    Zusammengeführte Pull Requests: #122, #127, #129

  17. P7.4

    Event search

    The Admin console's event catalog answers questions like "which app emits something when an order ships?" by searching event types, apps and schema descriptions.

    Zusammengeführte Pull Requests: #128, #134

  18. Database spans

    Database time in every trace

    Queries from core-api, Notes and Docs show up in their request's trace with the operation and the database name only, never the SQL text or its values.

    Zusammengeführte Pull Requests: #142, #143, #149

  19. Top bar

    App switcher and account menu

    Every OS app has the same top bar: a switcher to each app you can open, and an account menu with your name and Sign out.

    Zusammengeführte Pull Requests: #152, #153, #155, #156, #157

  20. Core in production

    core-api and its own database

    core-api runs in production next to the OS's own Postgres on a private network, started by the deploy only once its encrypted settings are committed. A failed image pull is retried before the deploy gives up.

    Zusammengeführte Pull Requests: #140, #141, #164

  21. Alerts

    Down and recovered alerts

    core-api can send one message to a chat webhook when an app goes down and one when it recovers. It keeps the history on the Status page, and remembers what it already reported across a restart.

    Zusammengeführte Pull Requests: #150, #154, #158, #159, #160, #161, #163

  22. P7.1

    Scaffold a new app

    One command writes a new app with its manifest, sign-in, the OS top bar, a permission-checked example route, health endpoints, telemetry and a test. It passes manifest review with no findings.

    Zusammengeführte Pull Requests: #103, #120, #165

  23. Admin live

    Admin console in production

    The Admin console runs at admin.asafarim.site: admins manage apps, roles, grants and the audit log there.

    Zusammengeführte Pull Requests: #176

  24. CLI

    The OS from the command line

    The platform CLI reads what the Admin console shows: the audit log, every app and its state, one app's permissions and roles, who holds which role, and the event catalog with its keyword search.

    Zusammengeführte Pull Requests: #172, #177, #178, #179, #180, #181, #182

  25. Retention part 2

    Backups checked on demand

    A removed app's backup can be verified at any time, from the command line or from the Admin console's Apps page, before its database is purged.

    Zusammengeführte Pull Requests: #168, #183

  26. Look

    One look for every app

    One light and dark theme with a toggle in every header, data tables that fit a phone, a shared layout for the sign-in pages, and a link to the Admin console for admins.

    Zusammengeführte Pull Requests: #202, #204, #205, #206, #207, #234

  27. Sister sites

    Breinhap and IGS-Pharma

    The OS stack also serves the landing pages of two ventures built in their own repositories, breinhap.asafarim.site and igs.asafarim.site, linked from every OS navigation.

    Zusammengeführte Pull Requests: #209, #210, #212, #219, #224, #228, #229

  28. Legal

    Privacy, cookies and terms

    Privacy, cookie and terms pages linked from every OS footer, and a sitemap, share preview and structured data for this page.

    Zusammengeführte Pull Requests: #215, #233

  29. Sign-in part 2

    Continue with Google and access requests

    id.asafarim.site adds Continue with Google next to email codes and passkeys, with redesigned sign-in pages. A new person asks for access to the apps they need, with a note, and an admin approves.

    Zusammengeführte Pull Requests: #201, #235, #245

  30. Audit centre

    An audit centre

    The Admin console shows sign-ins, access decisions and admin changes in one audit centre.

    Zusammengeführte Pull Requests: #248

  31. Flow

    Flow, the workflow app

    flow.asafarim.site, the third built-in app: workflows that run on events, with approval steps a person approves or rejects. Its first workflow has the Docs app draft a GitHub issue and creates it once someone approves.

    Zusammengeführte Pull Requests: #249, #250, #251, #254, #255, #257, #258

  32. Bus in production

    The event bus in production

    NATS joins the production stack, and core-api, Docs and Flow connect to it when it runs.

    Zusammengeführte Pull Requests: #260, #261

  33. Sessions

    One sign-out everywhere

    An app's session ends when the identity session does, and signing out of an app also ends the id.asafarim.site session. A test fails if the two lifetimes drift apart.

    Zusammengeführte Pull Requests: #186, #187, #252, #256

  34. P7.2 part 2

    A deeper manifest review

    Manifest review catches many more mismatches between an app's manifest and its code: secrets, config and permissions declared but never used or used but never declared; routes, health paths and launcher tiles nothing serves; events and schemas that don't line up; database gaps; and names or ports that clash. The CLI's README lists every finding, and a test keeps the list complete.

    Zusammengeführte Pull Requests: #184, #188, #189, #190, #191, #192, #193, #196, #197, #198, #199, #200, #203, #208, #211, #213, #220, #221, #222, #223, #226, #227, #230, #231, #232, #236, #237, #238, #239, #241, #242, #244, #246, #247, #263, #264, #265

  35. Flow slice 2

    The workflow builder and connectors

    Flow gets a visual builder, a new workflow format and the engine that runs it, webhook and GitHub event triggers, six outbound connectors, and an encrypted credential store behind an allow-list of the hosts it may reach.

    Zusammengeführte Pull Requests: #267, #268, #269, #270, #271, #272

  36. Switcher

    A new app switcher

    An icon-only app switcher in every app, one menu open at a time, and a launcher panel that a host page's styles can't break.

    Zusammengeführte Pull Requests: #288, #289, #290, #291, #292, #303

  37. Flow files and AI

    Workflow files and drafts from issues

    Workflows can be exported, printed and imported as files. Flow can also draft a workflow from a GitHub or GitLab issue with Claude: the draft never runs by itself, and every step that sends data out arrives unconfigured.

    Zusammengeführte Pull Requests: #284, #285, #286, #294, #298, #299

  38. Flow hardening

    Flow, hardened

    Pause all stops work already in flight and fails closed. The public webhook endpoint answers unknown and forged calls the same way and limits floods per source, and credentials stay bound to their settings.

    Zusammengeführte Pull Requests: #308, #309, #310

Screenshots

Von Playwright in der End-to-End-Testumgebung aufgenommen, nicht von Hand gezeichnet.

Roadmap

  1. P4

    Events, fertig

    Eine schreibgeschützte Live-Demo von core-api, Admin und Notes, sowie TLS und Operator-Modus für den Event-Bus, jetzt, wo er in Produktion läuft.

  2. P6

    Beobachtbarkeit

    Metriken, Traces und Logs an einem Ort mit Dashboards, Alarmen auf Traces und Metriken und einer öffentlichen Statusübersicht.

  3. P7

    KI-Unterstützung

    KI-Hilfe, wo Textvergleich nicht weit genug sieht: das Manifest einer neuen App entwerfen, eine gründlichere Manifest-Prüfung, semantische Suche in Events und ein schreibgeschützter Copilot in der Admin-Konsole.

  4. Flow slice 3

    Geplante Workflows

    Workflows, die nach Zeitplan starten, und neue Workflows, die zuerst als Probelauf laufen.