MakanMap SG
Try it live at makan-map-sg.vercel.app
What is MakanMap?
Singapore’s hawker culture is a UNESCO-recognised heritage — over 100 government-managed centres, thousands of stalls, and decades of food history. But finding the right hawker centre for your craving, checking if it’s near an MRT, or knowing what stalls are actually good? That usually means scrolling through multiple apps.
MakanMap SG pulls together open government data, Google Places reviews, and an LLM to give you one single place for that.
Features
Browse all 129 hawker centres with search and MRT-proximity filtering. Each centre has a dedicated detail page showing its stalls, community reviews, and Google reviews.
Nearest MRT is auto-calculated from LTA station exit data — no third-party API calls needed at runtime.
AI Recommendations — tell it what you’re craving, and it returns specific hawker centres with quoted Google reviews supporting each pick. The pipeline embeds your query, does a vector search over real review data, and passes the most relevant results to an LLM for a grounded, citation-backed answer. No hallucinations.
How it Works
The AI recommendation pipeline works in five steps:
- Embed your prompt using OpenAI
text-embedding-3-small - Filter centres within 5km using Haversine distance
- Vector search over review embeddings stored in pgvector
- Build LLM context from the top 20 semantically relevant reviews
- Generate structured output via OpenRouter (GPT-4o), enriched with real review citations
Tech Stack
Built with Next.js 15 App Router, tRPC v11, Prisma, and Supabase (PostgreSQL + pgvector). The UI uses Tailwind CSS v4 and shadcn/ui, with Framer Motion and Magic UI for animations. Maps are powered by @vis.gl/react-google-maps.
Data is seeded from data.gov.sg GeoJSON and enriched offline via the Google Places API and OpenAI Embeddings — nothing is fetched at runtime beyond what the user triggers.
Data Sources
| Data | Source |
|---|---|
| Hawker centre locations | data.gov.sg GeoJSON |
| MRT station exits | LTA GeoJSON (data.gov.sg) |
| Stalls + ratings + reviews | Google Places API |
| Review embeddings | OpenAI text-embedding-3-small |
Deployed on Vercel with Supabase as the database backend.
Tags:
-
Next.js
-
AI
-
Singapore
-
Food
Written by
Michelle Louisa
Product Manager
based in Singapore