Start · Devlog

Tag 1 · Freitag, 5. Juni 2026

Freitag, 2026-06-05 — Tag 1

Spieler-Sicht

notiz ist da. An einem Abend von der ersten Zeile bis live im Netz: notiz.mana.how — eine Notiz-App, die dir gehört.

Was du ab heute kannst:

  • Schreiben, ohne Konto. Du öffnest die App und legst los. Deine Notizen liegen verschlüsselt bei dir, nicht auf einem fremden Server. Niemand kann sie lesen — auch wir nicht.
  • Markdown-Editor mit Suche, Tags und Anheften (Pin), damit Wichtiges oben bleibt.
  • Papierkorb — gelöschte Notizen sind nicht sofort weg, du kannst sie zurückholen.
  • Anmelden, wenn du willst. Mit deinem mana-Konto synchronisieren sich deine Notizen verschlüsselt über mehrere Geräte. Ohne Anmeldung bleibt alles rein lokal.
  • Echter Im- und Export. Deine Texte gehen verlustfrei rein und raus — kein Lock-in, alles bleibt deins.
  • KI nur auf Wunsch. Komplett optional und standardmäßig aus. Wenn du sie einschaltest, entscheidest du.

Deine Notizen, verschlüsselt und bei dir.

Macher-Sicht

Greenfield-Tag: von der leeren Wiese bis zur live deployten App in einer Sitzung, sieben Phasen am Stück.

Phase 0+1 — Domäne zuerst. notiz-core: reine TS-Domäne mit dem Note-Aggregat, Events und dem zeichen-basierten Text-CRDT. Bewusst ohne @mana/*- oder Netz-Deps, damit die Merge-Logik offline per vitest beweisbar bleibt. Darüber der SvelteKit-2/Svelte-5-Web-Stub (runes-only, adapter-node, Muster kollekta/avatar).

Phase 2 — UI. Design-Identität, Markdown-Editor, Suche/Tags/Pin, Papierkorb.

Phase 3a/3b — Event-Sourcing + Sync. notiz-Schema als event-sourced AppDefinition, core-Refactor; dann Login via OIDC-BFF (@mana/shared-auth-sso) und echtes E2E-Cross-Device-Sync über @mana/event-sync gegen sync2. Die Invariante steht: der Server merged nie — Konfliktauflösung passiert clientseitig im CRDT auf entschlüsseltem Inhalt.

Phase 4 — Portabilität. Verlustfreier Markdown-Im/Export plus Sanitisierung. USP, kein versteckter Menüpunkt.

Phase 5 — KI optional. Opt-in, lokal + BYOK, Default aus.

Phase 7 — Deploy. Erst eigenes Dockerfile/compose/deploy.sh, dann auf das avatar-Muster umgestellt (BuildKit-Secret + rsync statt git-Deploy). Um 00:12 stand notiz.mana.how live und war als notiz-web bei mana-auth registriert.

Trade-off des Abends: kein eigenes Backend/Postgres im MVP — lokal-first gegen die geteilte Sync-Infra, server-authoritative wäre der falsche Schnitt für eine E2E-App.

Stats

9
Commits
+6035/-476
Zeilen
68
Files
1.4 h
Aktiv
Erster Commit
20:10 (Freitag)
Letzter Commit
22:12
Spannweite
2.0 Stunden
Aktiv (ohne Pausen > 30min)
1.4 Stunden
Pausen
1
Längster Fokus
1.1 Stunden

Wo wurde gearbeitet

  • 18% apps/web/src/routes
  • 13% apps/web/src/lib
  • 7% STATUS.md
  • 7% packages/notiz-core/src
  • 6% pnpm-lock.yaml

Commits (9)

Volle Liste aufklappen
  • f68e98d Phasen 0+1: notiz-core (Text-CRDT) + SvelteKit-Web-Stub
  • ecb3232 Phase 2: Design-Identität, Editor, Suche/Tags/Pin, Papierkorb
  • c6d6f61 Phase 3a: notiz-Schema (Event-Sourced AppDefinition) + core-Refactor
  • 296d079 Phase 3b: Login (OIDC-BFF) + echtes E2E-Sync via @mana/event-sync
  • 83fb713 Phase 4: Im-/Export (echte Portabilität) + Markdown-Sanitisierung
  • a916d53 Phase 5: optionale KI (opt-in, lokal + BYOK)
  • e11763f Phase 7 (Deploy-Infra): Dockerfile + compose + deploy.sh
  • 3deb4fa Deploy-Infra auf avatar-Muster umgestellt (BuildKit-Secret + rsync)
  • ffe7a6d STATUS: notiz.mana.how LIVE (deployed + mana-auth notiz-web registriert)
Geschrieben mit Claude — Hand veredelt