Changelog

What's new in PuttScores

New features, improvements, and fixes shipped to PuttScores.

Update September 8, 2026

September update: demo setup, product pages and live leaderboards

  • New Refreshed nine product pages and the About page. The homepage and product-page footers now group product links, platform information, updates and company pages for easier browsing.
  • New Updated dashboard sidebar and card interactions with responsive motion and reduced-motion support.
  • Fix Demo onboarding is optional: press Skip setup to close the wizard and explore the dashboard without completing the steps. Skip setup and Finish Setup no longer reload the demo straight back into onboarding; a fresh demo page still offers the walkthrough.
  • Fix Alfred's active-alert view now includes both open and assigned alerts when those statuses are requested together.
  • Fix Fixed a template error that prevented player review links from rendering.
  • Fix Live leaderboards keep different players with the same name in separate rows and exclude unplayed, all-zero rounds.
  • Fix Corrected the TV leaderboard QR link so players reach the course scorecard entry page.
  • Breaking Live Leaderboard now requires Premium or higher for new courses. Eligible grandfathered Standard accounts remain supported, and the dashboard explains the access change.
Update September 3, 2026

September recap: booking and dashboard reliability

  • New Added a four-step New Booking wizard covering customer details, date and time, tickets, and review.
  • Fix Improved booking calendar readability, status colors and horizontally scrollable tabs on smaller screens.
  • Fix Customer rescheduling now rejects closed days and sends an updated booking confirmation email.
  • Fix Aligned staff booking tax quotes with the public booking flow and corrected how booking settings are saved.
  • Fix Fixed booking-list and waitlist routing, unpaid balance labels and date handling. Canceled bookings no longer offer waiver or start-game actions.
  • Fix Booking pages now handle unavailable payment initialization instead of leaving checkout in a broken loading state.
  • Fix Protected structural tournament settings from changes after an event leaves draft status, preserving its recorded format and entries.
  • Fix Corrected support-chat attachment routing and dashboard toggle states, and tightened access to booking settings.
Update August 30, 2026

August recap: waivers, branding and course operations

  • New Added editable photo-sharing terms and more course branding on downloaded scorecard images.
  • New Refreshed the marketing toolkit and guides hub. Generated marketing materials can include the course's logo, name and relevant links.
  • New Expanded group waiver signing with adult and minor steps, consent for each required document, version-aware re-signing and expiry handling.
  • New League participants can open their team chat through a league magic link, with team and participant access checks retained.
  • New Added automatic selfie-reel refresh, configurable TV date formats and a scorecard QR overlay.
  • Fix Corrected seasonal billing-pause scheduling, including carrying paused time forward for annual subscriptions.
  • Fix Prevented unintended owner-account deactivation.
  • Perf Reduced unnecessary data loading on dashboard, scorecard and TV leaderboard paths by narrowing the fields and date ranges read.
Update July 31, 2026

July recap: TV displays, tournaments and daily workflows

  • New Expanded TV display controls with per-board scorecards and date periods, saved settings, editable dates, team-score views and more readable leaderboard rows.
  • New Added hole-in-one selfies and TV celebrations with player consent and opt-out controls, alongside improved selfie reels.
  • New Expanded tournament team play, Swiss-format handling, manual player invitations, single-screen bracket views and downloadable Event Kit PDFs.
  • Fix Improved finished-round posting, duplicate protection and offline retry behavior, including clearer queue status messages.
  • Fix Improved staff POS payment confirmation, PIN sessions and cash/card handling, and repaired the scorecard food-ordering checkout flow.
  • Fix Corrected booking-management availability requests, equipment handling and cancellation refunds with confirmation emails.
  • New Added a waitlist for new courses while registrations are paused.
  • New Added account-deletion requests with a 30-day cancellation window.
  • Fix Connected newsletter credit-pack purchases to checkout and corrected sponsorship renewal and expiry handling.
  • New Added course terms and privacy links, more branded results emails and certificates, and improved mobile scorecard save/share controls.
Update June 27, 2026

June recap: memberships, stationary play and game results

  • New Expanded PuttPass with passwordless member accounts, household seats and invitations, member rosters and self-service cancellation.
  • New Added guest allowances, off-peak and blackout rules, and membership food discounts.
  • New Added multi-pass and gift purchases for one-time PuttPass tiers. Monthly subscription purchases remain limited to one pass at a time.
  • New Expanded stationary play with group registration, four-digit group PIN checks, a SmartSelfie booth and ranger controls.
  • New Added automatic Toast menu syncing for approved, provisioned connections; connections awaiting approval show their pending state.
  • New Added TV leaderboard font-size controls and branded rating and selfie embeds.
  • Fix Added an HTTP fallback for saving completed games when the real-time connection drops, with duplicate-save protection.
  • Fix Improved booking calendars, closed-day handling, payment authentication and capacity checks, plus recovery for interrupted membership activation.
  • Fix Improved iOS selfie saving and sharing, analytics date-range handling, dark-mode styling and older TV-browser compatibility.
Update May 31, 2026

Late-May recap: PuttPass and player engagement

  • New Launched PuttPass membership sales with course-managed tiers, a join flow, digital passes and staff lookup and check-in.
  • New Added configurable membership perks, tier cover images, a go-live checklist, pass delivery messages and printable counter materials.
  • New Expanded player engagement with rank-watch and comeback messages, celebrations and TV carousel updates.
  • New Added multi-document waiver selection and scorecard waiver-token handling.
  • Fix Connected equipment checkout controls and improved the overdue-equipment view.
  • New Added file attachments to support chat.
v2.21.0 May 28, 2026

Mystery Putt feature removed

  • Breaking Mystery Putt random-hole rewards system has been fully removed from PuttScores. The Mystery Putt dashboard configuration tab, reward-types editor, and backend routes are gone.
  • Breaking Routes removed: GET/POST /api/mystery-hole-settings, GET /api/mystery-hole/:scorecardId, POST /api/mystery-hole/:scorecardId/complete. Any external integrations hitting these will receive 404.
  • Breaking Courses with Mystery Putt previously enabled will no longer see the configuration UI. Existing per-course Mystery Putt data remains in MongoDB but is orphaned (Mongoose schema field dropped, data ignored on read).
v2.20.0 May 28, 2026

Lucky Putt feature removed

  • Breaking Lucky Putt rewards system has been fully removed from PuttScores. The Lucky Putt sidebar tab, kiosk redemption view, mobile preview, AI scorecard wizard toggle, and player-facing reward spinner are all gone.
  • Breaking Routes removed: /lucky-putt-dashboard, /lucky-putt-kiosk, /api/rewards/:scorecardId, /api/rewards/:scorecardId/spin, /api/kiosk/rewards/verify/:code, /api/kiosk/rewards/redeem/:code, /api/kiosk/rewards/stats/:courseId. Any external integrations hitting these will receive 404.
  • Breaking Courses with Lucky Putt previously enabled will no longer see the configuration UI or trigger reward spinners. Existing per-course Lucky Putt data remains in MongoDB but is orphaned (Mongoose schema field dropped, data ignored on read).
  • Fix Removing the Lucky Putt code also resolves a production SyntaxError (Sentry NODE-EXPRESS-2/4/5/9 — 400+ events / 210+ users) that was caused by a malformed testButton.onclick handler in the Lucky Putt integration block.
v2.19.0 March 10, 2026

Security Hardening — Socket Auth, Secret Filtering & Input Whitelisting

  • Fix Added authorization guards to 15 Socket.io handlers — anonymous sockets can no longer mutate kitchen orders, delivery status, queue entries, or game state
  • Fix Analytics API no longer returns Cloudinary secrets, Telnyx API keys, Stripe Connect accounts, or user auth credentials
  • Fix Scorecard page no longer receives full Cloudinary config with API secret — only the useCustom flag is passed
  • Fix Course settings API now masks Cloudinary apiSecret and Telnyx apiKey in responses (shows last 4 characters only)
  • Fix Booking settings update now whitelists allowed fields to prevent mass-assignment via request body injection
  • Fix Individual booking update now whitelists allowed fields (status, notes, playerCount, date, time, customer info)
  • Fix Maintenance routes (asset, schedule, task create/update and issue reporting) now whitelist request body fields — 6 endpoints hardened
v2.18.0 March 10, 2026

Payment Safety Nets, Refund Accounting & Security Hardening

  • Fix Booking refunds now record transactions via balanceService.processRefund() — fixes incorrect pending balance after refunds
  • Fix Group booking refunds now record transactions via balanceService.processRefund()
  • New Webhook safety net for booking payments — recovers bookings if browser crashes after Stripe payment
  • New Webhook safety net for food order payments — recovers orders if browser crashes after Stripe checkout
  • New Connect account booking payment recovery via stripe-connect.js handlePaymentSucceeded()
  • Fix Live view status API now requires authentication — was previously public
  • Fix Debug/simulation endpoints gated behind NODE_ENV=production check
  • Fix TV preview demo route now requires authentication
v2.17.0 March 10, 2026

Scorecard Creation Fix & AI Wizard Repairs

  • Fix Fixed Create Scorecard and AI Create Scorecard buttons not responding — event handlers now use delegation for Alpine.js tab rendering
  • Fix Fixed broken HTML in AI Scorecard Wizard (missing closing tags on input and textarea elements)
  • New Telnyx Setup paid consultation service ($99/$199 tiers) with Stripe checkout and email confirmations
  • New Custom Filter Design consultation ($499) — step wizard in SmartSelfie dashboard settings
  • Fix Food order confirmation emails were never sent due to incorrect field reference (order.customerEmail → order.customer.email)
  • New Added missing receipt/confirmation emails across payment flows (setup jobs, tournaments, group bookings, marketplace templates)
v2.16.0 March 10, 2026

Billing Checkout Fix & Stripe Init Reliability

  • Fix Fixed Stripe.js race condition that caused 'stripe is not defined' during checkout
  • Fix Added recovery guard in checkout handler when Stripe CDN loads slowly
  • Fix Checkout success/cancel URLs now use BASE_URL env instead of hardcoded domain
  • New Billing checkout e2e test suite with authenticated session support
  • New Premium trial thank-you email template
v2.15.0 March 9, 2026

Payout System Fix & Payment Testing

  • Fix Payout Now uses transaction-based balance instead of Stripe balance API — no more $0.00 errors
  • New Payout Now marks transactions as paid and records full payout history
  • New Graceful fallback from instant to standard payout, with local reconciliation if Stripe already auto-paid
  • New Payment & payout integration test suite for kiosk, booking, and food ordering transactions
  • New E2e test suite for bookings, food ordering, mobile check-in, payments, and tournaments
v2.14.0 March 9, 2026

Per-Feature Tax System & Landing Page Updates

  • New Per-feature multi-tax-rate system for kiosk, bookings, food ordering, and tournaments
  • New Public changelog page
  • Fix Landing page carousel social proof section
v2.13.0 March 5, 2026

Pre-Game Hype & Dashboard Improvements

  • New Pre-game hype section with live stats on course welcome page
  • New Enhanced scorecard UX with overlay click-blocking and image improvements
  • Fix Dashboard widgets, Stripe Connect, tournament brackets, and billing improvements
  • Fix Course timezone for Games Today dashboard widget
v2.12.0 February 28, 2026

Voice AI & Scorecard Experience

  • New Voice AI phone agent for course inquiries
  • New Enhanced scorecard UX with tap sounds, refined transitions, and image download
  • New Premium PNG image download replaces PDF for scorecards
  • Fix Share always includes selfie image file
v2.11.0 February 22, 2026

Tournaments, SmartSelfie & Medals

  • New Tournament system updates with medal PNGs and dopamine engine
  • New Team name support in tournament registration, brackets, and TV views
  • Fix SmartSelfie share attaches image, camera loading animation added
  • Fix Filter generic carousel logos, tournament audit dashboard
  • Fix Fullscreen player camera overlay, shrink color selection balls
v2.10.0 February 15, 2026

Course Directory & Security

  • New Rebuilt course directory with improved search and filtering
  • New Improved leaderboard caching for faster load times
  • New Weekly recap emails for paid subscribers
  • Fix CORS scorecard delete, inline delete without page refresh
  • Fix Hardened security across multiple endpoints
v2.9.0 February 11, 2026

SmartSelfie System

  • New SmartSelfie AI photo booth with filters, branded frames, and engagement engine
  • New 5 frame templates: Classic, Polaroid, Neon, Minimal, Championship
  • New Custom filter upload system with multi-asset support
  • New Live camera preview in dashboard settings
v2.8.0 February 6, 2026

Photo Booth & Public API

  • New Photo booth system for selfie stations
  • New Public API v1 with interactive Try It console
  • New Putt Points loyalty rewards system
  • New Stripe Connect payout safety improvements
  • Fix Final scores page light/dark mode styling
v2.7.0 February 5, 2026

Billing, Sharing & Onboarding

  • New Share scores button on final scores and goodbye pages
  • New Shareable game result links
  • New Plan upgrade comparison UI in billing tab
  • New Onboarding wizard for new subscribers
  • New Booking-to-scorecard connection via QR code
  • Fix Billing tab checkout with Stripe.js