The system now shows everything, from everywhere, to everyone.
v5.0.10 adds analytics-only deployment mode, automatic tournament import from disk, manual import from JSON files, a read-only bracket view, and unlimited darts for casual play. Under the hood, a shared backfill function unifies all import paths into one reliable pipeline.
Analytics-Only Mode
Set NEWTON_MODE=analytics in your Docker environment.
What changes:
Tournament Setup, Player Registration, Tournament Bracket, and Chalker tabs hidden
Header adapts to “[Club Name] - Analytics”
Global Settings shows only Branding and Point Values
Import Register hidden — data comes exclusively from disk
Delete buttons inaccessible — Server Settings is hidden
Auto-navigates to Analytics on load — no flash
Help system disabled — no tournament-related notifications
Font preloading — eliminates font swap flash
CSS-driven visibility — PHP sets body class, CSS handles hiding. Clean platform for future modes.
Read-Only Bracket View
“View Bracket” button on tournament rows and match list. Loads the tournament JSON from disk, renders the bracket read-only. No match controls, no Developer Console. Uses currentTournament with an _analyticsPreview guard — save functions skip analytics previews, so no phantom data is persisted.
Bracket view and auto-import require the REST API (Docker deployment). Manual JSON import works without the API.
Tournament Import & Auto-Import
Import Tournament from JSON
“Import Tournament” button in the Analytics header. Pick a tournament JSON file (same format as Tournament Setup export) and it’s imported directly into the Analytics register. No localStorage, no API required — works offline, works in both full and analytics mode.
Auto-Import from Disk
On every Analytics load, the system checks for shared tournaments on disk not yet in the Analytics register. New tournaments are imported silently using the shared backfill function. One API call to list tournaments, then fetch and import any missing ones.
Requires REST API (Docker deployment).
Shared Backfill Function
NewtonDB.backfillTournament(t, config) — a single function in newton-db.js that handles all tournament imports into IndexedDB. Match-level achievement deltas from transaction history, tournament-level achievement aggregates, placements, reconciliation. Used by:
Import Tournament from JSON (file → IndexedDB)
“+ Analytics” from Recent Tournaments (localStorage → IndexedDB)
Auto-import from disk (server → IndexedDB)
Chalker: Unlimited Darts
New “Unlimited” option in Max Rounds — both in Global Settings and the Chalker app. Internally uses 100 rounds (300 darts per leg), which keeps the QR result payload within comfortable scanning limits. No special-case logic — all existing code works unchanged.
Docker Environment Variables
Variable
Values
Default
Description
NEWTON_MODE
full, analytics
full
App mode. analytics hides tournament management.
NEWTON_LANDING_PAGE
true, false
—
Enables the landing page at /.
NEWTON_DEMO_MODE
true, false
false
Shows demo banner.
NEWTON_GITHUB_URL
URL
github.com/skrodahl/NewTon
GitHub link in UI.
NEWTON_BASE_URL
URL
—
Base URL for canonical/OG tags.
Other Changes
Server Settings separated — moved from User Interface into its own pane in Global Settings.
“Allow deleting tournaments” — renamed; now also controls Analytics register delete buttons.
Dashboard entry point — clicking “Analytics” on a tournament always opens the Dashboard tab.
Migration
No migration required. New environment variables are optional — existing deployments continue to run in full mode by default.
NewTon DC Tournament Manager v5.0.10 — The Full Picture.