Track your night. Share the story.
A social drinking session tracker — Strava for nights out.
Drunkva is a mobile-first, social session tracker for your nights out. You log drinks in real-time to build a live "confidence curve" that categorizes your night into six distinct stages: Baseline, Bullish, Ascend, Climax, Half-life, and Credits. When the night ends, you export a personalized, AI-captioned photo overlay (the "Morning Card") to share your peak stats with friends. On the platform, a real-time social feed lets you verify sessions with tagged witnesses, view confidence arcs, and "cheers" your friends' nights.
Responsive & accessible: Optimized for phones (320px–430px) with full safe-area inset support for notches, dynamic islands, and gesture bars.
Screenshots captured at 390px viewport. App is responsive across 320px–430px (mobile to tablet) with safe-area inset support.
Live Session Share Card
Session Tracking
- 🍺 Every drink type carries a specific confidence weight (e.g., Beer: 12, Shot: 18)
- 📈 Live confidence curve tracking exact stages: Baseline, Bullish, Ascend, Climax, Half-life, Credits
- ⏱️ Fastest drink timer with PR (Personal Record) detection
- 🚽 Washroom trips, burp counter, and chakna (snack) level tracking
Share Card
- 🖼️ Two exportable templates: Strava-Styled (draggable confidence curve overlay) and Full Info (customizable stat grid)
- 🎛️ Full Info stat picker: toggle session details (drinks, washroom, venue, personal bests, etc.) before export
- 🤖 LLM-generated session title via Groq (e.g., "I'm 3 wines in on the rooftop")
- 📸
html2canvasexport at 3x density for crisp social sharing - 🔗 Web Share API integration with download fallback
- 🎚️ Pinch-to-scale gestures for precise overlay positioning on Strava template
- 📱 Fixed export dimensions (1080x1920 Story, 1080x1080 Square) with responsive app shell
Social
- 🔄 Infinite scrolling social feed with 30-second background polling for "cheers" counts
- 🤝 Mutual follow system
- 📊 Session detail view with an interactive Recharts confidence arc
- 👁️ Social verification: tag up to 5 witnesses after your session
- ✅ Verified badge on confirmed sessions (requires 2+ witness confirms)
PWA
- 📲 Installable as a Progressive Web App
- 📴 Offline drink logging via IndexedDB queue (
drunkva-offline) - 🔄 Automatic background sync on network reconnect with real-time UI indicators
- 🔔 Push notifications for morning cards and witness tagging
- 💡 Custom native-feeling install prompt on second visit
Identity & Security
- 🔐 Mandatory onboarding gateway enforcing legal terms & privacy compliance
- 🚪 Secure Clerk sign-out controls and comprehensive account deletion pathways
- 📊 Decoupled post-exit survey trend analyses mapping product enhancements
Tech Highlights
- Implemented strict hydration mismatch fixes for native dark-mode (
color-scheme: dark) - Responsive viewport units (100dvh) prevent mobile browser zoom-on-scroll jank
- Safe-area-inset environment variables provide native notch + gesture bar support
- Uses Vercel Cron (
/api/cron/morning-card) for automated 10 AM notifications - Real-time visibility-state based polling to conserve battery while keeping social feeds alive
- Client-side offline synchronization queue using
idb - Morning card flow optimized: 2-step unified wrap-up + export (merged from 3-step design)
Recent Updates
- Peak confidence now decays from stored timestamps on read, so live views and exports stay consistent even after inactivity.
| Layer | Technology | Purpose |
|---|---|---|
| Framework | Next.js 16.0.10 (App Router) | Core React framework and API routes |
| UI / Styling | React 19, Tailwind CSS 4 | Modern functional components and utility-first styling |
| Components | shadcn/ui | Accessible, customizable UI primitives |
| Database | Neon Postgres (Serverless) | Fast, edge-ready relational database |
| Authentication | Clerk | Secure user onboarding and identity management |
| AI Generation | Groq (llama-3.3-70b-versatile) |
Fast, context-aware session title generation |
| Offline Storage | IndexedDB (idb) |
Robust queue for offline drink logging |
| Notifications | web-push | VAPID-based push notifications for PWA |
| Export | html2canvas |
Client-side rendering of DOM nodes to PNG blobs |
Drunkva tracks your night using a proprietary confidence curve algorithm that weights different types of alcohol against time.
| Drink Type | Weight |
|---|---|
| 🍷 Wine | +10 |
| 🍺 Beer | +12 |
| 🍹 Cocktail | +13 |
| 🥂 Spirit | +15 |
| 🥃 Shot | +18 |
Stages
- Baseline: 10% - 15%
- Bullish: 16% - 35%
- Ascend: 36% - 58%
- Climax: 59% - 82%
- Half-life: 83% - 92%
- Credits: 93% - 99%
How it works The confidence floor is hard-capped at 10% and peaks at 99% (because no one is ever truly 100% in control). Time decay kicks in if you stop drinking: after a 90-minute grace period, your confidence decays by 5% every 30 minutes.
The card always shows your peak — not where you ended up.
drunkva/
├── app/
│ ├── api/ # Next.js route handlers
│ │ ├── sessions/ # Session CRUD
│ │ ├── drinks/ # Drink logging + confidence recalc
│ │ ├── title/ # Groq title generation
│ │ └── ... # push, cron, feed, witnesses, follow
│ ├── session/ # Live session screen
│ ├── feed/ # Social feed
│ ├── morning-card/ # Share flow + overlay export
│ ├── profile/ # User profile
│ └── layout.tsx # Root layout, fonts, providers
├── components/
│ ├── drunkva/ # All Drunkva-specific components
│ └── ui/ # shadcn/ui primitives
├── hooks/ # Custom React hooks (e.g., useOfflineQueue)
├── lib/ # Utilities, DB client, confidence math, mock auth
├── public/ # Static assets, SW, manifest
└── docs/ # Screenshots and documentation
v1 — Current
- Live session tracking with drink logging and dynamic confidence arc
- Offline PWA support with background synchronization queue
- Shareable morning cards with 2-step wrap-up + template selection flow
- Strava-styled draggable overlay (drinks, time, stage, confidence %, PR badge)
- Full Info grid with customizable stat toggles (venue, washroom, personal bests, etc.)
- AI-generated session titles via Groq with customizable pinch-to-scale overlay positioning
- Social feed with 30s polling, cheers, and mutual follows
- Witness tagging and session verification with push notifications
- Responsive design: 320px–430px with safe-area inset support
v2 — Planned
- Group session mode (one person logs for the table)
- Mic-based burp detection
- Venue leaderboards
- City-wide leaderboards
v3 — Ideas
- Year-end Wrapped
- Venue partnerships and branded overlay themes
- Native app wrapper via Capacitor
Live: https://drunkva-in.vercel.app
Build & Deploy:
pnpm install
pnpm build
pnpm startDeployed on Vercel with Edge middleware, serverless functions, and scheduled cron tasks.
Pull requests are welcome. Please run pnpm lint and pnpm build to ensure all checks pass before submitting.
Copyright © 2026 Drunkva. All Rights Reserved.
This software is proprietary. No part of this codebase may be copied, modified, distributed, sold, or sublicensed without express written permission.


