I have always struggled with logging and cataloguing my life, the things I do, the people I connect with, the reasons that I connected with them, the projects that I start, the ideas that are there, everything. I have tried MANY times and there is a graveyard of attempts. Some of the attempts were:
- Multiple Google Drives with many started documents that have not gone anywhere
- Multiple Google Keeps with things and notes that have gone nowhere
- WhatsApp DMs to myself, which were lost during migration or still sit unused in my whatsapp
- A bunch of Notion docs and paper docs and a few other attempts that are just lying around and they never got catalogued
The pattern is simple, repeated and observable. The logging got started due to a trigger, life happened and then they got dropped.
Further, there were things like tracking things like:
- my wellness
- my sleep
- my food
- my meals
And the people parts of it:
- who are the people
- what are the promises made
- what are the birthdays
- all of these things
On top of all of it abstractions like ideas, epiphanies, emotions, etc. are lost more often than not. I just want to frictionlessly store it, like just put it in a journal. And things that are in the journal, like I had a great day with friends where we did a lot of running and playing should update the other more objective databases like food, the sports and the catching up with friends. Logging in a journal AND cataloguing all these tiny aspects is almost impossible as of now. Fetching any detail a few months later is literally impossible.
I've tried many times and failed many times. With the ease of database management within Notion, the abilities of Claude and simple tooling like Telegram, I felt like it can be done. So… I gave it a shot.
What did I build so far? The loop end to end.
So far, I've built a very straightforward personal assistant system which does only two jobs: cataloging and querying.
I text it on Telegram or Claude like I'd text a friend. Things like "watched Fall Guy, loved it" or "what are my open tasks?" That message gets saved, word for word, into a single inbox. Nothing is changed or interpreted at this stage; it's just safely written down.
Then the assistant picks it up and asks one question: am I telling it something, or asking it something? If I'm telling it something ("had a great workout today"), it files that into the right places: my journal, my contacts, my health log, all the places where these details belong. If I'm asking something ("I want to help a friend trying to do community building, who should I connect them with?"), it looks through my saved information, works out the answer, and texts it back to me.
That's the whole thing: I talk, it either learns new things or recalls from old ones, and it replies right in my chat window.
Major decisions and reasoning for V0
There are 3 major decisions made so far:
- Notion as the database
- Dumb edges, smart middle
- Rules for database live in database
Let me walk you through each decision:
Notion as the database
Notion is solid with its APIs and endpoints for all software tools, AI tools as well as human eyes. I use it as a database and it gives me a clear front-end + UI. This removed my burden of creating a front-end and a layer of UI. I can focus completely on the value addition. If and when it becomes too heavy, I’ll download the data and turn it to a database. But based on back of the envelope calculation, the heaviness won’t happen for years.
Dumb edges, smart middle
The input and output layers, or what we call the edges of the product, are NOT touching AI. It is purely software. When I text Telegram, it dumps the whole thing into my Notion untouched.
The AI layer picks things from the inbox, process and place relevant replies to the outbox. That's it.
The dumb layer takes the things from the outbox and shows them to me on my Telegram.
You text the bot
→ dumb receiver writes it verbatim to the Inbox
→ AI agent reads the new Inbox row
→ reads the schema page (what databases exist, what the rules are)
→ decides: is this something to LOG, or a QUESTION to answer?
→ LOG: file it into the right database(s), per the rules
→ QUERY: read the data, compose answer, queue for reply in new Outbox row
→ dumb sender delivers the reply from Outbox to your chatTwo clean hand-offs (Inbox in, Outbox out), each a simple "dead-drop" between independent programs. Nothing is tightly coupled. Any piece can be down or rebuilt without taking the others with it.
This ensures that there is a clear, unmutated source of truth always available.
It currently helps me identify issues, verify from the source of truth and allows me to rebuild the full system again when I need to.
Rules for database live in database
The rules for AI actually live inside Notion and not in the Python scripts in my computer. That is something that I did because it allows me to easily modify the rules without affecting the program. Essentially, how my data is being catalogued is something that I can very easily see within my Notion rather than having to blindly trust the program. Effectively making the whole system transparent from within Notion.
This also allows me to make infinite touchpoints like WhatsApp, Telegram, Gmail etc without having to worry about the intelligence dropping.
Another major advantage is that someone can easily clone this system with their own structure.
The moment it clicked for me
I started building it from inside Claude Chat. And it worked there. But it felt like it’s still Claude. It felt like my system when I went away from the system, opened Telegram on my phone the next day and it worked right inside Telegram.
Why it matters + directions I'm excited about
I am building this for myself as a side project. But it’s also useful for anyone trying to optimize and improve their lives using AI. I believe that a lot of the systems can be built with basic journaling, cataloguing and tracking systems in place.
I think right now there are a few things that I'm excited about:
- Proactive agents: I will soon make simple proactive agents responsible for checking in with me. For example, if I've not logged workouts for multiple days, or if I've logged bad food for multiple days, they can just come back and nudge me: "Hey you've been eating bad food for a while.” Or “You’ve been ignoring your health. Just be mindful.” “These are some of the things you can get done while you’re here” etc.
- More touchpoints: I’ll make it a bit more robust and available on different touchpoints for myself. Right now it's only on Telegram. I want to be able to use it on WhatsApp as well.
- Rich data input: I want to be able to catalog images and videos as well. This is something that I've wanted for a while. I’ve gone on so many trips and have great memories but those things never got cataloged. The photos are there clearly but the stories have been getting blurry over time. And I don’t like that. I think I can simply build a system where when I am showing a memory from a day, I can just talk about it, and it’ll get captured with all the things I said about that moment.
There are a bunch of directions that I want to build in. This is strictly a side project but a very exciting one. In case you want to build your own, here are some core rules. Tell me what you learn!
Appendix: Build your own: the rules that matter
1. ONE INBOX, raw + first
→ every message lands here verbatim before anything else. This is your source of truth.
2. DUMB EDGES, SMART MIDDLE
→ receiving + sending = plain software, no AI. AI only decides + files in the middle.
3. AI NEVER REWRITES YOUR WORDS
→ it tags, routes, summarizes-to-a-side-field. Your original text is stored exactly as written.
4. RULES LIVE IN YOUR DB, NOT YOUR CODE
→ routing logic sits in a doc the AI reads at runtime. Change behavior by editing the doc.
5. ONE THING YOU WROTE = ONE ENTRY
→ never split or merge what you sent. Integrity over neatness.
6. PUT IT WHERE YOU ALREADY ARE
→ the unlock isn't the AI, it's living inside the chat app you already use all day.
→ Get these six right. Build the rest however you like.
— Ankur Goel
I am brewing a few experiments. I might do some interesting things soon. You can reach me at:
You can check out another blog I wrote at:
Pi0.7: utilizing bad data to teach good things
Design, Launches and Doing it right
When AI hallucinates what it sees: notes from a robotics sim