Zum Inhalt springen
Zurück zu den Projekten
Projekt

Aurelian

MVP

Taegliche stoische Reflexion in unter zwei Minuten - auf den echten Tag bezogen.

Vorschau von Aurelian

Aurelian hilft, den Tag in unter zwei Minuten stoisch auszurichten. Die App verbindet ein persoenliches 12-Wochen-Fokusziel, die wichtigsten Aufgaben des Tages, das aktuelle Energie-Level und gepruefte stoische Zitate zu einer kurzen, konkreten Tagesreflexion. Bewusst nicht noch eine Quote-of-the-Day-App, sondern eine stoische Perspektive auf den echten Tag des Nutzers - ruhig und erwachsen im Ton, ohne Motivationsfloskeln.

Problem

Stoizismus-Apps liefern generische Zitate ohne Bezug zum Alltag, Journal-Apps verlangen zu viel Input und fuehlen sich nach Arbeit an, und KI-Reflexionstools erfinden Zitate - bei philosophischen Quellen zerstoert das die Glaubwuerdigkeit sofort. Ambitionierte Nutzer wollen einen kurzen, praktischen Moment der Klarheit vor dem Tag: keine To-do-Liste, keinen Coach-Ton, keine erfundenen Weisheiten.

Rolle

Alles end-to-end - Produktdefinition und PRD, modulare local-first Architektur, SwiftUI-Frontend, Domaenen- und Anwendungslogik als Swift Package, Kuratierung der geprueften Zitat-Datenbank, den gehaerteten Node-Backend-Endpoint fuer die KI-Generierung sowie Deployment, App-Store-Vorbereitung und Test-Strategie.

Die Lösung

Der Kern ist ein sehr kurzer Daily Loop. Morgens traegt der Nutzer ein bis drei wichtige Dinge ein, ergaenzt optional, was ihn beschaeftigt, und waehlt sein Energie-Level; daraus erzeugt Aurelian eine stoische Perspektive und eine konkrete Tagesregel. Abends folgen zwei bis drei kurze Fragen. Der Output ist strikt strukturiert und die KI waehlt ausschliesslich aus geprueften, lokal bereitgestellten Zitat-Kandidaten.

  • Fixe Output-Struktur: Zitat, Quelle, heutige Perspektive, Kontrollfrage, Tagesregel, Abendfrage - kurz und konkret statt Motivationsrede.
  • Die KI referenziert genau eine Zitat-ID aus den uebergebenen Kandidaten und darf Zitate, Quellen oder Autoren nie erfinden.
  • Morning Check-in in unter zwei Minuten: Prioritaeten, optionaler Freitext, Energie-Level (Niedrig / Normal / Hoch).
  • Abend-Reflexion bewusst kurz: drei Fragen, maximal drei Minuten, kein Analysedruck - lokal gespeichert.
  • Offline-Fallback: ist kein KI-Endpoint konfiguriert oder erreichbar, generiert die App lokal weiter.
Features
  • Minimal-Onboarding (max. 4 Screens)fertig
  • Morning Check-in (Prioritaeten, Freitext, Energie)fertig
  • Strukturierter stoischer Outputfertig
  • Gepruefte Zitat-Datenbank mit Provenienzfertig
  • Abend-Reflexion (drei kurze Fragen)fertig
  • Journal / Verlauf mit Detailansichtfertig
  • Lokale Reminder-Notificationsfertig
  • Offline-Fallback ohne KI-Endpointfertig
  • Remote-Generierung ueber Groq-Endpointfertig
  • Favoriten und editierbares FokuszielV0.2geplant
  • Weekly Review / WochenrueckblickV0.3geplant
  • Paywall, Export (PDF/Markdown), Life WheelV1.0geplant
Architektur

Local-first und modular, mit klaren Grenzen zwischen Produktregeln und technischen Details (UI, Persistenz, Notifications, KI-Provider). Ein plattformunabhaengiges Swift Package ist in fuenf Library-Targets geschnitten (Domain, Application, Content, Infrastructure, Design); die SwiftUI-App komponiert sie. Bevorzugt werden klare Boundaries statt schwerer Abstraktionen.

  • Abhaengigkeitsrichtung: apps/ios -> Application -> Domain; die Domaenenschicht haengt von nichts ab - kein UI, keine Persistenz, kein Netzwerk, kein KI-SDK.
  • Die KI ist ein Adapter hinter dem Application-Contract DailyReflectionGeneratorPort: sie bekommt Nutzerkontext plus Zitat-Kandidaten und liefert strukturierten Output, der genau eine Zitat-ID referenziert.
  • Kern-Ports entkoppeln die Aussenwelt: DailyEntryRepository, FocusGoalRepository, UserPreferencesRepository, QuoteRepository, Clock, IDGenerator.
  • Content -> Domain und Infrastructure -> Content: das gepruefte Zitat-Dataset lebt hinter einem QuoteRepository, nicht verstreut im UI-Code.
  • Die Generierung laeuft ueber einen stateless Node-Endpoint mit serverseitigem Key; faellt er aus, uebernimmt der lokale Fallback ohne Nutzerbruch.
Herausforderungen

Zitat-Halluzinationen verhindern

Problem

Die zentrale Vertrauensfrage: erfindet die KI Zitate, Autoren oder Quellen, zerstoert das bei philosophischen Texten sofort die Glaubwuerdigkeit.

Lösung

Eine gepruefte lokale Datenbank plus eine deterministische QuoteSelectionPolicy uebergibt der KI nur zulaessige Kandidaten. Die KI waehlt genau eine ID aus, erfindet aber nie - Provenienz (Autor, Werk, Referenz) bleibt garantiert echt.

KI klingt generisch

Problem

Standard-Prompts erzeugen austauschbare Motivationssprueche ohne Bezug zum echten Tag des Nutzers.

Lösung

Ein sehr strikter Prompt mit echten Tagesdaten im Kontext und kurzen, konkreten Outputs statt Motivationsreden - eine stoische Perspektive auf genau diesen Tag.

API-Key-Schutz und Kosten

Problem

Direkte In-App-Aufrufe an den LLM-Provider legen den Key offen und machen die Kosten unkontrollierbar.

Lösung

Verlagerung der Generierung auf einen stateless Server-Endpoint mit serverseitigem Key, Fixed-Window Rate-Limiting, begrenzten Retries und genau einem Output pro Nutzer pro Tag.

Testbarkeit trotz iOS-Abhaengigkeiten

Problem

SwiftUI und SwiftData sind schwer isoliert testbar - Produktregeln drohen an das UI-Framework gekettet zu werden.

Lösung

Die modulare, port-basierte Architektur haelt Domaenen- und Anwendungslogik unabhaengig von SwiftUI/SwiftData und damit ueber 26 Test-Dateien in fuenf Test-Targets pruefbar.

Verlauf
  1. 29. April 2026

    Fundament in einem Tag

    Domain-Package, Content-Validierung, Daily-Entry-Regeln, Design-Tokens, erste Application-Use-Cases (Onboarding, Morning Check-in), SwiftData-Repositories und eine SwiftUI-App-Shell mit verdrahtetem Onboarding, Check-in, Journal und Focus.

  2. 30. April - 1. Mai

    Persistenz & Zitat-Policy

    Vertiefte Persistenz, erweitertes Onboarding und Journal-Detail; dann die deterministische Zitat-Selektionspolicy, der Ausbau des Katalogs, die Entscheidung fuer Groq, ein Remote-Reflection-Adapter, der lokale Notification-Scheduler und erste Tests.

  3. 2. Mai

    Endpoint live & E2E

    Stateless Groq-Endpoint implementiert, gehaertet, produktiv deployed und per iOS-E2E validiert; dazu App-Store-Signing, Shell-Assets und die oeffentlichen Marketing-, Datenschutz- und Support-Seiten.

  4. 3. Mai

    Compliance & Feinschliff

    App-Store-Compliance-Antworten, Store-Metadaten-Entwurf, Politur der Accessibility-Texte und Pufferung der Text-Eingaben. Status seither: Client MVP Ready / App Store Release Prep.

Was ich gelernt habe
  • Eine port-basierte, modulare Architektur haelt Produktregeln unabhaengig von SwiftUI und SwiftData testbar - die Domaenenschicht haengt von nichts ab und laesst sich ohne iOS-Simulator pruefen.
  • Zitat-Halluzinationen sind kein Prompt-Problem, sondern ein Architektur-Problem: geloest durch eine deterministische Selektionspolicy, die der KI nur zulaessige Kandidaten uebergibt - die KI waehlt aus, erfindet nie.
  • Die Generierung vom Client auf einen stateless Server-Endpoint zu verlagern, schuetzt den API-Key, deckelt die Kosten (ein Output pro Nutzer pro Tag) und erlaubt trotzdem einen lokalen Offline-Fallback.
  • Text-Input-Latenz auf iOS ist real: eine eigene Untersuchung und Pufferung der Eingaben hat den Heute-Screen fluessig gehalten.