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.