HackGT 13 · Atlanta
SideQuests
Turn waiting into wandering.
Tell it where you are, when you need to be back and what you're in the mood for. You get three timed plans of nearby events and places, with the travel between them, in under a second. Rate what you did and the next plan fits better. Open a plan and people nearby can join.
Motivation
Free time in a place you don't know
Three of us met on a study-abroad program this summer, some of us first in Berlin. We kept running into the same problem: an open afternoon, a layover or a delayed train, and no fast way to turn it into something worth doing.
Bayan Belgium
The internet said "eat waffles." Mediocre waffles, two sights, then back to the train station.
Max France · Vienna
ChatGPT gave a list with no timing. Badly ordered routes meant sights after dark and closed kitchens.
Karthik Berlin
Loved travel when it fit him: nature, small groups, local events. No "top 10" list finds that mix.
All summer everywhere
Chatbots, two calendars, maps, AllTrails, event sites, a group chat and two payment apps. None talked to each other.
US flights in 2025 were late, cancelled or diverted.
US DOT, Feb 2026of US travelers used generative AI to plan trips in 2025.
Phocuswrightof 18–35s value spontaneity, but 51% still need the logistics handled.
Eventbrite, Jul 2025of solo travelers want to meet new people, up from 43%.
Hostelworld, Jul 2025Where other apps stop
| App | Starts from free time | Events, places, transit | Learns from ratings | Others can join |
|---|
● yes · ◐ partly · — no
Tech stack
One VPS, four services
The phone shows things, Go owns the rules, and the ML service does the scoring. Tap a box for details, or trace one plan request.
A plan request touches the app, nginx, Go, MongoDB and the ML service, in about half a second.
AI stack
Rank what you'll like, then plan what fits
A small trained ranker scores stops against your taste and today's mood. A graph search turns the best of them into three plans you can actually do.
Results on unseen users
+39% vs cosine1,000 test users and events the model never saw.
Training with no users
- Qwen3.5-9B on my academic compute wrote 100k event listings and 10k personas.
- Each user got 20 candidates, including trick events that look right but hit a dislike.
- An LLM judge rated 200k pairs from 0 to 3.
- 21 runs on A100s took 12 minutes; the winner was picked on validation.
- After launch, every rating moves your taste live: likes ← 0.8·likes + 0.2·activity. No retraining.
Data agents keep the catalog fresh: Meta's Muse Spark researches each new event with cited sources, and Gemini writes its profile.
Watch the planner build three paths
Tech Square, 2:10 to 6:30 PM. Each stop at a start time is a node; an edge exists only if you can get there in time, so edges only point forward. Dashed boxes are candidates the search passed over.
for v in sort_by_start(stops):
for u in preds(v):
for path in best[u]:
if allowed(path, v):
best[v].add(path + v)
best[v] = top_k(best[v]) # k = 16
value(v) = (score(v) − τ) / (1 − τ)
cost(u, v) = β·travel + λ·idle
plans = pick_diverse(top_paths)
Every plan is
- inside your window, with travel and a 10-minute buffer
- within budget and range; unknown prices never count as free
- age-appropriate and true to your mood ("no bars")
- free of repeat venues and categories
- repaired up to 3 rounds if it has gaps or weak stops
Features
What you can do
All of them work in the clickable prototype below.
Try it
Tap through SideQuests
The full clickable prototype of the app. Tap through it the way you would on your phone.
Things to try
- Watch the opening animation, then tap Use the demo account and Sign in. Or tap Create an account to run the 5-step profile setup.
- On Home, swipe between sidequest timelines, switch to the map, and tap a block for details. Try the Calendar and Past tabs, and rate an event.
- Tap + and go Where → When → Vibe → Review. Tap a stop for details, drag ☰ to reorder, and watch the transit re-time.
- Open the Forum: filter, post that you're free, and request to join a plan.
- In Groups, open a chat, the album and Splits; add an expense and check the split.
- In Account, set your status and turn on agentic checkout, then use ••• on a sidequest to get tickets with Muse.
This is the design prototype the iOS app was built from, running on sample data. Nothing is sent anywhere, and payments are a sandbox.