5 min read
I just wanted good coffee

I was standing in the middle of a street in Ikebukuro with my baby strapped to my chest. My wife and daughter were browsing the stores. I was on Google Maps, searching for coffee.

I’m sure you’re familiar with this. You tap a pin, read the reviews, scroll through photos trying to figure out if this place actually does filter coffee or it’s just another chain. Then you back out and tap the next one. Phone in one hand, crowds of people walking past you, and the baby getting restless. It’s sensory overload. I just wanted a good cup of coffee.

Why am I doing this every time? I could have done my research beforehand. Sat down before the trip, Googled “best specialty coffee in X”, and made a list. I just didn’t feel like doing homework before a holiday. I do plenty of that at work. Holidays are where I prefer to “see where the wind blows”. Which led me to this predicament.

What I really wanted was a pre-vetted list of specialty coffee places, shown visually on a map. Clean, without the mess of other pins, no noise, no reviews to parse, and most importantly, no rolling the dice on a choice. Just: here are the good ones, pick the closest one to me, and go!

I’d been thinking about my next side project to build with AI and thought, maybe, this was one that I could try and work on.

So where would I start?

I’m no developer, but I knew what I wanted to build. And I had messed around with vibe-coding before. So this project was me prompting my way through it with AI.

I started with the data. There are some good lists and websites out there. The World’s 100 Best Coffee Shops, European Coffee Trip, Sprudge city guides. There were many. My first thought was to build a scraper to pull shop data from these sites automatically. I prompted Claude to build one, and it worked, for a bit. I ran into all sorts of compatibility issues, rate limiting, sites blocking requests. I knew I was out of my depth debugging things I didn’t fully understand.

So I took a different approach. I used ChatGPT’s research capabilities to go through these sources, extract the shop data, populate a spreadsheet for me, and I uploaded it into Supabase. Not elegant at all, but it got the job done.

How would I deliver that information?

My first instinct was to build a Chrome extension that overlaid my curated pins directly onto Google Maps. That would be pretty cool, right? Except Chrome extensions can’t access the Google Maps API on maps.google.com. The markers that I got to appear on the map were lagging as I panned the map. Threw that away and pivoted to a Chrome side panel that listed the shops in a list ordered by distance. It was better, but it felt like I was fighting the platform instead of having it just work.

The final pivot was asking myself, what’s the right way to do this, if time and labor were no object. The answer I landed on was a standalone web app, with Google Maps own Javascript API. Native markers, instant rendering, and works on any phone. No installation needed, just a URL.

What does Distilled do? (I really should have called it Filtered, but I didn’t spend much time thinking about the name till after it was ready)

When you launch it, you see your location, you see pins of vetted coffee shops. Tap on it, you get the name, brew methods, opening hours, and a button that hands you off to Google Maps for navigation. That’s it.

No accounts, no reviews, no social features, no ads. I deliberately kept it simple because the intent was curation. Every shop on the map has been vetted against trusted sources (by me) before it gets there.

I also built a companion Chrome extension for my own use. Whenever I’m reading a coffee article, or watching an Instagram video and spot a promising shop, I open Google Maps, click the extension, and it captures the shop data straight into the database. Pre-vetted before I’m even there.

So the next time I’m standing on a street in a new city with my baby strapped on me, I wouldn’t have to do the whole song and dance again.

What did I take away from this?

Each version of the project taught me something the next version needed. The Chrome extension proved the concept. The side panel clarified the UX. The web app was the final form I landed on.

If you like looking for coffee shops on your travels, go check it out! I’d love to hear what you think.