Wanderly — social travel planner
Trips as first-class data: multi-stop routes you build, reorder, share — and browse on a live map.
- Type
- Personal project, live
- Map
- Mapbox GL — routes & geocoding
- Real-time
- Socket.IO + TanStack Query
The idea
Travel plans live in screenshots, notes and chat threads. Wanderly treats a trip as data: ordered stops with places and dates, drawn on a real map, shareable as a post other travelers can browse and reuse.
The interesting problems were map interactions, reorderable itineraries and real-time updates — the parts most CRUD apps never touch.
What's inside
The pieces that took actual engineering:
Multi-stop trip builder
Stops are draggable and reorderable, geocoded through Mapbox, and rendered as a route on the map as you edit.
Community routes on a live map
Shared trips render as browsable routes — the map is the feed, not a decoration next to it.
Claude-assisted itineraries
Describe the trip you want; Claude drafts an itinerary you can then edit stop by stop — instead of starting from a blank map.
Real-time social layer
Posts and updates propagate over Socket.IO, with TanStack Query keeping the socket layer and the UI cache consistent.
Why it matters
As a portfolio piece, it demonstrates range:
- Nontrivial map UI — drawing, geocoding, route rendering, well past a marker on a map.
- Real-time state that stays consistent between the socket layer and the query cache.
- A current stack end to end: Next.js 16, React 19, i18n, theming, and Zod-validated forms.
Stack
Next.js 16 and React 19, Mapbox GL, Socket.IO, TanStack Query, Zustand and Zod. Personal project — live to try from the card.
Does this sound like your app?
Every engagement here started the same way: an app already live, and a problem someone decided to stop living with. The audit is the low-risk way to start — read-only access, a written report, a prioritized fix list.