Kava - Co-Founder
Kava is a free café map app for iPhone. It remembers what every café was really like (the cup, the seat, the noise) and shows you the ones you haven't tried yet. I co-founded it with Keyon, and we started building it in April 2026. Site -> mykava.app.
What it does
- The map knows where you haven't been. Your city is split into cells, 1 per café. Cafés you've tried fill in, the gaps are the places to try next.
- Rate the cup, the seat and the noise. One line about what mattered is enough.
- No feed, no followers. Your visits stay yours. Works in any city, no account needed.
Hard problems I solved
The $1,200 Google bill. My co-founder and I paid Google $1,200 in 3 weeks with zero users, with rate limiters, caching, deduped crawls and field masks already in place. To map a city we tiled it with search circles, 1 paid call each. 3 mistakes stacked:
- The crawl multiplied itself. A full circle splits into 4 smaller ones, and our 600-call cap counted per crawl, not in total.
- To tell a chain from an indie café in a small town, the app quietly crawled up to 4 neighbouring cities -> 1 small city became ~3,000 paid calls.
- Every fake user in our automated pre-PR tests hit the real Google key.
The fix -> every Google call goes through 1 door (kill switch, call counter, daily budget), a hard spend cap in Google Cloud, and paid APIs tested on a fake key before shipping. A cost regression should fail a test, not arrive as an invoice. Full story on X -> thread. Today the cafés come from Overture Maps (open map data), so the map works on day one before you add anything.
Voronoi polygons will humble you. The map draws 1 cell per café (a Voronoi diagram). Dark wedges that looked like a render bug were cell gaps: in empty areas a cell runs for kilometres, so the thin "street" gap between cells becomes a crack, and 2 cafés at the same point collapse into needles. The fix -> filler seeds to cap cell size and nudge duplicates 25 m apart (post).
Shipping to Apple. 6 days before submission we thought Kava was 90% done. It wasn't. 7 hours a day, 10+ UI rebuilds, and a backend that froze at 300 simulated users. At 2:56 AM Keyon and I hit submit (post). Earlier I learned that daily updates need version bumps and automation behind them -> environment first, features second (post).
Launch plan
2 games. Short game -> Reddit, where people ask for café and study-spot recommendations every day. Long game -> SEO, with a blog that started before the app is even out. The waitlist is at 65+ people (mid-October 2026), up from 55+ on the night we submitted.
Timeline
More in Work
- LOCVM - Full-Stack Developer
- AVATalks - AI Content System (via Riipen)
- Avateq - AI/ML & Full-Stack Engineer
- Independent Developer & AI Consultant
