Inspiration
Journaling tends to fail at two moments: before the first sentence, when a blank page feels like work, and weeks later, when dozens of entries have become a pile rather than a source of understanding. We did not want to build another chatbot with a text box or another dashboard that scores a private life.
We imagined something more intimate: a book that feels present. You can write badly, speak freely, or draw a question from the page. The book listens, asks one thoughtful follow-up, and stops. Then it gathers the conversation into a page worth returning to. Over time, separate pages begin to speak to one another and form a grounded story of the week.
That idea became Asterfold: the living AI diary.
What it does
Asterfold offers four ways to begin: free writing, a reflective prompt, spoken audio, or a question to the diary. After a raw entry, it asks exactly one concise follow-up—not an endless chat—and transforms the exchange into six illuminated sections:
- what happened;
- emotions;
- what may be under the surface;
- bright spots;
- threads still open; and
- one small next step.
The page remains editable, and individual sections can be rewritten while staying grounded in the original entry. Drafts return after a reload. A fourteen-day trail shows writing rhythm without turning reflection into a streak.
The weekly Almanac reads the last seven days together and weaves emotional weather, recurring patterns, bright spots, open threads, and one gentle experiment into a single narrative. Every weekly conclusion links back to its source dates.
The Oracle lets the user ask questions such as “What helped after difficult work?” Asterfold retrieves relevant pages, answers only from that evidence, and cites the exact dates. If the model returns a date that was not supplied, the server rejects it rather than inventing a memory.
How we built it
Asterfold is a Next.js 16 App Router application built with React 19 and strict TypeScript. Daily pages, drafts, and weekly reflections are stored locally in IndexedDB. The browser talks only to server-side AI routes; provider credentials never enter the client bundle.
The competition provider uses the OpenAI Responses API with GPT-5.6. One provider boundary supports reflection, structured daily synthesis, section refinement, weekly synthesis, and grounded memory answers. JSON Schema constrains model responses, Zod validates every result again on the server, and an allowlist validates every cited diary date before the response reaches the page.
The interface is deliberately book-native. Physical edge bookmarks replace application
tabs. AI appears as animated handwritten marginalia. The completion control is a wax
seal, not a send button. Motion creates the opening cover, page turns, and ink reveal while
respecting prefers-reduced-motion. MediaRecorder supports spoken entries, and a service
worker makes the installed PWA and saved pages available offline.
A deterministic mock provider and explicitly fictional demo pages make the complete journey judge-testable without credentials or personal diary data.
How we used Codex and GPT-5.6
GPT-5.6 is the reasoning voice inside the book. It receives a tightly scoped task at each moment: ask one useful question, form a six-part page, read a week, or answer from retrieved memories. Keeping these roles separate made the interaction feel intentional rather than chatty.
Codex was the instrument used to turn the concept into a tested product. It helped create the provider architecture, structured-output schemas, IndexedDB persistence, retrieval and citation checks, PWA behavior, browser tests, and the book's interaction system. We used agent-controlled Browser sessions to test the real production build at desktop and mobile sizes, inspect accessibility and console state, and iterate from observed failures. One manual session exposed a page-turn that could stall when background animation frames were throttled; the implementation was changed and revalidated immediately.
The human contribution remained the product premise, emotional boundaries, taste, feature priorities, synthetic scenarios, and final submission judgment. Codex made the iteration loop dramatically faster, but it did not choose what kind of relationship this diary should have with its keeper.
Challenges we faced
The hardest design problem was restraint. A conversational model naturally wants to keep talking, while reflection often needs one good question and then silence. Limiting the AI to a single follow-up made Asterfold feel more like a perceptive book and less like a chatbot.
Grounded memory was the hardest technical problem. Retrieval alone was not enough; the server also had to prove that every cited date belonged to the supplied evidence. Weekly reflection needed the same protection while still producing language that felt coherent and humane.
The visual challenge was making an enchanted book responsive, accessible, and fast. A two-page desktop spread has to become one readable mobile leaf, keyboard focus must stay visible, saved pages must work offline, and motion must disappear cleanly for people who prefer reduced motion.
What we learned
AI feels most magical when it behaves with discipline. “Living” does not mean constant animation or constant conversation; it means the product notices the right thing, responds at the right moment, and remembers where an insight came from.
We also learned that structure can feel emotional rather than administrative. The same six-section schema that makes the data reliable can become a beautiful ritual when it is revealed as a page instead of presented as a report.
Finally, browser evidence changed the product more than opinion did. Testing real focus, mobile overflow, offline behavior, local persistence, and animation timing caught issues that static design review could not.
What's next
Next we would add an evidence-constellation view that lets a keeper see exactly which sentences shaped an interpretation, richer optional voice rituals, and a “counter-reading” that gently offers another plausible interpretation when a weekly story becomes too certain. The principle will stay the same: the diary may help you notice, but it must never pretend to know your life better than your own pages do.
Built With
- codex
- gpt-5.6
- indexeddb
- json-schema
- mediarecorder-api
- motion
- next.js
- node.js
- openai
- openai-responses-api
- playwright
- pwa
- react
- service-worker
- typescript
- vitest
- zod

Log in or sign up for Devpost to join the conversation.