The best vacations I’ve ever taken were road trips. I did some in the USA and some in New Zealand. One thing you don’t want to do on a road trip is over-plan and leave no room for discovery and wandering. But you also don’t want to just drive with no plan. At least I don't.
Enters: AI
With AI and its world knowledge, I thought there was something interesting to do. So I tried tweaking an OpenAI custom GPT, but the results — in a chat — were hard to read and to come back to. So I decided to build a website where anyone can generate their own custom itinerary, with all the tweaks and requirements from my initial request. It provides a good balance between driving and discovering, accounting for constraints like vehicle type (motorcycle, EV, campervan), accessibility requirements, and more.
Of course, most of it can be obtained with a well-crafted prompt, but what I find interesting isn’t the actual itinerary result — it’s the images (taken for each stop from Unsplash), the pro tips and practical info, and the fact that you can bookmark a trip and download it as a PDF for offline reading later.
Last but not least, it’s a lot of fun to see what road trips others are exploring and the hidden gems the AI brings to light.
The Stack
The tech is intentionally simple — I wanted it fast, light, and easy to maintain:
- Frontend: SvelteKit + TypeScript
- Backend: Cloudflare Pages + D1 (SQLite)
- Styling: TailwindCSS
- Images: Unsplash API for every stop
- Maps: Mapbox API for route previews
Everything runs on the edge through Cloudflare, so it’s global by default and basically maintenance-free.
No servers. No scaling headaches. Just deploy and go.
The Challenges Along the Way
No project ever goes smoothly from start to finish, and Liberty Drives was no exception.
Half the time I was learning things on the fly, and the other half I was wondering why they suddenly stopped working.
Unsplash API — Getting Out of the Sandbox
One of the first hurdles was getting approved to use the Unsplash API outside of its sandbox mode.
I wanted every itinerary to show real images for each stop, not just gray boxes or random placeholders.
Unsplash’s review process makes sense — they want responsible usage and proper attribution — but it meant making sure every image loaded correctly, displayed credit text, and cached properly.
I ended up re-working how I fetched, stored, and displayed images just to meet their API compliance.
It took a few iterations, but seeing those photos come alive on the page made it completely worth it. And honestly the team at Unsplash was very nice throughout.
SvelteKit Meets Wrangler
Then came the Cloudflare side of things.
SvelteKit runs beautifully in theory, but getting it to play nice with Wrangler and Cloudflare Pages Functions wasn’t always straightforward.
At one point, I spent hours chasing what I thought was a deployment bug — console logs, restarts, rebuilds — only to find out it was just a caching issue.
Classic.
Nothing humbles you like debugging your own impatience.
It also took me a while to understand where to put my backend code: Cloudflare's Function folder VS SvelteKit's src/routes/api folder.
Still, once it clicked, the result was worth it: zero servers, instant deploys, and edge rendering everywhere.
Learning Tailwind
I also learned Tailwind CSS for this project.
There was definitely a learning curve at first — all those class names look like hieroglyphs when you start.
But once it “clicked,” I realized I never wanted to go back to writing vanilla CSS again.
Being able to style everything inline, with predictable utility classes, made building the interface so much faster.
It felt like the perfect companion to SvelteKit’s component approach — simple, contained, and clean.
The OG Image Struggle
One thing I still haven’t cracked properly is generating OG images for the itineraries.

Right now, I’m using the static map image as a base, overlaying some text and the logo, and saving the whole thing as an SVG. That's done automatically at the creation of the itinerary. But from there, I have to manually download the SVG, convert it to PNG, compress it, and upload it — which works, but it’s clunky and definitely not sustainable if the site grows.
I’ve looked at automating that last stretch with headless rendering or Cloudflare Workers, or Cloudflare Images, but haven’t landed on a clean solution yet.
So for now, it’s a bit of a handmade process — which, honestly, feels pretty fitting for a project about road trips.
Where It’s At Now
Right now, Liberty Drives can already do some pretty fun stuff. You tell it how long you’ve got, roughly where you want to go, and what kind of trip you’re in the mood for — and it builds a plan that feels human, not robotic.
It adapts to simple things like what you’re driving (a bike, an EV, or a campervan) and whether you care more about comfort, accessibility, or adventure. It’s not just spitting out data; it’s shaping something that actually makes sense once you’re out there on the road.
Each trip comes alive with real photos from Unsplash, a few travel tips, and the kind of small, practical notes you’d normally only get from someone who’s been there. You can save your trip, keep it for later, or download it to take with you when you go offline.
And maybe the best part? Seeing what other people are planning — the wild routes, unexpected regions, and hidden places the AI keeps surfacing. It’s like getting a glimpse into everyone else’s version of “freedom on the road.”
What’s Next
There’s still a lot I want to build on top of this. Right now, the AI does a good job of coming up with complete trips, but I’d love to give people more control over the result. Things like being able to say, “Add a stop in this town,” or “Include a detour for a hike or a winery.”
I also want to make it easier to start from an existing itinerary — take something that’s already good and tweak it into your own version. The goal isn’t to make AI replace human planning, but to make it a creative partner in the process.
Another idea on the list is creating famous routes — like Route 66 or the Road to Civil Rights — but with all the modern tweaks you’d need today: accessibility, vehicle type, time limits, even budget filters.
And beyond features, I’d love to turn it into more of a community space — where people can rate itineraries, leave comments and suggestions, and help uncover even more hidden gems along the road.
Wrapping Up
At the end of the day, I’m just building something I wish existed. There’s no grand plan or secret growth strategy — most of the time I’m just shooting blind in total darkness, hoping it’ll click for someone else too.
If you’re a fellow builder and want to see how it’s going, it’s live at LibertyDrives.com. Please let me know if you have any feedback or comments.
Sometimes, the best projects aren’t about getting somewhere, they’re about finding the road that finds you.

Top comments (0)