Plan a route.
Share it as a link.
Mark Map is a map that plans trips. Drop stops, let it reorder them into the shortest route, then hand the whole thing to someone as a single URL — the trip is packed into the link itself, so nothing is ever uploaded.
- 0
- API keys needed
- 100%
- In your browser
- ~200
- Chars per shared trip
Basemaps from OpenStreetMap & CARTO. Search by Nominatim.
Features
Small app, real engineering
Every feature here works without an account, a key or a network round trip — which turned out to be the interesting constraint.
Optimises the order for you
A nearest-neighbour tour refined by a 2-opt sweep untangles a route that crosses itself, and tells you exactly how much shorter it got.
src/lib/route.tsThe trip lives in the link
Stops are delta-encoded into a binary frame and packed as base64url in the URL fragment. A ten-stop trip fits in about 200 characters and never touches a server.
src/lib/share.tsRuns with zero configuration
MapLibre with OpenStreetMap tiles, so there is no key to obtain, no billing account, and no blank map for anyone who clones the repo.
git clone && pnpm devYours, on your device
Trips are saved to IndexedDB as you work. Close the tab, go offline, come back next week — everything is still there, and none of it was sent anywhere.
Speaks GPX and GeoJSON
Export a route to a watch or a GPS unit, or import one from any tool that emits waypoints. Both directions are covered by unit tests.
Keyboard first
A command palette on ⌘K, single-key shortcuts for every action, and undo that reaches back sixty steps.
How it works
Three steps, no sign-up
- 1
Collect the stops
Search a place by name, or switch on the drop tool and click the map. Dropped pins name themselves from OpenStreetMap.
- 2
Get the order right
Drag stops into the sequence you want, or hit Optimise and let the solver untangle it. Distance and time update as you go.
- 3
Take it with you
Copy a share link, export GPX for a watch, or just close the tab — it is already saved on your device.
Built with
A static site that behaves like an app
The whole thing compiles to HTML, CSS and JavaScript on a CDN. No server runs anywhere, which is also why there is nothing to sign in to.
Try it nowNext.js 15
App Router, exported as a static site
React 19
with TypeScript in strict mode
MapLibre GL
vector maps, no proprietary key
Zustand
state, history and persistence
Tailwind v4
CSS-first design tokens
Vitest
unit tests over the geo and codec layers