Wrong day
Planning the Taj Mahal for a Friday, when it's closed.
Travel smarter.
Regret less.
A community map of travel regret — so the next traveller doesn't repeat them.
travel lessons on the map
countries, every Indian state
automated tests
The problem
Planning the Taj Mahal for a Friday, when it's closed.
Arriving at a national park in its monsoon closure.
Squeezing a full-day trip into one afternoon.
RegretMap is about destinations, places, journeys, activities and travel conditions — not a hotel, room or restaurant rating site.
How it works
Any destination in the world.
Every story pinned, with a heatmap.
Reactions and threaded replies.
AI tips and chat from the stories.
Features
Search any destination or town worldwide, browse photo postcards, and explore every story on a map with filters and a heatmap. No AI runs here.
“Before you go” lessons with links to their source stories, the destination's stories on a map and feed, and an “Ask travellers” chat.
What happened, what went wrong, the lesson and advice. React 👍 😬 🙋 💡 and reply in threads up to six levels deep.
Pick the place, category and travel month, then add your lesson. Stories go live right away; AI only labels them for moderators.
Content
Across all 28 states and 8 Union Territories.
75 destinations in 52 countries, on every inhabited continent.
Personal accounts shared by travellers through the site.
Travel notes are written by the RegretMap team and always labelled “Travel note”, never passed off as a personal experience.
AI that doesn't make things up
Trip-planning questions get a fixed, server-written note and a referral to The Visa Guy for full plans, visas or bookings.
Accounts, moderation & security
On every table. The public reads only published stories and visible comments.
Comments and reactions use your own session. User IDs can't be supplied or faked.
Supabase and Gemini keys never reach the browser, logs or URLs.
zod schemas, length limits, stripped control characters and rate limits.
Public pages never show emails or account IDs. User content renders as plain text.
Email accounts via Supabase Auth. Moderators review AI-labelled submissions.
Tech stack
Getting started
git clone https://github.com/shamil-tp/RegretMap.git
cd RegretMap
npm install
cp .env.example .env.local
npm run dev
supabase/migrations in order, then the India and world seeds.<site>/auth/callback to Supabase redirect URLs.Testing, CI & releases
Validation, RLS-dependent actions, AI grounding, key rotation, comments, reactions and seeds. Gemini is always mocked.
Runs on every pull request and push to main, on Node 24, before anything ships.
Push a tag like v1.2.3 to re-run every check and publish a GitHub Release.
Design & credits
A raw-paper canvas with a dot grid, black ink borders, hard block shadows, caution-yellow calls to action, regret red and map blue. Motion is CSS only and turns off for reduced-motion.
Map tiles © OpenStreetMap contributors. Place search by Photon. Destination photos from Wikimedia Commons under free licences, each showing its author and licence.
Known limitations
The team
Co-creator of RegretMap.
Co-creator of RegretMap.
RegretMap — built by Shamil TP and Nihal T. Live at regret-map.shamiltp.me