CariGPX: A GPS track platform with data and privacy controls
/golangnuxtvuetypescriptgeospatialapi-design

CariGPX: A GPS track platform with data and privacy controls

A deployed geospatial application for uploading, analyzing, visualizing, and sharing GPS tracks, implemented with Go and Nuxt.


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.