Drift is an outdoor discovery and planning app built to help people stop scrolling and start going.
Instead of digging through blogs, maps, weather apps, and park sites, Drift helps users:
- discover curated outdoor experiences
- filter by travel time, vibe, effort, and family fit
- save picks into collections
- compare options side by side
- turn a good idea into an actual trip plan
Drift is designed to feel less like a directory and more like a smart outdoor guide.
| Discover | Plan | Decide |
|---|---|---|
| Swipe through curated experiences | Save picks into collections | Compare tradeoffs and generate a trip plan |
| See why a pick fits you | Organize by board or mood | Use live weather and timing context |
| Get weather-aware suggestions | Build shortlists fast | Go outside faster |
Sign in and step straight into a personalized outdoor shortlist.
Set your home base, travel range, and outdoor vibe so the deck starts tuned to you.
Swipe through curated experiences with live weather, Drifty guidance, and clear "why now" context.
Turn saved picks into a planning board with featured options, sorting, and trip-planning flows.
Users pick a home base, travel range, and activity preferences so the experience starts personalized.
The main screen is a swipeable outdoor deck with:
- personalized recommendations
- live weather context
- local-first filtering
- keyboard-friendly desktop controls
- Drifty, the mascot guide
Each experience has a richer editorial view with:
- why this fits
- why now
- maps link
- share support
- save-to-collection flow
Saved experiences become a real planning workspace with:
- custom collections
- featured picks
- compare mode
- trip-planning modal
- board-level sorting and filtering
Nature is meant to be explored, but choosing what to do is often harder than the adventure itself.
We built Drift to reduce that friction and make outdoor planning feel:
- faster
- more personal
- more timely
- more fun
- React
- Vite
- JavaScript
- FastAPI
- Python
- Supabase Auth
- Anthropic API
- Open-Meteo API
- Supabase
- Seeded outdoor experience dataset for demo reliability
- Local persisted user state
.
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── data/
│ │ ├── lib/
│ │ └── theme/
├── backend/
│ └── app/
├── docx/
└── AGENT.md
cd frontend
npm install
npm run devFrontend runs on:
http://localhost:5173
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reloadBackend runs on:
http://localhost:8000
Create frontend/.env.local
VITE_SUPABASE_URL=...
VITE_SUPABASE_ANON_KEY=...
# Optional
VITE_API_BASE=http://localhost:8000Create backend/.env
ANTHROPIC_API_KEY=...
RIDB_API_KEY=...
SUPABASE_URL=...
SUPABASE_SERVICE_ROLE_KEY=...
RATE_LIMIT_MAX_REQUESTS=5
RATE_LIMIT_WINDOW_SECONDS=60See:
frontend/.env.examplebackend/.env.example
- desktop-first discovery flow
- Drifty mascot integrated into the experience
- compare mode for collections
- local fallback trip planning when live AI planning fails
- per-user onboarding persistence
- live weather for supported seeded locations
- seeded data fallback so demos stay reliable
If you want the fastest repo walkthrough, use this order:
- Open the welcome screen
- Sign in with Google
- Complete onboarding
- Swipe through Discover
- Open an experience detail page
- Save it into a collection
- Open Collections
- Compare picks
- Generate a trip plan
- The frontend is intentionally optimized for a polished desktop demo.
- The app supports live weather, but also falls back gracefully when outside services fail.
- The seeded experience catalog exists so the product still feels full and stable during demos.
Built by:
- Shaan Kal
- Viswas Vallabeneni
- Raghav Senthilkumar
Drift placed 3rd at the Cursor Hackathon at UW-Madison, and we are continuing development.



