-
v1.11.8 - Refreshed marketing site (racketsocial.app): new hero, six feature cards covering leaderboard, shared sessions, PWA + offline, multi-session, skill-balanced courts and multi-language; six recaptured screenshots from the current app.
- New public changelog page at racketsocial.app/changelog/, regenerated from CHANGELOG.json on every push to main so every release is visible.
- FAQ: added 'Is Racket Social actively developed?' linking to the new changelog page.
- Site: removed stale screenshots and the dead 'Recently Shipped' section; sitemap updated.
-
v1.11.7 - Translations: significantly improved coverage and accuracy across all 23 supported languages. ~86 missing keys filled in per language, with glossary enforcement so sport-specific terms (court, session, match, etc.) translate consistently.
- Translations: fixed wrong-meaning words in three languages — German now uses 'Spielrunde' instead of 'Sitzung', Arabic 'ملعب' instead of 'محكمة' (which means 'tribunal'), and Tagalog 'Court' instead of 'Korte'.
- Internal: glossary is now injected into both build-time bulk translation and runtime on-the-fly translation paths, so terminology stays consistent regardless of how a string is translated.
- Internal: added an apply-translations helper script for the translations workflow.
-
v1.11.6 - Fix: light and dark theme now apply consistently across the app, including the public shared session viewer (/shared/...) which previously inherited whatever theme the last logged-in user had set.
- Fix: the session title in the shared session header is now legible in both themes (it was barely visible in light mode and tinted incorrectly in dark mode).
- Fix: the Sessions home screen no longer has fragments stuck in dark mode when the rest of the page is light — the last-session card, collapsed rows, swipe rename action, section headers, and expanded card text now follow the active theme.
- Fix: the resume and delete confirmation sheets on Sessions now follow the active theme instead of always rendering dark.
- Internal: standardised hardcoded colours throughout the client CSS to use semantic theme tokens, with a brief contributor reference at the top of index.css.
-
v1.11.5 - Home screen tidy-up: /welcome and /sessions are now a single home screen at /sessions. Old /welcome links keep working via redirect, but everything lives in one place now.
- Fix: the 'Players' label in the setup dropdown was showing a raw translation key in English in some cases — now displays correctly.
-
v1.11.4 - Session settings redesigned: Edit Session is now organised as Name → Courts → Players → Share → Advanced, with a featured Share card (148px QR, save-as-PNG, WhatsApp share) and a collapsible Advanced section for matchmaking, chip display, and the new auto-rotate sitting-out option.
- Players section visual refresh: clearer active/sitting-out chips, legend, and count status.
- New auto-rotate sitting-out option: when enabled, the matchmaking algorithm prefers rotating the bench so the same players don't keep sitting out.
- Inline confirmation prompt when changing courts or format mid-round, so accidental taps no longer disrupt a live game.
- Fix: starting a game now cancels any in-progress player switch, so the live match no longer shows stale green/highlight chips from an incomplete swap.
- Fix: filled in missing English translation strings that were leaving raw keys visible in places.
-
v1.11.3 - Internal: disabled the auto-trigger on the Play Store deploy workflow. AABs are being built manually until the CI flow is reliable; merges to main no longer produce red checks.
-
v1.11.2 - Internal: Play Store deploy workflow now bypasses an interactive Bubblewrap prompt that was preventing CI from building the AAB. No user-facing changes.
-
v1.11.1 - Refreshed branding: new logo across the PWA, marketing site, browser favicon, Apple touch icon, and the Android splash screen. Canonical SVG now lives in the repo so future updates regenerate every asset from one source.
- Play Store assets ready: high-res icon and 1024x500 feature graphic produced for the upcoming store listing.
-
v1.11.0 - One-tap demo sign-in: typing demo@racketsocial.app on the magic-link form signs you in immediately without an email. Each IP gets its own isolated account, auto-populated with 20 sample players (Alice through Tom). Demo accounts reset every 14 days.
- New /data-deletion guide at racketsocial.app/data-deletion explaining how to delete your account or any subset of your data, with a matching FAQ entry on the landing page.
- Fix: privacy policy, terms, cookies and the account-deletion page now load without signing in — required for Play Store compliance and for users discovering legal pages from external links.
- Fix: client-side routes such as /delete-account now respond correctly to URL checkers and link previews (no more 404s for non-browser clients).
- Privacy policy updated to describe the demo account flow and the IP-derived user identifier.
-
v1.10.0 - Home screen redesigned as a session index — see all your sessions at a glance, with a clear warning when one has gone stale.
- Stale sessions are now detected and auto-bounced — no more zombie sessions hanging around in the background.
- Public account-deletion page at /delete-account — sign in and remove your account in two clicks, or contact support if you've lost access.
- Fix: the player-chips visibility toggle now updates instantly when you tap it.
- FAQ section added to racketsocial.app to help new users (and AI search) find common answers.
-
v1.9.0 - Multi-language support with translations for 22 languages.
- Legal pages (privacy, terms, cookies) now translated to all supported languages.
- Globe indicator on Settings when a custom language is active.
- Simplified Chinese translation improvements based on native speaker feedback.
- Default player names now use the selected language.
- Sitting Out widget header and match status badge now translated in all languages.
-
v1.8.1 - Session statistics panel accessible during active sessions.
- Session configuration moved to a dedicated view within the session screen.
- Fix: iOS PWA header and menu now display correctly below the notch/status bar.
- Fix: player names in shared session viewer now resolve correctly.
- Fix: inactive players are no longer included when creating new sessions.
- Fix: new sessions now default to the configuration view.
- Fix: removed broken mixed court mode option from session setup.
- Fix: toggle button clicks no longer swallowed by input blur.
-
v1.8.0 - Google Play Store support via Trusted Web Activity (TWA) with adaptive icons, splash screen, and CI/CD pipeline.
- Per-session leaderboard with sortable columns.
- Delete individual sessions from the sessions list.
- Fix: statistics view now sources matches from sessions instead of empty legacy array.
- Fix: "Delete All" in settings now correctly deletes all sessions.
- Fix: properly-sized PNG icons and manifest for Play Store compatibility.
-
v1.7.0 - Magic link login: sign in with just your email — no password or signup form needed.
- Skill-balanced matchmaking: opt-in toggle to factor player ratings into court assignments.
- Sentry error tracking for client and server.
- Fix: server-side account deletion now works for GDPR compliance.
- Fix: shared session link no longer crashes when skill rating columns are missing.
-
v1.6.0 - Elo ratings: TrueSkill-based player ratings displayed on chips, leaderboard, and shared session stats.
- Shared session viewer: player names and Elo ratings now display correctly.
- Share panel moved into Settings section of setup dropdown with compact QR code.
- Player chip display toggle (Nothing / Session Statistics / Player Rating) with default set to Rating.
- Fix: stale session banner now disappears when clicking Continue or New Session.
- Fix: smart launch redirect works reliably after OAuth login.
-
v1.5.3 - Add GDPR-compliant privacy policy, terms of service, and cookie policy pages.
- Add data export (JSON download) and account deletion in Settings.
- Production cutover runbook for Fly.io migration.
-
v1.5.2 - Fix: /players page no longer redirects to active session on reload.
- New player dialog defaults to 'Player N' name.
- Updated player management help text for session-based workflow.
-
v1.5.1 - Update GitHub Actions to Node.js 24-compatible versions (checkout v6, setup-node v6).
- Replace Pendo analytics with Amplitude.
-
v1.5.0 - Single-screen session experience: manage setup, rounds, scores, and history on one scrollable screen.
- Match lifecycle as expandable cards: generate round, start game, log scores — all inline.
- Post-session stats: see rounds played, matches won, and win rate per player after ending a session.
- Retroactive score logging: add scores to past rounds from the match history.
- Context-aware end session: end a session from any state with appropriate prompts.
- Previous sessions accessible via Sessions menu item.
- Removed bottom navigation bar and old multi-screen session flow.
-
v1.4.1 - Update Supabase configuration for Vercel integration with automatic branching.
- Staging and PR preview deployments now use Supabase branching for isolated environments.
-
v1.4.0 - Every game state now has its own URL for deep-linking and browser navigation.
- Session URLs: /sessions/:id/setup, /play, /play/preview, /play/live, /play/scores, /summary.
- Legacy /matches route redirects to /sessions.
-
v1.3.0 - Migrate player IDs from sequential numbers to UUIDs for session sharing.
- Add displayOrder field for UI badge display ordering.
-
v1.2.4 - Fix players disappearing when marking them away during game editing.
- Game editing now uses session-scoped state instead of global player availability.
- Fix high severity tar dependency vulnerability.
-
v1.2.3 - Fix match generation stalling when players fewer than total court capacity.
- Add ESLint and Prettier for consistent code style.
- Add automated GitHub releases on merge to main.
- Add project milestones and versioning strategy.
-
v1.2.2 - Fix player rename in session edit view.
-
v1.2.1 - Bug fix for player duplication in session.
-
v1.2.0 - Introducing session mode as a basis for scoring, leaderboards and sharing.
-
v1.1.4 - Debugging only update. No user-facing changes.
-
v1.1.3 - Players can be moved to sit out without a replacement player being selected.
-
v1.1.2 - Fix overscroll bug when dragging down screen on mobile.
-
v1.1.1 - Add statistics view on Player chip in matches list.
- Fix algorithm bug causing uneven distribution of sit-outs.
-
v1.1.0 - Login with Google account is requried as we start data syncing.
- Bug fixes to avoid identical match id.
-
v1.0.8 - Improved game generation algorithm and UI flow.
-
v1.0.7 - Improved UI for sitting out.
-
v1.0.6 - Moved Configuration data to cloud storage.
- Added Supabase integration for cloud storage.
-
v1.0.5 - Added data version management and migrations.
-
v1.0.4 - Add analytics consent banner on first load.
- Store analytics consent in local storage.
- Update config view to allow toggling analytics consent.
- Clear analytics data when user withdraws consent.
-
v1.0.3 - Simplify manifest.json version to incorrect update alerts.
- Add script to build process to ensure single canonical version source.
-
v1.0.2 - Add Tracking and Analytics Consent Banner
- Tidy up About page.
-
v1.0.1 - Themeing cleanup and mobile view improvementns.
- Algorithm improvements to reduce consecutive sit-outs for players.
- Alogrithm improvemetns to balance sitout rate over count of matches played.
- Version information now sourced from package.json
-
v1.0.0 - Initial release
- Player management system
- Court assignment optimization
- Match scheduling with simulated annealing algorithm
- Statistics and analytics
- PWA support with offline functionality