Building fastpassd
How a moment on a Peter Pan ride in Tokyo DisneySea turned into a full-blown Letterboxd-for-theme-parks app.
It happened on Peter Pan’s Never Land Adventure. The new ride in Fantasy Springs at Tokyo DisneySea — incredible land, incredible queue, incredible ride. I was sitting in this pirate ship, flying over London, absolutely buzzing, and I had this thought that just would not let go:
I want to log this. I want to rate it. I want to remember exactly how it felt.
I’m the kind of person who takes photos of everything and writes trip notes that nobody else will ever read. And I use Letterboxd obsessively — there’s something about logging and rating that makes an experience feel real, like it happened and you marked it. I wanted that for theme parks. A diary of rides. A way to look back and say “yeah, I was there, and that coaster was incredible.”
The idea sat in my head for a while. Then it started growing.
From notebook to app
I thought about it on the flight home from Tokyo. I sketched stuff out in a notebook. What would a ride diary even look like? You visit a park, you log the rides you went on, you rate them, you write a note about the experience. Same shape as Letterboxd but with roller coasters and dark rides instead of films.
Then the scope creep hit — the fun kind. Parks need to exist in a database with correct names and locations. Rides need types (coaster, dark ride, water ride, flat). You need to be able to see what other people thought. A feed of recent activity. Photos, because of course photos. Lists — “best coasters in Europe”, “most underrated dark rides”. Queue times pulled from live APIs so you can see how busy a ride is right now.
What started as a quick diary app turned into a full-blown social platform for theme park people.
The stack
It’s Next.js on the front and back, MySQL with Prisma for the database, and Better Auth for authentication. Ratings are stored as integers 1–10 and displayed as 0.5–5 stars, because half-star granularity feels right for rides. Everything runs through Docker on the same proxmox LXC as the rest of my projects.
The ride database is the unsung hero. Every ride needs a name, a park, a ride type, a slug for URLs, and ideally a Wikipedia page or Wikidata entry so we can pull in extra info. I wrote a bunch of scripts to scrape and enrich data from Wikidata — there’s a whole enrichment pipeline that runs in the background, filling in gaps and mapping entities. It’s the kind of work that nobody sees but makes the whole thing work.
What it looks like now
fastpassd.com is live. You can:
- Browse a catalogue of thousands of rides across hundreds of parks worldwide
- Log rides you’ve been on, rate them out of 5 stars, and write reviews
- Keep a diary of park visits with dates, ratings, and notes
- See what’s popular right now and what queues are longest
- Follow what other people are riding
- Build lists of your favourites
It’s still early. There’s a lot I want to add — proper photo uploads per ride, a map view of parks you’ve visited, better recommendations. But the core is there and it works.
Why I built it
I built it because I wanted it to exist. Same reason I built the photo site, same reason I built this blog. I get an idea stuck in my head and the only way to get it out is to build it. The Peter Pan ride was the spark, but the fire was just wanting a place to call my own.
And honestly? Building things is how I think. I don’t really understand an idea until I’ve built it, broken it, and rebuilt it better. Fastpassd is version who-knows-how-many of that cycle, and it’s far from done. But it’s live, it’s real, and I can log a ride the moment I step off the platform.
That’s the feeling I wanted.