Life & Lore
A private, local-first journal that grew into a personal "life app" (diary, quotes, places, a library of shows and books), built to last.
Why I built it
I was journaling in Reflection because I wanted somewhere to write down my thoughts. What I was really looking for was more of a diary. But no app, even a paid one, could give me everything I wanted in one place, the way I wanted it: an entry with as many photos as I liked, places that showed up as places instead of raw map links, and room for everything else I’d want to keep later.
So I took the idea and wrote my own, for myself. I kept what I loved about Reflection’s design: the calm feel, the soft gradient backgrounds, and the cards each entry sits on.
One rule shaped everything after that: it must still work in ten years. No build tools that can rot, and every entry is a plain text file I can read without the app.
How it grew
A diary first. Pictures, places, memories. This was the part I enjoyed the most. I had moments from my work life that I kept forgetting: dates, places, people. Now they’re in the diary.

Then quotes. I always wished I had somewhere to keep quotes from people like Steve Jobs and Walt Disney, to come back to and reflect on. So I added quotes, and each one is checked for who really said it, because the internet is full of quotes people never said.
Then a wiki for what I watch. While watching an anime, I wanted to keep track of the names and events in it. Fandom wikis were always a headache, with too many ads and popups. So I built my own reader on top of the same wiki, without the ads. Finding out that this was possible was the second most enjoyable part of the whole project.
Then books, and a knowledge section like a small personal Wikipedia, which came with almost no extra work once the wiki reader worked for any wiki. At that point it was no longer just a journal, so I renamed it Life & Lore.



Last, a feed. It pulls AI news from the labs and the communities around them: model announcements, research, product launches, policy changes. An AI model scores each post on whether it’s worth my time, so I can keep up with the AI industry without reading everything.

All of it in one app on my phone.
How it works, and why
Local first, because a diary has to open instantly. Writing goes to the device first, so an entry saves even with no signal, and then syncs to a small database in the background.
Git as the archive, because I want my entries in plain files I own. Every entry always exists in at least two places, and nothing about my journal depends on the app staying alive.
Problems that taught me something
Platforms have hard ceilings. A single run on Cloudflare can only make so many outbound requests, so a large backup failed halfway. The fix was to split big jobs into small ones that pick up where the last one stopped.
One missing index made deletes crawl. Deleting one item was quietly reading whole tables because a single index was missing. Adding it made the delete near-instant, and now checks catch that kind of slow query before it ships.
“A missing pin is better than a wrong one.” When a map link can’t be pinned exactly, the app leaves it unpinned. The same rule applies to AI: it says “not found” instead of guessing.
Privacy choices
Nothing personal leaves my control: journal text never goes to an AI, nothing private is cached, and the app is locked by default.
Working with Claude
I built this with Claude. I set the rules and decided what to build next. Claude wrote most of the code inside those rules, and I reviewed it. Codex and Devin picked up smaller features alongside. The parts I never handed over were the rules and what the app is for.
Like with my courses, a mistake I caught twice became a rule, so the same kind of bug couldn’t come back.
What I learned
- Build for yourself first. Every section started as something I personally wanted that day. That’s why it kept growing, and why I still use it.
- Prefer a gap to a wrong answer. A missing pin or a “not found” attribution is honest. A confident wrong one quietly ruins trust in everything else.