For many years, I’ve been preparing GPX routes for cycling and hiking trips I take people on. However, I’ve always found the existing GPX editors to be absolutely terrible. They often work, but either the UI is terrible or they are just plain slow to work with. When you need to edit hundreds of marker points on a route, performance and a fast-to-use UI are quite important.
I briefly considered building my own GPX editor many years ago, but when I realised I would have to figure out the internals of how GPX files work, I gave up, as it looked about as much fun as watching paint dry.
Fast-forward to last week. I was dreading having to use one of the existing GPX editors again, and I thought, “Maybe AI could figure out the GPX internals now?” It turns out it can, quite well, in fact! After some basic architectural work, I set the bot the task of implementing a basic editor, and BOOM, out popped exactly what I had envisaged. Incredible!
I then added a bunch of features to it, including:
- Elevation profile correction
- An elevation graph
- Waypoint markers
- Route sections
- GPS tracking of your current position
- Showing the full route
- Shifting to your current location
- Various background layer options
- Saving to browser storage
- Login and registration for long-term saving
- SQLite DB for storage
- Exporting to GPX, KML and GeoJSON
- Undo and redo buttons
- Importing new files
- Zoom in and out buttons
- Full-screen mode
- Keyboard shortcuts
- Dark/light mode
Architecture
The app is mostly built with TypeScript, but it uses Laravel for the registration and login system, as well as for permanently saving routes. The login and registration system uses an as-yet-unreleased Laravel module I created a while ago for another project.
