Improvements
- Faster page loads (forum, playlists, mode selection)
- Better Google indexing (dynamic sitemap, richer metadata)
- Smoother mobile navigation
Security
- Hardened protection against abuse and automated scripts
- Critical dependencies updated (0 npm vulnerabilities)
Improvements
- Song Stack — song suggestions are now restricted to the selected artist
- Song Stack — live versions and duplicates are excluded from suggestions and the track pool
- Most Streamed — each round now shows a completely fresh pair, preventing the top song from carrying over every round
- Most Streamed — replay button to start a new game with the same artist
New game modes
- Most Streamed — compare the stream counts of two songs from an artist and guess which one has more plays
- Song Stack — a solo blind test where you stack correct answers to chain as many songs as possible
Improvements
- Online player indicators — mode cards now show avatars of players currently in a lobby or who played today
Bug fixes
- Online player indicators were counting stale lobby records; fixed
What's new
- Redesigned home page — Artist of the Day & Song of the Day featured with premium gradient cards, the 6 other modes in a 3-column grid, and a new gradient tagline
- Leaderboard — your position is now shown at the bottom of page 1 when you are outside the top 10
Bug fixes
- Artist of the Day & Song of the Day — players who had failed could replay the game; replaying is now blocked server-side
- Artist of the Day & Song of the Day — a loss now correctly resets the streak to 0
Stability & Security
- Rate limiting added to all previously unprotected API routes (AOTD, SOTD, leaderboard, badges, bug report, profile name) — protection against abuse and denial-of-service attacks
- Security headers hardened — X-Frame-Options corrected to block all iframe embedding
- Request body size validation on bug report endpoint — prevents large-payload injection attacks
Performance
- Song of the Day: database calls are now parallel (Promise.all) — response time reduced by ~50% for logged-in users
What's new
- 10 new Artist of the Day & Song of the Day badges — earn streak badges from 1 to 100 consecutive days
- Artist of the Day & Song of the Day daily picks are now persisted in the database at day start — guarantees the same artist/song for all players even without Redis
Improvements
- Leaderboard — long names and PRO badges no longer get cut off on mobile in the podium
Bug fixes
- Profile pictures: manually uploaded photos were showing gradient initials instead of the actual image
- Leaderboard — crash when switching to AOTD/SOTD streak sort (TypeError: Cannot read properties of undefined)
Performance
- GPU-only animations — removed janky box-shadow keyframes for silky smooth visuals
- React.memo on PlayerAvatar, RankBadge, ProBadge, XpBar, Visualizer — fewer re-renders
- will-change hints on all animated elements (waveform bars, name effects, avatars)
Responsive
- Podium layout now fits 320px screens (smaller spots + avatars)
- All touch targets are now 44x44px minimum (modal close, sort buttons, friends panel)
- Leaderboard names truncated properly instead of overflowing into scores
- Friends panel Accept/Decline/Send buttons enlarged for mobile
- Artist of the Day: empty rows hidden on mobile, only played rows visible
- Artist of the Day: input + Guess button now sticky at bottom of screen
- Artist of the Day: compact cards on mobile (smaller cells, fonts, padding)
- Artist of the Day: input field and Guess button now stack vertically and take full width on mobile
Bug fixes
- Fixed waveform equalizer bars causing paint jank during playback
- Fixed global leaderboard names overlapping score column on narrow screens
What's new
- Song of the Day — a new daily Wordle-style mode to guess the song title letter by letter
- Song of the Day share card — generate and share your result (PNG, social networks)
- Song of the Day streak leaderboard added to the ranking page
- Artist of the Day game progress now saved for logged-in users (persists across page reloads)
- More international variety in Song of the Day (artist pool expanded from 100 to 500)
Improvements
- Artist metadata accuracy improved — real Deezer fan counts used for popularity, better artist type detection (solo vs duo vs group)
- Share card modal: improved mobile layout (vertical stacking, proper scroll)
- Improved spacing between word groups in the Song of the Day tile grid
- Friends panel: real-time unread message dot indicator
- Patch notes popup now re-appears on every new version, not just on first visit
Bug fixes
- Artist of the Day: game state was not saved for logged-in users
- Share card: buttons were overflowing on mobile (CSS specificity issue)
What's new
- Artist of the day — a new daily challenge with its own leaderboard
- Brand new solo flow redesign
Bug fixes
- Security, performance and i18n fixes