{"id":49113474,"url":"https://github.com/skrodahl/NewTon","last_synced_at":"2026-05-07T11:01:15.295Z","repository":{"id":311134263,"uuid":"1042352431","full_name":"skrodahl/NewTon","owner":"skrodahl","description":"Darts Tournament Manager","archived":false,"fork":false,"pushed_at":"2026-04-17T20:34:38.000Z","size":105838,"stargazers_count":27,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-17T22:32:51.270Z","etag":null,"topics":["bracket","bracket-management","darts","darts-match","darts-scoring","docker","javascript","no-database","offline-first","privacy-by-design","self-hosted","standalone","tournament-manager","web-app","zero-dependencies"],"latest_commit_sha":null,"homepage":"https://newtondarts.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skrodahl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-21T22:06:15.000Z","updated_at":"2026-04-17T20:33:59.000Z","dependencies_parsed_at":"2025-08-22T11:27:03.556Z","dependency_job_id":"34f1ca0e-fcad-40dc-8a7f-cf6e4e496dd3","html_url":"https://github.com/skrodahl/NewTon","commit_stats":null,"previous_names":["skrodahl/newton"],"tags_count":148,"template":false,"template_full_name":null,"purl":"pkg:github/skrodahl/NewTon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skrodahl%2FNewTon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skrodahl%2FNewTon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skrodahl%2FNewTon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skrodahl%2FNewTon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skrodahl","download_url":"https://codeload.github.com/skrodahl/NewTon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skrodahl%2FNewTon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32734391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bracket","bracket-management","darts","darts-match","darts-scoring","docker","javascript","no-database","offline-first","privacy-by-design","self-hosted","standalone","tournament-manager","web-app","zero-dependencies"],"created_at":"2026-04-21T06:00:20.531Z","updated_at":"2026-05-07T11:01:15.277Z","avatar_url":"https://github.com/skrodahl.png","language":"JavaScript","funding_links":[],"categories":["docker"],"sub_categories":[],"readme":"# NewTon DC Tournament Manager\n\n[![Version](https://img.shields.io/github/v/release/skrodahl/NewTon?label=version\u0026color=blue)](https://github.com/skrodahl/NewTon/releases/latest)\n[![License](https://img.shields.io/badge/license-BSD--3--Clause-green.svg)](https://github.com/skrodahl/NewTon/blob/main/LICENSE)\n[![Docker Pulls](https://img.shields.io/docker/pulls/skrodahl/newton?logo=docker\u0026logoColor=white)](https://hub.docker.com/r/skrodahl/newton)\n [![GHCR](https://img.shields.io/badge/ghcr-available-blue?logo=github)](https://github.com/skrodahl/NewTon/pkgs/container/newton)\n[![Docker Image Size](https://img.shields.io/docker/image-size/skrodahl/newton/latest?logo=docker\u0026logoColor=white)](https://hub.docker.com/r/skrodahl/newton)\n[![GitHub Stars](https://img.shields.io/github/stars/skrodahl/NewTon?style=social)](https://github.com/skrodahl/NewTon/stargazers)\n\u003c!-- [![GHCR Pulls](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fipitio.github.io%2Fbackage%2Fskrodahl%2FNewTon%2Fnewton.json\u0026query=%24.downloads\u0026logo=github\u0026label=ghcr%20pulls)](https://github.com/skrodahl/NewTon/pkgs/container/newton) --\u003e\n\n## The Offline Authority in Darts.\nRuns locally. Syncs across devices. Builds your venue's stats over time.\n\n![Action Shot](https://github.com/skrodahl/NewTon/blob/main/Screenshots/newton-poster-throw.jpg)\n\n### Yours. Not theirs.\nNo signup, no subscription, no cloud. Works offline. Just download and run. Works without asking permission.\n\n### Scan. Score. Done.\nThe Chalker handles the board. QR codes handle the rest. One scan to start, one scan to finish.\n\n### Every match remembered.\nAnalytics that grow with your club. Season leaderboards, player stats, and tournament history — all from data you already have.\n\n---\n\n**[Changelog](https://github.com/skrodahl/NewTon/blob/main/CHANGELOG.md)** | **[Release Notes](https://newtondarts.com/releases/)**  | **[Official Website](https://newtondarts.com)**\n\n**NewTon DC Tournament Manager** provides a clean, professional interface with offline-first design for reliable single and double-elimination darts tournaments. It runs entirely in your browser — no server, database, Internet connection, or installation required.\n\n**NewTon Chalker** is a companion x01 scoring app designed for tablets at the dartboard. Crash-proof with persistent match data, match history, and live statistics. Install as a PWA for a native app experience.\n\n**Total Privacy**: Your tournament and match data live in your browser's localStorage, period. We have a demo site, but even there your data never leaves your device. [Complete privacy by architecture](https://newtondarts.com/privacy.html), not by policy.\n\n**[Download for offline use](https://github.com/skrodahl/NewTon/releases/latest)**, double-click `tournament.html` to get going. Or **[self-host with Docker](https://newtondarts.com/docker-quickstart.html)**.\n\n---\n# See It in Action\n\n## Official Website and Apps\nVisit the official NewTon DC Tournament Manager Website.\n\nFully functional versions of the latest Tournament Manager and Chalker apps are available for use and testing.\n\n[**https://newtondarts.com**](https://newtondarts.com)\n\n\n*All data stays in your browser - nothing is stored on the server or shared with anyone else.*\n\n## Tournament Bracket and Match Controls\n\n**16-player Tournament Bracket  with Status Bar**:\n\n![16-player bracket with \"Match Card Magic Zoom\"](https://github.com/skrodahl/NewTon/blob/main/Screenshots/tournament-bracket-zoom.png)\n\n**Match Controls with Referee Suggestions and Match/Referee Conflict Detection**:\n\n![Match Controls](https://github.com/skrodahl/NewTon/blob/main/Screenshots/match-controls.png)\n\n---\n\n## Getting Started\n\n1. **[Download the latest official release](https://github.com/skrodahl/NewTon/releases/latest)** (Run `git clone` or download ZIP for the latest beta)\n2. Double-click `tournament.html` to open NewTon DC Tournament Manager, and you're up and running\n3. Visit our [User Guide](https://newtondarts.com/userguide.html) to learn how to run and manage tournaments, or press `F1` for help\n\nAll [NewTon DC Tournament Manager](https://newtondarts.com)'s features are described in detail in the [User Guide](https://newtondarts.com/userguide.html).\n\n*No installation, no servers, no complexity — just pure tournament management.*\n\n---\n\n## Docker Deployment (Self-Hosting)\n\n**Want to host NewTon Tournament Manager on your own server?** Docker makes it effortless.\n\n### [**Docker Quick Start Guide →**](https://newtondarts.com/docker-quickstart.html)\n\n**Get running in under 2 minutes:**\n\n```bash\n# Download docker-compose.yml\ncurl -O https://raw.githubusercontent.com/skrodahl/NewTon/main/docker/docker-compose.yml\n\n# Start the container\ndocker compose up -d\n\n# Access at http://localhost:8080\n```\n\n**What's Included:**\n- ✅ Lightweight Alpine container (~60MB)\n- ✅ PHP [REST API](https://newtondarts.com/rest-api.html) for tournament sharing\n- ✅ nginx + PHP-FPM for optimal performance\n- ✅ Multi-architecture support (Intel/AMD + Apple Silicon/Raspberry Pi)\n- ✅ Persistent storage for tournaments\n- ✅ Custom logo and payment QR code support\n- ✅ Optional SEO landing page (`NEWTON_LANDING_PAGE=true`)\n\n**Documentation:**\n- **[Quick Start Guide](https://newtondarts.com/docker-quickstart.html)** - Get running in 2 minutes\n\n---\n\n## Key Features\nSee the NewTon DC Tournament Manager [User Guide](https://newtondarts.com/userguide.html) to learn how to use these features to manage your own tournaments.\n\nMore on the [architecture and focus on resilience here](https://newtondarts.com/architecture.html).\n\n### Tournament Management\n- **Multiple Tournaments**: Create, save, and load with automatic browser storage\n- **Import/Export**: JSON-based backup and sharing between computers\n  - **Tournament Protection**: Completed tournaments loaded from file are read-only to protect data integrity\n- **Tournament History**: Complete match records with lane and referee assignments\n- **Crash Resilient**: Automatic saving prevents data loss\n- **Optional Server Features**: Sharing completed tournaments if hosted on a webserver with PHP, using [REST API](https://newtondarts.com/rest-api.html)\n\n### Single and Double Elimination Brackets\n- **Professional Structure**: Single and Double elimination brackets for 8, 16, and 32 players, facilitates tournaments for 4-32 players.\n- **Smart Generation**: Prevents two walkovers from meeting in first round\n- **Fair Draw**: Byes randomly distributed to prevent unfair advantages and minimize walkover chains\n- **Interactive Visualization**: Zoom, pan, click-to-select winners with complete progression lines and placement indicators\n- **Match Card Magic Zoom:** Auto-zoom on individual matches when zoomed out too far to read and control the matches\n- **Automatic Advancement**: Walkovers advance real players intelligently\n- **Undo**: Reverse recent match results (staged undo prevents accidentally clearing large portions of the bracket)\n- **Contextual Status**: Hover over tournament matches to show status, tournament progression, and undo\n\n#### Match Color Coding\nIntuitive traffic light system for instant priority assessment:\n\n- 🔴 Orange/Red = \"**DO THIS NOW**\" (LIVE matches, current focus)\n- 🟡 Yellow = \"**READY FOR ACTION**\" (can be started, next up)\n- 🟢 Green = \"**COMPLETED**\" (done and archived)\n- ⚪ White/Gray = \"**NOT READY YET**\" (pending, no action possible)\n\n### Match Management\n- **Centralized Control**: Manage entire tournament from Match Controls interface\n- **Clear Progression**: Each match shows exactly where winners and losers advance (\"Leads to...\")\n- **Lane Assignment**: Assign matches to dartboard lanes (1-20 with exclusions, configurable)\n- **Referee System**: Referee suggestions, and select referees with conflict prevention\n- **Real-time Updates**: Live standings and bracket progression\n\n### Player \u0026 Statistics\n- **Player List Registry**: Maintain a persistent list of regular players for consistency across tournaments\n  - Alphabetically sorted for easy scanning\n  - Quick-add players to new tournaments\n  - Import/export with tournament data\n- **Registration**: Add players and track payment status\n- **Late Registration**: New players can be added to a tournament if there are any walkover spots available\n- **Comprehensive Stats**: Short legs, high outs, tons, 180s with configurable points\n- **Live Rankings**: Real-time 1st through 32nd place calculation\n- **Export Results**: CSV and JSON export with full tournament history\n\n### Configuration\n- **Custom Branding**: Add club logo, favicon, and customize title\n- **Flexible Scoring**: Configurable points for participation, placements, and achievements\n- **Match Formats**: Best-of legs for rounds, semifinals, and finals\n- **UI Preferences**: Confirmation dialogs and interface behavior\n\n[Official User Guide](https://newtondarts.com/userguide.html)\n\n---\n\n## Technical Details\n\n**Architecture:**\n- Pure HTML5, CSS3, and JavaScript (ES6+) — zero dependencies\n- Browser LocalStorage for offline persistence\n- Hardcoded progression tables for bulletproof match advancement\n- Transaction-based history system with complete undo functionality\n\n**Browser Compatibility:**\n- Chrome 80+, Firefox 75+, Safari 13+, Edge 80+\n- Requires JavaScript and LocalStorage support\n\nThe architecture and resilence of NewTon DC Tournament Manager is documented on our [official web site](https://newtondarts.com/architecture.html).\n\n---\n\n## Data Management\n\n- **Automatic Saving**: All changes saved immediately to browser storage\n- **Import/Export**: JSON files for backup and computer-to-computer transfers\n- **Privacy**: [Complete local storage](https://newtondarts.com/privacy.html), no cloud or external data sharing\n- **Undo System**: Reverse recent match results with transaction history\n- **Developer Console**: Manage late registrations, debug, view tournament health, transaction log management\n\n---\n\n## Use Cases\n\n- **Tournament Organizers**: Professional dart tournament management\n- **Dart Clubs**: Regular tournament nights and member ranking systems\n- **Event Management**: Pub tournaments, corporate events, charity fundraisers\n\n---\n\n## Credits\n\n**Created by Håvard Skrödahl**\nNewTon DC Malmö\n\n**License**: Open source (BSD 3-Clause License) project for dart tournament management\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskrodahl%2FNewTon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskrodahl%2FNewTon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskrodahl%2FNewTon/lists"}