CariGPX — implementation case
Implementation focus: process GPS files, render tracks for exploration, and give users explicit control over track visibility.
Problem
Outdoor enthusiasts need to inspect and share GPS tracks, while track data can reveal sensitive location information. The product therefore needed both a responsive visualization flow and clear sharing/privacy options.
Implementation
CariGPX is a deployed web application built as a decoupled Go API and Nuxt 3 frontend. The API parses GPX data and converts it to GeoJSON; the frontend uses Leaflet to display tracks and elevation information.
A parse-first upload flow provides a client-side preview before final storage. Tracks support three visibility levels: public, unlisted by unique link, and private. Public tracks can appear in discovery; private tracks are restricted to their owner.
Decisions and constraints
- Separate track parsing and analysis from persistent storage so a preview can be shown before upload completion.
- Make public, unlisted, and private visibility explicit rather than treating every share link the same.
- Keep map rendering and track exploration in the browser while using Go for API and data-processing responsibilities.
Outcome
The live product at carigpx.com supports GPX upload, visualization, and track sharing with visibility controls. No usage or business-impact metrics are claimed here.
Stack
Go, Nuxt 3, Vue 3, TypeScript, Tailwind CSS, Leaflet, JWT, GPX parsing, and GeoJSON.

