How I work
With attentive focus, will, insight, and care. Listening to the problem finding a creative solution, then implementing it with the right tools and the right design.
Emerald
Where what you and an AI worked out goes to stay true — in a file you own.
Did the card charge what the receipt says?
Receipt
Corner Market
29 Jul 2026
Total
Card statement
- 27 Jul Book Nook 60.00
- 29 Jul Corner Market 96.00
- 30 Jul Town Bakery 18.00
total_adds_up failed
receipt.total 84.00 charge.amount 96.00 The receipt says 84.00, the card charged 96.00: off by 12.00, where 0.00 is allowed.
The problem
When you work something out with an AI, what counts as a grocery charge, where a project stands, the answer lands in a chat log, or in a note that was right the day it was written. Change one figure underneath and the conclusion resting on it is quietly wrong, and nothing says so.
AI raised how much we produce, not how sure we can be of it. Spreadsheets and note apps promise order, but none of them tells you when something stopped being true.
What it is
Emerald is the typed middle. You declare a format for anything you want to keep true like a book, a paycheck, a milestone, an idea. It becomes a real table with real types and checks that say when something stops adding up. You fill it by reading a document, by talking to a model, or by hand. It works with AI and without it.
Formats can come in packs: a ledger for your finances, a development pack that gives AI agents a shared memory and a way to hand work to each other, and your own, built on top of them.
Local, and yours
Emerald runs on your machine, with no account and no server, and sends nothing anywhere itself. Your work is a plain file that ordinary tools can open, and you can back it up wherever you like. If the project stopped tomorrow, your data would still be yours.
Built with TypeScript React SQLite Electron MCP
Usuals
Your usual things, kept beside Google Calendar and one drag away from becoming events.
Most weeks are built from the same handful of things: a workout, a call home, deep work, groceries. Usuals keeps them in a sidebar in Google Calendar’s Week and Day views; drag one onto a time slot and it becomes a real event.
- No server
- Items travel through your own Chrome sync; nothing is sent anywhere except Google’s Calendar API.
- Keyboard path
- Everything you can drag, you can also do from the keyboard: pick an item, then a slot.
- Export and import
- Your usuals go out to a file and come back in, since Chrome is the only other place they are kept.
Built with TypeScript React Tailwind CSS Chrome Manifest V3 Google Calendar API
Earlier work
Tetra
2022 to 2024 AndroidAn AI day planner for Android.
Tetra brought tasks, goals and the calendar into one app, with an AI planner arranging the day around them: the month on top, the day’s plan below.
24 Hours
2022 to 2024 AndroidA habit tracker built around a 24-hour dial.
The day is drawn as a dial, with habits and timed activities as arcs around it. I built it alone and shipped it on Google Play in English and Hebrew, where it passed 10,000 downloads: about 22,000 lines of Kotlin over two years of releases.
- Drawn by hand
- The dial and every chart are drawn on a Compose canvas, no chart library.
- Local first
- A Room database on the phone; sign-in is optional, for a Firebase backup.
- Calendar sync
- Each category becomes its own device calendar, kept in step with the habits.
- Structure
- Hilt, a state-and-events model per screen, a nightly WorkManager job.
Built with Kotlin Jetpack Compose Room Hilt Firebase