Arbeitsdokument · internWorking document · internal

Pocket Pascal

Ein Ernährungs-Coach für die Hosentasche. Verhindert schlechte Entscheidungen im Moment — statt Gewohnheiten zu überwachen. A nutrition coach for your pocket. Prevents poor decisions in the moment — instead of monitoring habits.

StandVersion 2026-08-03 AutorenAuthors Steffi + Claude Status Entwurf, Phase 1 offenDraft, Phase 1 open SprachenLanguages DE (primär) / EN

01VisionVision

Was die App ist — und vor allem, was sie nicht ist. What the app is — and more importantly, what it is not.

Pocket Pascal ist eine Entscheidungshilfe für den Moment: „Es ist 16 Uhr, ich habe Hunger, was jetzt?" Die App beantwortet das in wenigen Taps, gestützt auf Pascals Ernährungsbaukasten und den vorhandenen Vorrat. Pocket Pascal is a decision aid for the moment: "It's 4pm, I'm hungry, what now?" The app answers that in a few taps, based on Pascal's building-block system and what's actually in the kitchen.

Das Erfolgskriterium ist ungewöhnlich: Die App soll sich überflüssig machen. Wenn die Daumenregeln verinnerlicht sind, wird sie seltener gebraucht. Das ist gewollt, kein Fehler. The success criterion is unusual: the app should make itself obsolete. Once the rules of thumb are internalised, it gets used less. That's intended, not a flaw.

Nicht-ZieleNon-goals

KernspannungCore tension Flexibilität gegen Struktur. Zu starr → wird umgangen. Zu offen → gibt keine Antwort und wird nicht geöffnet. Jede Funktion muss sich an dieser Achse messen lassen. Flexibility versus structure. Too rigid → gets circumvented. Too open → gives no answer and doesn't get opened. Every feature has to be measured against this axis.

02Nutzer & BedürfnisseUsers & needs

Zwei Personen, zwei sehr unterschiedliche Einstiegspunkte in dieselbe Logik. Two people, two very different entry points into the same logic.

NutzerUser HauptbedürfnisPrimary need Bedient durchServed by
Steffi Repertoire erweitern. Weiß bei manchen Zutaten nicht, was sie damit anfangen soll (z. B. Proteinpulver). Will Neues ausprobieren und eine mentale Rezeptbibliothek aufbauen.Broaden her repertoire. Doesn't know what to do with certain ingredients (e.g. protein powder). Wants to try new things and build a mental recipe library. Rezeptbibliothek, VorschlagsmaschineRecipe library, suggestion engine
David Einkaufen mit richtiger Kategorie-Balance. Braucht (a) ein Gefühl für Lebensmittelkategorien im Laden und (b) Ideen für das, was schon zu Hause ist.Shopping with the right category balance. Needs (a) an intuitive sense for food categories while shopping and (b) ideas for what's already at home. Einkaufshilfe, Knowledge Base, KühlschrankShopping aid, knowledge base, fridge

Beide Bedürfnisse laufen auf dieselbe Datenschicht hinaus: Lebensmittel mit Kategorie, Rezepte als Kombinationen daraus. Der Unterschied liegt nur in der Richtung der Abfrage — „was koche ich aus X?" gegen „was muss ich für die Woche kaufen?". Both needs resolve to the same data layer: foods with a category, recipes as combinations of them. The only difference is the direction of the query — "what do I cook from X?" versus "what do I need to buy for the week?".

03Plate Logic — das RegelwerkPlate logic — the rule set

Der inhaltliche Kern. Stammt aus Pascals Ernährungsbaukasten und Einkaufsguide. The substantive core. Sourced from Pascal's building-block system and shopping guide.

Baukasten-ReihenfolgeBuilding-block sequence

TellerverteilungPlate distribution

TagesstrukturDay structure

4 Mahlzeiten, ca. alle 3–4 Std. Morgens Protein + Obst · mittags ganzer Teller · nachmittags Proteinsnack + Obst/Gemüse · abends ganzer Teller. 2 L Wasser täglich. 4 meals, roughly every 3–4 hours. Morning protein + fruit · midday full plate · afternoon protein snack + fruit/veg · evening full plate. 2 L water daily.

Diese Struktur ist zugleich die Vorschlagslogik: Aus der Uhrzeit folgt der Mahlzeitentyp, aus dem Typ folgt die Zusammensetzung. Kein Rätselraten nötig. This structure doubles as the suggestion logic: time of day determines the meal type, meal type determines the composition. No guesswork needed.

EinkaufsregelShopping rule

Pro Einkauf mindestens 5 Proteinquellen, 5 Obst-/Gemüsesorten, 4 Fettquellen, 4 Kohlenhydratquellen. Bedarf = Tage bis zum nächsten Einkauf × Mahlzeiten pro Tag. Diese Formel ist direkt rechenbar und wird zur Einkaufshilfe. Per shopping trip: at least 5 protein sources, 5 fruit/veg varieties, 4 fat sources, 4 carb sources. Demand = days until next trip × meals per day. This formula is directly computable and becomes the shopping aid.

Daumenregeln (Etikett-Check)Rules of thumb (label check)

04ModuleModules

Sieben Bausteine, nach Phase sortiert. Jeder für sich nutzbar. Seven building blocks, sorted by phase. Each usable on its own.

Knowledge BaseKnowledge base StehtBuilt Phase 1

Teller-Regel und Vorratskammer als Nachschlagewerk: Kategorien aufklappbar, Suche, Punkte-Markierung (empfehlenswert / bewusst genießen), Daumenregeln pro Kategorie. Das Fundament, auf das alle anderen Module zugreifen. Muss auf das strukturierte Datenmodell umgestellt werden.Plate rule and pantry as a reference: collapsible categories, search, dot markers (recommended / enjoy mindfully), rules of thumb per category. The foundation all other modules read from. Needs migrating to the structured data model.

RezeptbibliothekRecipe library Phase 1

Kuratierte Sammlung von Mahlzeiten als Kombinationen aus Baukasten-Zutaten. Jedes Rezept kennt seine Zutaten-IDs, den Mahlzeitentyp und die Tageszeit. Startbestand: die 13 Beispielmahlzeiten aus der Ernährungscheckliste, danach schrittweise erweitert. Ohne diese Schicht kann die Vorschlagsmaschine nur die Tellerverteilung wiederholen.A curated collection of meals as combinations of building-block ingredients. Each recipe knows its ingredient IDs, meal type and time of day. Seed: the 13 example meals from the nutrition checklist, expanded gradually. Without this layer the suggestion engine can only repeat the plate ratio.

VorschlagsmaschineSuggestion engine Phase 1

„Was esse ich jetzt?" Ein Tap. Uhrzeit bestimmt den Vorschlag (halbe oder ganze Mahlzeit), manuelle Umschaltung bleibt möglich. Zieht passende Rezepte aus der Bibliothek. Rein regelbasiert, keine KI nötig. Später filterbar nach Kühlschrankinhalt."What do I eat now?" One tap. Time of day drives the suggestion (half or full meal), with manual override. Pulls matching recipes from the library. Purely rule-based, no AI needed. Later filterable by fridge contents.

Teller-BuilderPlate builder StehtBuilt Phase 1

Pro Kategorie (Protein, Fett, Kohlenhydrat, Obst/Gemüse) beliebig viele Lebensmittel als Chips antippen — die App bewertet die Kombination gegen die Baukasten-Regeln und die Pick/Caution-Markierungen: guter Teller, guter Snack, oder was fehlt. Kein Backend nötig, reine Client-Logik auf dem bestehenden Datenmodell. Übersetzt die Vorratskammer direkt in gefühltes Wissen — trifft die Vision „App macht sich überflüssig" am direktesten.Tap any number of foods per category (protein, fat, carb, veg/fruit) as chips — the app evaluates the combination against the building-block rules and the pick/caution tags: good plate, good snack, or what's missing. No backend needed, pure client-side logic on the existing data model. Translates the pantry straight into felt intuition — hits the "app makes itself obsolete" vision most directly.

Teller-Builder — Analyse-LayerPlate builder — analysis layer Phase 2

Baut auf dem Teller-Builder auf, sobald Mengen dazukommen. Vier Parameter: Kalorien (Summe aus Mengen × Nährwert), Makros (Protein/Fett/KH gegen Baukasten-Zielwerte), Vielfalt (abgedeckte Vitamine/Mineralien je Teller, später auch über die Woche), Zucker (Tagesbudget-Regel aus dem Zucker-Guide). Mengen bekommen einen Vorschlagswert aus den Baukasten-Standardmengen (30 g Protein, 15 g Fett, 75 g KH, 100 g Obst/200 g Gemüse), editierbar. Ausgewählte Kombination als Favorit speichern — landet direkt in der Rezeptbibliothek, keine zweite Datenstruktur nötig. Voraussetzung: alle Lebensmittel auf eine einheitliche Basis (pro 100 g) normalisieren — aktuell sind Snacks pro Portion, der Rest pro 100 g angegeben.Builds on the plate builder once quantities are added. Four parameters: calories (sum of quantity × nutrition value), macros (protein/fat/carbs against building-block targets), variety (vitamins/minerals covered per plate, later across the week too), sugar (daily-budget rule from the sugar guide). Quantities get a suggested value from the building-block defaults (30 g protein, 15 g fat, 75 g carbs, 100 g fruit/200 g veg), editable. Save a combination as a favourite — it lands straight in the recipe library, no second data structure needed. Prerequisite: normalise all foods onto one basis (per 100 g) — currently snacks are per serving, everything else per 100 g.

Settings Phase 1

Sprachumschaltung DE/EN, gespeichert. Später: Mahlzeiten pro Tag, Einkaufsrhythmus, Kalorienrichtwert für das Zuckerbudget.Language switch DE/EN, persisted. Later: meals per day, shopping rhythm, calorie reference for the sugar budget.

EinkaufshilfeShopping aid Phase 2

Rechnet aus Einkaufsrhythmus und Mahlzeitenzahl den Bedarf je Kategorie und schlägt eine ausgewogene Liste vor. Abhakbar im Laden. Bedient primär David.Calculates per-category demand from shopping rhythm and meal count, then proposes a balanced list. Checkable in the shop. Primarily serves David.

Virtueller KühlschrankVirtual fridge Phase 2

Erfasst, was da ist; bucht Zutaten ab, wenn gekocht wurde. Ermöglicht „was kann ich jetzt kochen?" und hilft, angebrochene Packungen über mehrere Tage aufzubrauchen (z. B. eine Dose Bohnen). Braucht Persistenz — technisch die erste echte Hürde. Später: speist die Chip-Auswahl im Teller-Builder direkt aus dem Bestand statt aus der ganzen Vorratskammer — dieselbe Bewertungslogik, andere Datenquelle.Records what's available; deducts ingredients once a meal is cooked. Enables "what can I make right now?" and helps use up opened items across several days (e.g. a can of beans). Requires persistence — the first real technical hurdle. Later: feeds the plate builder's chip choices straight from stock instead of the whole pantry — same scoring logic, different data source.

WunschlisteWishlist Phase 2

Merkliste für Dinge, die in die Vorratskammer sollen, aber gerade fehlen — Bindeglied zwischen Kühlschrank und Einkaufsliste. Ohne eigene Logik: Einträge landen automatisch auf der nächsten Einkaufsliste.A running list of things that should be in the pantry but currently aren't — the link between the fridge and the shopping list. No logic of its own: entries land on the next shopping list automatically.

Konversationelle ManagerConversational managers Phase 3

Kühlschrank-Manager und Wochenplaner mit natürlicher Sprache („hab noch Spinat und Feta, was geht?"). Die einzige Stelle, an der Chat sinnvoll ist — weil die Eingabe zu vielfältig für Buttons wird. Braucht Backend.Fridge manager and weekly planner with natural language ("got spinach and feta left, what works?"). The only place chat makes sense — because input becomes too varied for buttons. Requires a backend.

Zusammenspiel der Module — der KreislaufHow the modules interlock — the loop

Aus dem FigJam-Board: Die Module sind kein loses Set, sie bilden einen geschlossenen Kreislauf. Jeder Schritt füttert den nächsten, der letzte Schritt füttert wieder den ersten. From the FigJam board: the modules aren't a loose set — they form a closed loop. Each step feeds the next, and the last step feeds back into the first.

Kühlschrankkennt BestandFridgeknows stock
EinkaufslisteShopping list
Wochenplanmit Einkaufsliste verknüpftMeal planlinked to shopping list
RezeptvorschlägeRecipe suggestions
„Hab Hunger, was jetzt?""Hungry now, what's next?"
Die Antwort verbraucht Zutaten aus dem Bestand — und schreibt zurück in den Kühlschrank. Der Kreis schließt sich.The answer consumes ingredients from stock — and writes back into the fridge. The loop closes.
Die Knowledge Base (Teller-Regel, Vorratskammer, Daumenregeln) liegt unter jedem einzelnen Schritt — jedes Modul liest daraus, statt eigene Regeln mitzubringen.The knowledge base (plate rule, pantry, rules of thumb) underlies every single step — each module reads from it instead of carrying its own rules.
Konsequenz für die RoadmapConsequence for the roadmap Kühlschrank (Phase 2) ist der Dreh- und Angelpunkt des Kreislaufs, nicht nur ein Feature unter anderen. Einkaufshilfe und Vorschlagsmaschine bekommen ihren vollen Wert erst, wenn er steht. Phase 1 liefert die Module isoliert nutzbar vor — der Kreislauf selbst ist Phase 2. The fridge (Phase 2) is the pivot of the loop, not just one feature among others. The shopping aid and suggestion engine only reach their full value once it exists. Phase 1 ships the modules usable in isolation — the loop itself is Phase 2.

05ArchitekturArchitecture

Entscheidungen, die jetzt getroffen werden müssen, weil sie später teuer sind. Decisions that must be made now because they get expensive later.

Datenmodell: strukturiert statt Anzeige-StringsData model: structured, not display strings

Der aktuelle Prototyp speichert fertige Anzeigetexte. Das blockiert sowohl Zweisprachigkeit als auch jede Rechenfunktion. Neue Form: The current prototype stores ready-made display text. That blocks both bilingualism and any computation. New shape:

// Lebensmittel / food item
{ id: 'chicken_breast',
  cat: 'protein',
  name:   { de: 'Hühnerbrust', en: 'Chicken breast' },
  kcal:   111,
  protein: 24,
  tag:    'pick' }          // 'pick' | 'caution' | null

// Rezept / recipe
{ id: 'eggs_cottage_cucumber',
  name:  { de: '3 Eier + Hüttenkäse + Gurke', en: '3 eggs + cottage cheese + cucumber' },
  type:  'full',            // 'full' | 'half'
  times: ['midday','evening'],
  uses:  ['egg','cottage_cheese','cucumber','lentil_waffle'] }

Damit wird alles möglich: Übersetzen (name[lang]), Rechnen (Einkaufsmengen), Filtern (welches Rezept passt zum Vorrat), Verknüpfen (Rezept ↔ Zutat ↔ Kategorie). This unlocks everything: translation (name[lang]), computation (shopping quantities), filtering (which recipe fits the stock), linking (recipe ↔ ingredient ↔ category).

Jetzt umstellenMigrate now Der Datensatz umfasst aktuell rund 70 Einträge. Bei 300 wird der Umbau zur Tagesaufgabe. Der Refactor gehört an den Anfang von Phase 1, nicht ans Ende. The dataset currently holds around 70 entries. At 300 the migration becomes a full day's work. The refactor belongs at the start of Phase 1, not the end.

PortabilitätPortability

Ziel ist der spätere Umzug auf echtes Hosting. Damit das kein Neubau wird, gilt ab sofort: Daten, Logik und Darstellung strikt getrennt. Die Datenschicht bleibt reines JavaScript ohne DOM-Bezug — sie lässt sich unverändert in ein Repo übernehmen. Keine Abhängigkeit von Artifact-spezifischen APIs im Kern. The goal is an eventual move to real hosting. To keep that from becoming a rebuild, from now on: strictly separate data, logic and presentation. The data layer stays plain JavaScript with no DOM references — it can move into a repo untouched. No dependency on Artifact-specific APIs in the core.

FähigkeitCapability Artifact Eigenes HostingOwn hosting
Nachschlagen, Rechnen, VorschlägeReference, computation, suggestions
Home-Bildschirm-IconHome screen iconüber Safari „Teilen"via Safari "Share"
Zustand speichern (Kühlschrank, Sprache)Persisted state (fridge, language)ungeprüftunverified
Offline-NutzungOffline use
Konversationelle ModuleConversational modules
Sync zwischen zwei NutzernSync between two users

ZweisprachigkeitBilingualism

DE ist die primäre Arbeitssprache, EN die allgemeine Vorlage. Umsetzung nicht mehr über doppelte HTML-Blöcke wie bisher, sondern über ein t()-Lookup gegen das Datenmodell — sonst wächst jede Seite doppelt. UI-Texte kommen in ein eigenes Wörterbuch. DE is the primary working language, EN the general template. No longer implemented via duplicated HTML blocks, but through a t() lookup against the data model — otherwise every page doubles in size. UI strings move into their own dictionary.

06Roadmap

Phase 1 muss allein stehen können. Erst wenn sie im Alltag benutzt wird, kommt Phase 2. Phase 1 has to stand on its own. Phase 2 only follows once Phase 1 is actually used day to day.

Phase 1 — FundamentPhase 1 — foundation

Phase 2 — Zustand & EinkaufPhase 2 — state & shopping

Phase 3 — Agentische ModulePhase 3 — agentic modules

07Offene FragenOpen questions

Zu klären, bevor die jeweilige Phase startet. To be resolved before the respective phase starts.

  1. Speichert localStorage im Artifact-iframe zuverlässig? Im normalen Browser bestätigt (Sprache übersteht Reload), im claude.ai-iframe selbst noch nicht getestet. App zeigt in den Settings ehrlich an, ob's geklappt hat. Does localStorage persist reliably inside the Artifact iframe? Confirmed in a normal browser (language survives reload), not yet verified inside the claude.ai iframe itself. The app's settings screen honestly reports whether it worked. Steffi · auf dem iPhone prüfenSteffi · verify on iPhone
  2. Woher kommen neue Rezepte? Von Claude vorgeschlagen und von dir freigegeben, oder sammelst du selbst? Empfehlung: Claude schlägt vor, du kuratierst — sonst wächst die Bibliothek nicht. Where do new recipes come from? Proposed by Claude and approved by you, or collected yourself? Recommendation: Claude proposes, you curate — otherwise the library won't grow. Steffi
  3. Wie viele Rezepte braucht ein sinnvoller Start? Vorschlag: 30–40, verteilt über die vier Tageszeiten. How many recipes make a viable start? Proposal: 30–40, spread across the four times of day. Steffi
  4. Bekommt David eine eigene Instanz oder eine geteilte? Betrifft die Datenhaltung ab Phase 2. Does David get his own instance or a shared one? Affects data handling from Phase 2 onwards. Steffi
  5. Wohin beim Hosting — GitHub Pages, Vercel, eigene Domain? Entscheidet über Aufwand und Sync-Möglichkeiten. Where to host — GitHub Pages, Vercel, own domain? Determines effort and sync options. Steffi · vor Phase 2Steffi · before Phase 2
  6. Genügen gerundete Nährwerte? Die App ist keine medizinische Anwendung; PCOS und Prädiabetes gehören ins Coaching, nicht in eine App-Logik. Are rounded nutritional values sufficient? The app is not a medical tool; PCOS and prediabetes belong in the coaching, not in app logic. Steffi
  7. Lohnt sich eine Food-Database-API statt manueller Pflege? Open Food Facts (kostenlos, kein Key, gut für verpackte Produkte/Barcodes) vs. USDA FoodData Central (kostenlos, Key nötig, sehr genau für Grundzutaten, aber Englisch/US-zentriert) vs. Edamam (bester Rezept-Nährwert-Abgleich, aber Freemium mit Kontingent). Widerspricht evtl. dem Nicht-Ziel „kuratiert statt vollständig" — Integration würde eher die Vorratskammer ergänzen (Nährwerte nachschlagen), nicht ersetzen. Does a food-database API pay off over manual upkeep? Open Food Facts (free, no key, good for packaged products/barcodes) vs. USDA FoodData Central (free, needs a key, very accurate for base ingredients, but English/US-centric) vs. Edamam (best recipe-nutrition matching, but freemium with quota). May cut against the non-goal "curated, not exhaustive" — integration would more likely supplement the pantry (nutrition lookup) than replace it. Steffi · vor Phase 2Steffi · before Phase 2
  8. Wer treibt das UI-Redesign und wann im Prozess? Du bist UX-Designerin — heißt vermutlich: du lieferst Richtung/Mockups, Claude setzt um. Zeitpunkt: jetzt parallel zu Phase 1, oder erst wenn Funktionsumfang steht? Who drives the UI redesign and at what point in the process? You're the UX designer — likely means: you supply direction/mockups, Claude implements. Timing: now, in parallel with Phase 1, or only once the feature set is settled? Steffi
  9. Teller-Builder: Was genau macht eine Kombination „gut"? Vorschlag: alle 4 Kategorien besetzt = vollständig; enthält „pick"-Markierung = Bonus; enthält „caution" = Hinweis statt Fehler (nichts ist verboten). Genaue Bewertungsstufen und Formulierung sind UX-Entscheidung. Plate builder: what exactly makes a combination "good"? Proposal: all 4 categories filled = complete; contains a "pick" tag = bonus; contains a "caution" tag = a note, not an error (nothing is forbidden). Exact scoring tiers and wording are a UX call. Steffi
  10. Wie werden Mengen eingegeben — Stepper, Slider oder Zahlenfeld pro Chip? Vorschlag: Baukasten-Standardmenge vorausgefüllt, direkt editierbar. UX-Entscheidung. How are quantities entered — stepper, slider, or number field per chip? Proposal: pre-filled with the building-block default, directly editable. A UX call. Steffi
  11. Vielfalt über die Woche messen — braucht Verlauf gespeicherter Teller, nicht nur den aktuellen. Erst sinnvoll, sobald Favoriten/Historie existieren (Phase 2). Measuring variety across the week needs a history of saved plates, not just the current one. Only makes sense once favourites/history exist (Phase 2). Steffi · vor UmsetzungSteffi · before implementation
  12. Magic Button „Was esse ich jetzt?" — Konzept noch nicht ausgearbeitet. Braucht: Eingaben (Zeit, evtl. Kühlschrankinhalt, evtl. Stimmung/Zeitdruck), Ausgabelogik (ein Vorschlag vs. 3 Optionen), Verhalten bei „passt nicht" (neu würfeln? Filter?). Gehört zur Vorschlagsmaschine (Modul, Abschnitt 4), aber die Interaktion selbst ist UX-Arbeit. Magic Button "What can I eat now?" — concept not yet worked out. Needs: inputs (time, maybe fridge contents, maybe mood/time pressure), output logic (one suggestion vs. 3 options), behaviour on "doesn't fit" (reroll? filter?). Belongs to the suggestion engine (module, section 4), but the interaction itself is UX work. Steffi + Claude gemeinsamSteffi + Claude together
Rechtlicher HinweisLegal note Zucker-Guide und Einkaufsguide tragen den Vermerk „Weitergabe ohne Genehmigung ist nicht gestattet". Die App baut inhaltlich auf diesem Material auf. Für den privaten Gebrauch unproblematisch — vor jeder Weitergabe, Veröffentlichung oder Nutzung durch David mit Pascal klären. Gleiches gilt für den Namen „Pocket Pascal". The sugar guide and shopping guide carry the notice "distribution without permission is not permitted". The app builds on this material. Unproblematic for private use — clear it with Pascal before any sharing, publication, or use by David. The same applies to the name "Pocket Pascal".

08EntscheidungslogDecision log

Getroffene Festlegungen, damit sie nicht neu verhandelt werden. Settled decisions, so they don't get re-litigated.

DatumDate EntscheidungDecision BegründungRationale
2026-08-03 Alle Artefakte zweisprachig, DE primärAll artefacts bilingual, DE primary DE zum eigenen Anpassen, EN als allgemeine VorlageDE for personal editing, EN as the general template
2026-08-03 Buttons statt Chat als StandardButtons over chat by default Offene Konversation kostet im Hunger-Moment zu viel ZeitOpen conversation costs too much time in a moment of hunger
2026-08-03 Später eigenes Hosting, portable Architektur ab jetztOwn hosting later, portable architecture from now Kühlschrank und AI-Module sind im Artifact nicht umsetzbarFridge and AI modules aren't feasible inside an Artifact
2026-08-03 Datenmodell strukturiert statt Anzeige-StringsStructured data model instead of display strings Voraussetzung für Übersetzung, Rechnen und FilternPrerequisite for translation, computation and filtering
2026-08-03 App nur hell, Dokumente hell/dunkelApp light only, documents light/dark Küchennutzung bei Tageslicht, Druckvorlagen brauchen WeißKitchen use in daylight, print masters need white
2026-08-03 Phase 1 = Knowledge Base + Rezeptbibliothek + VorschlagPhase 1 = knowledge base + recipe library + suggestion Bedient Steffis Kernbedürfnis, ohne Persistenz auszukommenServes Steffi's core need without requiring persistence
2026-08-03 Testen/Aktualisieren: Artifact-Link direkt auf dem iPhone öffnen, kein Neu-Hinzufügen zum Home-Bildschirm nötigTesting/updating: open the Artifact link directly on the iPhone, no need to re-add to the home screen Ohne Service Worker cacht iOS nichts offline — jeder Aufruf lädt die zuletzt veröffentlichte Version live nach; das Home-Bildschirm-Icon zeigt also automatisch den neuesten StandWithout a service worker, iOS caches nothing offline — every open fetches the latest published version live, so the home-screen icon automatically shows the newest state
2026-08-03 Web/PWA statt native iOS-App (kein Swift/Cursor)Web/PWA instead of a native iOS app (no Swift/Cursor) Nur 2 Nutzer (Steffi + David); bestehendes Datenmodell/Logik direkt weiterverwendbar statt Neustart der Codebasis; kein App-Store-Aufwand nötigOnly 2 users (Steffi + David); existing data model/logic carries over directly instead of a codebase restart; no App Store overhead needed