← Back to Blog

From Zero to Launch: Building Ribbit Solo

Randy Allen

Randy Allen

May 19, 2026 · 5 min read

The kind of app you build because nothing else works

Every trip I planned followed the same pattern: open twelve tabs, copy addresses into a notes app, text the group chat a link nobody clicks, then show up somewhere and wing it. I kept thinking somebody would build the thing that actually tied it all together. Nobody did. So I did.

Ribbit is live on the App Store and Google Play. It's an AI-powered travel planner that handles everything from weekend dinner plans to two-week international itineraries — and it's the product of one person, a lot of coffee, and the stubborn belief that planning a trip shouldn't feel like a part-time job.

Picking the stack

I went with Flutter, Laravel, and PostgreSQL. Flutter because I needed iOS and Android from a single codebase and didn't have the luxury of maintaining two native apps. Laravel because I've shipped with it before and knew I could move fast without fighting the framework. PostgreSQL because the data model for trips, itineraries, bookings, and user preferences got relational quickly and I wanted something that wouldn't flinch under complex queries.

The stack held up. I never once wished I'd picked something else, which is about the highest praise you can give a technical decision.

Meet Lily (She Almost Had a Different Name)

Three weeks before launch I discovered there's already a major app in the travel space called Hopper. My AI assistant was also named Hopper.

Not ideal.

The rename itself — Hopper to Lily — took about five minutes to decide. The execution took considerably longer. A name isn't just a name when it's woven through your entire stack. Postmark email templates, app store descriptions, the marketing site, the system prompt that defines her entire personality, frontend copy scattered across a Flutter app, backend references I had to grep for. Each one a small thing. Together, an afternoon I hadn't planned for three weeks before ship date.

The part nobody tells you about building solo is that decisions like this — ones that feel minor — land entirely on you, on your timeline, with no one to help you triage. Is this urgent? Can it wait? What breaks if I get this wrong? You answer all of it yourself.

Lily was the right call. The name fits her better anyway.

Rebuilding the AI from scratch

The first version of Hopper Lily was functional in the way that a microwave dinner is food. It worked, technically. It answered questions. But it didn't plan — it just responded. It had no memory of what you'd already booked, no sense of geography, no ability to look at your full itinerary and suggest something better.

So I scrapped it and rebuilt. The new version — Lily — holds context across your entire trip. She remembers your bookings, knows what's nearby, surfaces Viator experiences that actually fit your schedule, and can rearrange your day when plans change. The difference between version one and version two was the difference between a chatbot and an actual assistant.

The integration rabbit holes

Each third-party integration looked simple on the surface and turned into its own small adventure. Viator's API, for example, has thousands of experiences per city, and the challenge wasn't connecting to it — it was making the results useful. Filtering by location, time of day, what's already on the itinerary, what the user has shown interest in. That took more iteration than the initial integration.

Ticketmaster, Google Places, Gmail scanning for booking confirmations, live flight tracking — every one of them had their own auth flows, rate limits, data quirks, and edge cases. The flight tracking alone needed careful handling to stay current without hammering the API. Each integration made the app meaningfully better, but none of them were plug-and-play.

The business side nobody warns you about

Code was the easy part. Navigating App Store review was a process — the kind where you read the guidelines three times, submit, get rejected for something you didn't expect, fix it, and submit again. RevenueCat for subscriptions, OneSignal for push notifications, affiliate program setup for Viator, forming the LLC, setting up the finances — none of it was hard exactly, but all of it was time I wasn't spending on the product.

When you're solo, every hour on paperwork is an hour you're not shipping features. You feel that tradeoff constantly.

The hardest part

It wasn't the code. It wasn't the integrations. It wasn't even the App Store review process. The hardest part of building solo is making every single decision with no one to pressure-test it against. Architecture choices, pricing, copy, what to cut from the MVP, what to keep — all of it lands on you. There's no standup, no design review, no one to say "that's a bad idea" before you spend a week on it.

You learn to trust your instincts faster than you'd like.

It works

Ribbit plans real trips. Weekend getaways, group dinners, full international itineraries with flights and hotels and activities slotted into a daily schedule. Lily remembers your bookings, pulls in experiences from Viator, scans your email for confirmations, and keeps everything in one place.

If you've ever wished your travel planner actually thought for you — that's what this is.

Try it

Ribbit is free to download on iOS and Android. If you're a fellow solo builder, I'd genuinely love to hear from you — what you're working on, what's been hard, what's clicked. Reach out anytime.

Related Posts