What it does
- Holds what the assistant is allowed to know about you, in tables you own and edit on your phone
- Learns who you are from an interview rather than a form, so its answers sound like they are for you
- Takes in what you already have, your to-do app, your notes, your journal, without you retyping any of it
Why I built it
An assistant with no data is a chat window. What makes this one worth building is that it knows things. How you slept, what is owed, who has the kids on Thursday, what you decided back in March. All of it has to live somewhere that survives a redeploy.
Most builds fail at this step. The first instruction is usually design a database, and almost nobody knows what tables they want before they have used the thing. So you skip that part entirely and start from a board somebody else has already filled in.
Airtable is the store here, because you edit it on your phone in a queue at the school gate. A database nobody opens by hand stops getting corrected.
Build it
Copy the starter board
Eight tables, already named and typed. Profile is who you are. Brain Context is what you decided and why. Then Projects, Tasks, Daily Habits, Commitments, Goals, and Voice Turns for later.
Open the link, hit Copy base, and it lands in your own Airtable. Nothing to design, nothing to name.
Look through it before moving on. Read the description on each table. You are about to fill it with your life, so it is worth knowing what is in there.
Tell it who you are
This is the step that decides whether the assistant is useful or generic, and it is the one most builds skip.
About twenty questions, one at a time, out loud if you have voice typing. How you work, what you avoid, what a good week looks like, who is in your life. Answer messily. Tidy answers give it less to work with.
What lands in Profile shapes everything the assistant says later. Rush it and the profile stays thin, and so do the answers.
Bring the to-do list you already have
You keep tasks somewhere already. Todoist, Things, Notion, Apple Reminders, a Notes list, a spreadsheet, the back of an envelope you photographed.
Export it. Every one of those tools has an export, and Claude Code will find it with you if you say which one you use. Drop the file in the project folder.
Then it reads the lot and asks you about it, because half of what is in there is dead and only you know which half.
Feed it your notes
Apple Notes, a journal, old documents, a decade of half-thoughts. This is what turns an assistant that knows your schedule into one that knows your reasoning.
Dumping the lot in is the wrong move. A thousand raw notes in a database is a second landfill with better search. What you want is the facts pulled out, each with a date and a link back to where it came from.
There is one safety step that matters. Old notes are full of passwords, card numbers and other people's private business. A second pass reads the results and blocks anything like that before it lands anywhere.
Let the app read your board
Right now your app and your data are two separate things that have never met. This step introduces them.
Everything goes through one function. When something changes later, and it will, you fix it in one file instead of forty.
One detail in here looks fussy and is not. Ask for your columns by their permanent ID rather than their name. Rename a column on your phone and a name-based app breaks silently, with no error and no crash. There is a second detail of the same kind, and it is the next step.
Stop it showing you yesterday
Two lines at the top of every route that talks to your data. Without them the app quietly serves you an old answer.
This one is worth knowing about because of how it fails. There is no error. Nothing crashes. You see last Tuesday's sleep, you log a habit twice, and you spend a day convinced Airtable is broken. It is not.
Add them as a reflex from now on, before you write the handler.
top of every route that reads or writes your data
export const dynamic = "force-dynamic"; export const fetchCache = "force-no-store";
See your own life on screen
One page. Your name from Profile, today's row from Daily Habits, today's commitment. Nothing clever.
This is the moment the build stops being abstract. Something you made, on your own web address, showing you your own week back.
Open it on your phone. That is where you will use it.
Write down the rules so it stops forgetting them
Every new Claude Code session starts fresh. Without notes it will reintroduce the caching bug and the field-name bug you fixed a moment ago, and it will do it confidently.
So you leave it a file at the top of the project. What the app is, where things live, and the rules that are not up for debate. It reads that file at the start of every session.
About eighty lines. It is the shortest job in this guide and the one that pays back most.
Next
Step 4: Give it a voice
Read it →