I went kinda analog last year - sold my smart watch, canceled my strava pro subscription, went back to an iPod instead of streaming, etc.
But yesterday I went for a run for the first time this spring, and realized: I had no easy way to map the route beforehand (to have a plan), or afterward (to see how far I went) .
So I whipped up RouteSketch: https://github.com/dpaola2/RouteSketch
My process:
I used chatGPT o3 to generate a one-pager PRD and then a software design document. Constraints: vanilla JS only, no build, everything in a single HTML file. No saving of files or route management - just point and click on a map, show the route and its distance, using publicly available map data only.
My thinking was basically to get the simplest possible thing working, exercising that muscle of “build the smallest quantum of value”.
I plugged that PRD and SDD into Aider, with Claude 3.7. It took only a single additional prompt to fix an issue w/ the button initially, and it worked exactly as described.
Then, I thought: what’s the simplest way to post this run to Strava?
So I added support for import/export GPX files (using a quick PRD and SDD as before, this time using claude within Aider, to enable the context of the code to be included).
I exported the route, and Strava told me my GPX files were missing timestamp information, so I added an optional time duration input that will assume a constant pace and interpolate the timestamps for each waypoint in the route.
Then I stopped. It’s good enough for now.
It works without hosting. I can just open the HTML file in my browser on my local filesystem. Or I can deploy it to GitHub pages. Or anywhere.
Total elapsed time working on this project was probably 15m or so. And it works great.
As someone who's been coding since I was in middle school, this kind of thing just astounds me.
Could I have used caltopo? Probably. Or one of numerous other tools. But this was fun and easy.
We're living in the future.