All posts
·5 min read

Capturing Thoughts Across Platforms

#product#thoughtcatcher

I have this problem where I get ideas at the worst possible times — in the shower, walking to lunch, halfway through reading something else. By the time I get to a note-taking app, half the thought is gone. That's why I built Thoughtcatcher.

The core idea is dead simple: make capturing a thought as fast as possible, then deal with organizing it later. The mobile app opens to a blank input field. The Chrome extension is one click. No folders, no tags at capture time — just get the thought down.

I built the mobile app in Flutter because I wanted it on both iOS and Android without maintaining two codebases. The Chrome extension is vanilla JS — it needed to be lightweight and fast. The backend is Node.js with Supabase for auth and real-time sync.

The AI part came later. I was sitting on hundreds of captured thoughts and realized I had no way to find connections between them. So I added a LangChain pipeline that periodically analyzes your notes and surfaces patterns. It'll say things like 'you've been thinking about X a lot this week' or 'these three thoughts seem related.' Sometimes it's useful, sometimes it's noise.

Funny thing — the Chrome extension ended up being the feature I use most. I didn't plan that. I built the mobile app first, then added the extension almost as an afterthought. But being able to highlight text on any webpage and save it with one click turned out to be the killer use case. Most of my 'thoughts' are actually reactions to things I'm reading.

The Supabase real-time sync was worth the effort. Everything syncs instantly between the app and extension, so there's never a 'where did I save that?' moment. RevenueCat handles the subscription stuff — I didn't want to deal with in-app purchase APIs directly.

If I could go back, I'd build the Chrome extension first. That's where the real usage ended up. But you don't always know that upfront — sometimes you have to build the wrong thing to find the right thing.

Thanks for reading. If this resonated with you, I'd love to hear from you.