Background
It's a personal project. My family takes a big trip every year or two, and wrangling 20–30 people is genuinely hard. It turns into a glut of WhatsApp threads, email chains, and spreadsheets, and the planning always lands on the same handful of people — a lot to ask when you're coordinating for thirty. And we don't just want to be in the same place; we want to be around each other, sharing big meals. The logistics shouldn't be the thing that burns out the few people willing to organize it.
So I built Whoosh to be the unpaid travel agent that nobody in the group wants to be.
Building Whoosh
The build was fairly straightforward, but it went through several iterations. The first version leaned on web forms and manual entry, and I quickly realized that raised the bar too high — people won't fill out a form to RSVP to a trip. So I leaned on AI for onboarding and voting instead, and that's when it clicked.
The key property is flexibility: onboarding takes as much or as little as a person wants to give. Flexible on dates? Just say so. Kids only have two free weeks in the summer, between soccer camp and acting camp? Feed that to the agent and it plans around it. I'm honestly not a big fan of chat as an interface for most things — but for onboarding, for capturing messy real-world constraints in plain language, it's a great fit.
That realization is also what pushed us onto iMessage as an interface (with Telegram and WhatsApp to follow). Meeting people in the chat they already use lowers the barrier even further — no app, no signup. You text Whoosh like a friend and it spins up a real trip.
Under the hood it's a SvelteKit app on Vercel, backed by AWS Aurora PostgreSQL (Serverless v2). I use IAM database authentication, so there are no database passwords anywhere — every serverless connection mints a short-lived token. The AI is deliberately two-tiered, mostly for cost: a larger model (OpenAI's GPT-4o) handles destination planning and the richer "where should we go" content, while a small, fast model (Llama 3.1 on Cloudflare Workers AI) handles the simpler work — like turning everyone's messy availability into the date windows that actually work for the group.
Flights were — and still are — the hard part. I started with Amadeus, but it's expensive and the free tier is slow. Then I found Duffel, which was a perfect fit: clean flight search now, and a clear path to monetization later.
What's next
There's still plenty to do. Game-day planning — the day-by-day, on-the-ground experience — needs depth, and getting excursions and operators onto the platform is what will turn Whoosh from a coordination tool into a true travel concierge. But the bones are good, and the hardest part — getting thirty people to actually converge on a plan — already works.
Built With
- aurora
- cloudflare
- duffel
- javascript
- openai
- postgresql
- privy
- supabase
- svelte
- vercel
Log in or sign up for Devpost to join the conversation.