Occasionally Asked Questions
Here are a few answers to questions that almost no-one has asked me about this application.
The GPS Blog was originally built to show GPS tracks from activities using a hand held mapping GPS - a Garmin Montana 600. Coupled with Garmin's proprietary (and somewhat expensive) marine charting software and UK Ordnance Survey 1:25,000 maps, it's been a great bit of kit. Mine is pushing 15 years old and is still going strong - albeit a bit battered now.
Later on, we started adding tracks from the various bike GPS devices we've had over the years.
When The GPS Blog was first developed, there were a few other GPS track display websites starting up and there's been quite a lot since then. However, The GPS Blog has always displayed our GPS track data and photos just the way I like it!
- The GPS Blog first launched in about 2012 (under a different domain name).
- That first version was written in Java and used the Java version of the Play Framework. However, that version only lasted a couple of years.
- The next version, that lasted over a decade, was written with Scala and Play on the server side and a whole host of different JavaScript frameworks on the client side. At the time, I really liked the functional/OO blend of Scala and it was a breath of fresh air as Java was going stale at the time.
- However, in recent years, progress in the Java language has been rapid and, for quite a while now, I've not used Scala so wasn't going to upgrade The GPS Blog to Scala 3.x and Play 3.x. So it was time to move The GPS Blog back to Java.
- In summer of 2026, The GPS Blog was migrated back to the latest Java by my mates Claude, Codex, CoPilot et al. In fact, the only code I wrote this time round was when I ran out of tokens to feed my rather expensive AI mates and was waiting for limits to reset.
- The GPS Blog is now implemented with Java 25, Spring Boot 4.x, Thymeleaf and HTMX 4.x
- In place of previously heavyweight front end JavaScript frameworks (React/TypeScript and AngularJS before that), there's the aforementioned HTMX and just a few page specific plain old JavaScript scripts. And no separate front end build steps to go stale within the next few months - yay!
- As mentioned in the History FAQ entry, this version of The GPS Blog was migrated from the Scala version almost entirely using AI coding tools. GitHub CoPilot shared the work to what it thought was the most appropriate LLM - and I forced it to use fairly recent Claude LLMs for more detailed planning steps. When CoPilot started getting expensive, I switched to Codex and Sol.
- One of the main learning points of the exercise is that AI coding isn't cheap! In fact, I shouldn't have been surprised. While The GPS Blog may not look like a large application, it is over 15 years old and has had fairly regular functional improvements and increasing scope - for example, the South West Coast Path functionality is fairly new. So, it's no wonder that it took a fair bit of effort to fully migrate it.
- Here's a blog post about another app migration from React/TypeScript to the same tech stack used here. And that one I did by hand. 😄
- Yes - sorry about that - SWCP stands for UK's South West Coast Path - text which was a little too long to fit into the menu.
- We've been walking parts of the SWCP with our dogs for many years so it seemed like a good idea to see just how much of the 630 miles we've actually walked.
- Turns out we've walked less than 30% of it - see here for the actual details. But we've walked longer than the overall distance of the SWCP while walking on the SWCP - if you see what I mean?
- Will we ever walk all of it? Absolutely no bloody chance! I've already had a few "refusals" on the north Cornwall parts when the danger of imminent death by falling off it has got all too scary! But there's still quite a lot of it we do still want to walk.
While the primary purpose of The GPS Blog is to display GPS tracks and photos from activities, it has always been a website that I've used to experiment with new technologies and frameworks.
While the 2026 migration back to Java / Spring Boot / Thymeleaf and HTMX has drastically simplified the codebase and dependencies, the site will still be used to experiment with new technologies and frameworks.
So, while not asking you to actively try to hack this live site, if you notice anything "tech related" that you feel is incorrect, mis-configured or suboptimal, feel free to get in contact.
And on a related topic, the current site managed a "perfect 100" Lighthouse score (at least at the time of testing). But it was a little bit of a cheat as I had to turn Cloudflare off briefly (related to the "best practises" category) and it was a "Desktop" score rather than a "Mobile" score. But still, all 100s, eh?