Tile rendering is handled by Mapbox GL (via react-map-gl), with a custom style layer on top. Palettes are declared in structured JSON and every map layer derives its color from the palette, so a single palette change retunes the entire map deterministically. Routes and waypoints are grouped by day, stage, or region in a Zustand store, with drag-and-drop reordering.
The editor is built on a unified state model that supports pointer and touch input without functional reduction on mobile. An Export Studio strips the builder chrome and renders the composed map artifact to PNG or PDF across fixed presets — 16:9 slide, A4 portrait/landscape, website embed, square social, or custom — so the on-screen preview matches the downloaded file.