1// Pickld.md
2// ---------------------------
3
4# Pickld
5
6Mobile-first pickleball tracker for private groups — live rally scoring, Elo ratings, AI coaching, and club coordination in one PWA.
7
8**TYPE:** Web Application (PWA)
9**STATUS:** Live
10**LIVE:** https://pickld.vercel.app
11**DEV:** http://localhost:4200
12**WORKSPACE:** ~/GitHub/pickleball
13**GITHUB:** nikanjuri/pickld (private)
14
15---
16
17## FEATURES
18
19- Live rally scoring with side-out and rally formats, serve rotation, and match summaries
20- Session schedule generator (player rotation or team round-robin)
21- Elo skill rating with tiered K-factors, 20-game qualification, and guest-match exclusion
22- The Huddle — club chat with an AI Coach that answers from real club data via tool-calling
23- Play Requests that flip to "ready to book" once enough players confirm
24- Booking-screenshot OCR — Gemini reads a Playo confirmation and pre-fills venue, time, and court
25- DUPR roster CSV bulk import for admin user onboarding
26- Shared Kitty ledger for club cash and per-session expense splits
27- Game-improvement analytics — mistake breakdowns, vs-opponent insights, and form trends
28
29---
30
31## TECHNOLOGIES
32
33- Next.js 16 (App Router)
34- React 19
35- TypeScript
36- Tailwind CSS 4
37- Supabase (Postgres, Auth, Realtime, Storage)
38- Google Gemini (booking OCR + AI Coach)
39- Web Push (VAPID)
40
41---
42
43## NOTES
44
45Pickld runs everything a small private pickleball club needs: players, sessions, singles/doubles matches, live scoring, leaderboards, and the off-court coordination that usually lives in a messy group chat.
46
47### Scoring and ratings
48
49Matches are scored rally-by-rally with correct serve rotation for both side-out and rally formats. Results feed an Elo rating system with tiered K-factors and a 20-game qualification threshold, plus Wins / Win % / Points / Rating leaderboard sorts. Optional shot tagging records the shot that won or lost each rally for shot-effectiveness analytics.
50
51### The coordination layer
52
53Club members post Play Requests for a date/time slot; once enough confirmations land, the request flips to "ready to book". When someone books on Playo, they drop the confirmation screenshot into the app — Gemini reads it and pre-fills venue, time, and court so the session is one tap away. Web Push notifies members at every step, and a shared Kitty ledger tracks club cash and per-session splits.
54
55### The Huddle
56
57A shared chat channel ships with an AI Coach summoned with `@coach`. Coach answers from real club data via tool-calling — your stats, head-to-heads, mistake breakdowns — and recommends drills from a curated library with YouTube videos. Completed matches can be shared via public links that unfurl with a generated match-summary image.