
Tech Stack
Frontend
Backend
Key Libraries
Build Tools
Key Features
Scorekeeping with rules: Full snooker flow (reds/colors, order mode, free ball, fouls, undo, winner detection).
Social graph: Mutual-friends model; authenticated players persist, non-friends saved as guests.
Match history syncing: Local play with resilient client state; server sync on match end via transactional APIs.
Mobile-first UI: Fast, animated scoreboard controls, sounds, and PWA assets for install-like UX.
Observability: PostHog event tracking and Sentry error capture across client and server.
Notable Challenge
Ensuring accurate snooker rules and data integrity while syncing from a stateful client to the server with privacy constraints. Solved by a dedicated useSnookerGame hook with immutable state and history for undo, localStorage persistence, and an Edge API that enforces mutual-friend checks and writes frames/scores transactionally via Drizzle.
Result / Status
MVP in active use with authenticated score persistence, guest support, and production-grade analytics/monitoring; core APIs run at the edge with a Postgres-backed schema and webhook-driven user/org provisioning.