A real-time multiplayer darts tournament scorer built with Node.js, Express, and WebSockets. Supports 2-8 players, single-elimination bracket tournaments, best-of-N leg formats, live TV scoreboard display, real-time checkout suggestions, British TTS voice announcements, and a persistent all-time leaderboard - with a responsive tablet score-entry UI and a separate fullscreen TV view.
Project Overview
501 Darts is a self-hosted, real-time tournament scorer designed for group play. It runs in a browser with no app install required, and is designed to work across two screens simultaneously: a tablet or phone for score entry and a TV or monitor for the audience scoreboard.
Key Features
Technical Highlights
Built entirely without a frontend framework. Vanilla JavaScript handles all multi-view SPA routing, rendering, and WebSocket client logic. The server is a lean Express 4 and ws Node.js application with no database -- all state stored as flat JSON files. TTS audio generated on demand by edge-tts, cached in the OS temp directory, and served as static files. The test suite covers the game engine, checkout calculator, bracket logic, match progression, and dart log using Node built-in test runner.
I build custom web applications, CMS solutions, and enterprise systems built to last. Let's discuss your project.
Get in Touch