EatWhat app illustration

Product / Telegram Bot

EatWhat — Group Spot Sharing

CategoryPersonal Project
Tech StackPython, Telegram Bot API, PostgreSQL, Nominatim Geocoding
RoleSolo Developer
StatusActive Development

Project description

EatWhat is a Telegram bot for groups to collaboratively save and discover food and activity spots. Add the bot to any Telegram group, reply /save to a message about a spot, and it's saved with location, tag, and auto-detected region. Everyone in the group shares the same spot list.

Designed for couples and friend groups who constantly share restaurant recommendations, cafe finds, and activity ideas in group chats but never have a organized way to revisit them.

Key features

  • Group-based spot sharing — add bot to a Telegram group, done
  • Two-tap save flow: /save → tap tag → tap category → saved
  • Auto-geocoding from message text or Google Maps links
  • Singapore region auto-detection (North, South, East, West, Central, North-East)
  • Category-based descriptions (Japanese, Cafe, Bar, Cinema, etc.)
  • /near — find saved spots near your location
  • /going — find saved spots near a destination
  • /list and /delete with inline buttons
  • Works with Telegram privacy mode — only responds to /commands and inline button taps

Architecture

Python Telegram bot (python-telegram-bot) with PostgreSQL for storage. Nominatim for free geocoding (no API key needed). Google Maps short link resolution for shared location pins. Inline callback queries for all interactions — no reply keyboards, works within Telegram's privacy mode constraints. Spots are scoped per group with a Group model linking Telegram chat IDs to spot collections.

Design decisions

  • Telegram group = EatWhat group (no pairing codes, no manual creation)
  • Category as description (privacy mode blocks free text input, categories give useful context)
  • Two-tap save flow (/save → tap tag → tap category → saved)
  • No web app — all interactions via Telegram bot