Skip to content

foolish-bandit/DanceCard

Repository files navigation

DanceCard

"Organized fun is an oxymoron."

MIT Stars

AI-powered event discovery for people who hate planning.
Vibes, not keywords. A voice hotline for the indecisive.
No account. No backend. No itineraries.


How It Works

"I'm in Austin and I want something weird"
        |
        v
    ┌── DanceCard ──────────────────────────────┐
    │                                           │
    │  🎭  Underground puppet theater — 8pm     │
    │  🍷  Natural wine pop-up at a laundromat  │
    │  🎤  Open mic comedy in a parking garage  │
    │  🌮  Late-night taco truck crawl          │
    │  🎨  Blacklight art show, BYOB            │
    │                                           │
    │         [ shuffle ]  [ stash ]            │
    └───────────────────────────────────────────┘

Drop a pin. Pick a vibe. Get matched. Stash the good ones.

Not feeling it? Hit shuffle and a random vibe gets thrown in.


Features

Vibe-Based Discovery

Moods, not categories. Pick vibes — weird, chill, loud, romantic, spontaneous — and get events that match. Your personality profile feeds into the AI prompt, so results get better (weirder) over time.

Voice Hotline

For when you can't be bothered to type. Talk to DanceCard and let it figure out what you want to do tonight. Because if you knew what you wanted, you wouldn't need this app.

The Stash

Save events to your personal dance card. Clear the whole thing when the night's over. No history. No judgment. Persisted locally — no account required.

Persona-Driven

Two personality questions shape your recommendations. Locals-only or tourist-friendly. Hometown or travel mode. DanceCard learns what you're about without ever creating an account.


Try It

git clone https://github.com/foolish-bandit/DanceCard.git
cd DanceCard
npm install
echo "GEMINI_API_KEY=your_key" > .env.local
npm run dev

Get a free Gemini key at aistudio.google.com.


Tech Stack

Layer Tech
Frontend React 19, TypeScript, Vite 6
AI Google Gemini (@google/genai)
Persistence localStorage (no backend, no auth)
Design Custom CSS, iOS-native aesthetic (#FDFBF7 warm white)
Icons Lucide React

No server. No database. No accounts. Everything runs in the browser with one API call to Gemini.


Roadmap

  • Geolocation auto-detect on mobile
  • Real event data sources (Eventbrite, Dice, Resident Advisor)
  • Group mode (merge vibes from multiple users)
  • Shareable stash links
  • Capacitor build for iOS/Android

License

MIT

Built by Zack Brenner