,

Mapthread: Tell a Story with a Map

In 2016, Craig Mod and Dan Rubin published Koya Bound, a beautiful photo book covering an eight day hike on the Kumano Kodō pilgrimage trail in Japan. Alongside this they made a companion website with a map which scrolled alongside the narrative. The way the map followed the narrative as you scrolled felt like the perfect way to tell a walking story.

Koya Bound

I wanted to build something similar for my own posts. The problem was, I couldn’t code it.

I studied software engineering at university, but that was a long time ago. I’ve spent the last twenty years working as a Product Manager, close enough to engineering to be dangerous but not close enough to ship anything by myself. So the idea sat on a shelf, gathering dust for nearly a decade.

Enter the machines

Fast forward to 2026 and we now have AI coding tools that have fundamentally changed what’s possible. Using Claude Code, I described what I wanted and it went off and built it. The first working prototype took a couple of hours.

What completely blew my mind was being able to say something as vague as “the elevation gain numbers look off” and having it disappear, read academic papers on the problem, then come back with a fix and tests to prove it worked.

Of course, “working prototype” and “production-ready” are very different things. It took another month of on‑and‑off tinkering to polish it, handle edge cases, add features, and make it secure.

I called it Mapthread.

The implications of a PM shipping this alone raise some uncomfortable questions. But that’s a different post, and for now I’m content that this little tool exists in the world.

How it works

The concept is straightforward. You write a post in WordPress as you normally would. Then you add two custom blocks within the body content:

  1. Map GPX to upload a GPX file from any hiking, cycling, or fitness app (I use Gaia GPS)
  2. Map Marker to place waypoints at key moments in your narrative, each with coordinates, a title, and an optional emoji pin

When a reader scrolls through your story, the map on the right automatically pans and zooms to follow along. If they want to explore the map themselves, it pauses. When they resume scrolling, it picks up where they left off. Click any marker on the map and it jumps to that part of the text.

Mapthread showing a satellite view

It also works without a GPX file. Drop in markers and they’ll be connected with straight lines, which is useful when you don’t have GPS data. If you turn off the progress indicator, the map will simply zoom from marker to marker instead.

On top of that, there’s an elevation profile with distance and other stats, multiple map styles (enter your API key to get more from providers like Mapbox and Stadia Maps), fullscreen mode, and the option for readers to download the GPX file (if you enable it).

Mapthread showing a monochromatic map with emoji markers

It’s built for WordPress which is used by myself and about 43% of the web.

See it in action

Here are a few examples of posts I’ve added Mapthread to:

The map adds a layer of context that makes the reading experience richer. You understand the terrain, the distances, the relationship between places in a way that photos and words alone can’t quite capture.

Try it

Mapthread is free and open source. It works with WordPress 6.0+ and any block theme. If you write about walks, rides, travels, or any kind of location-based story, give it a try. Install directly from the plugins page in your WordPress admin.

If there’s enough interest, I’ll keep developing it. Feedback is welcome! There’s a huge list of ideas I’d love to explore. But for now, it does what I originally dreamed of back in 2016. It lets you tell a story with a map.

Get in touch

David avatar

6 responses

  1. Brilliant. Can’t describe the joy for someone who loves travel, Asia, the web, and above all, maps.

    1. Thanks Rado!! Back in my 20s I was very interested in maps and information visualisation; I used to even write critiques of the London Underground maps 😂 This project has rekindled that passion and I hope to do more.

  2. This is awesome. I love following along with your trips because they combine excellent photography with the locations I’m interested in visiting, and reading the posts in this way makes them so much more tangible, somehow. Thanks!

  3. Guillaume avatar

    Amazing! I love reading travel journals and this is going to be such an enhancement to the immersion. Coincidently, I was just having a chat with my cousin about vibe-coding. I need to give it a go someday!

    1. Nice, if you already have some technical knowledge it’s really quite easy to get started.

Leave a Reply

Your email address will not be published. Required fields are marked *