Releases: tmcarmichael/nxtchess
Releases · tmcarmichael/nxtchess
v0.2.0-alpha
Second alpha of NxtChess.
Major feature release adding competitive play, four game modes, a full user system, and production infrastructure.
Try NxtChess live:
https://nxtchess.up.railway.app
New Game Modes
- Analysis mode with multi-line engine evaluation (MultiPV), FEN/PGN import, move history navigation
- Puzzle mode with mate-in-1/2/3 tactics, ELO-rated difficulty tracking, setup move animation, and
puzzle history - Training mode with endgame practice, Stockfish evaluation, move quality feedback
(best/excellent/good/inaccuracy/mistake/blunder), and scoring
Competitive & Multiplayer
- Multiplayer lobby with real-time game browser via WebSocket, filtered by time control
(Bullet/Blitz/Rapid/Classical) - ELO rating system for multiplayer and puzzles separately, K-factor 40 for new players scaling to 32
- Rating history with profile charts and time range selector
- Achievements with 51 badges across 6 categories (loyalty, streaks, rating, chess moments, volume,
fun), 5 rarity tiers, toast notifications, and profile showcase
User System
- OAuth sign-in via Google, GitHub, and Discord
- Profile pages with rating history charts, recent games, win/loss/draw stats, achievement showcase with
collapsible categories - Profile icons with chess piece selection tied to rating level
- Username setup with first sign-in flow and validation
UI/UX
- PlayHub redesign as unified hub for AI games, multiplayer creation, and lobby browsing
- Board interactions including right-click drag arrow annotations, castling via rook square, premove
support, pre-move x-ray - Sound effects for moves, check, illegal move, game end, low time warning with settings toggle
- Light/dark theme with persistent selection
- Mobile polish with touch drag-and-drop, responsive board sizing, mobile-specific feedback fixes
- Floating pieces hero animation with gravitational spread on landing page
Technical
- Observability with Prometheus metrics, Loki log aggregation, Grafana dashboards (PLG stack)
- CI/CD via GitHub Actions for frontend and backend
- Testing with frontend unit tests (Vitest) and backend Go tests
- Database migrations using golang-migrate embedded in Go binary (5 migrations)
- Backend hardening with token bucket rate limiting, security headers, connection limiting (5/IP),
structured logging, graceful shutdown - Adaptive engine with runtime detection loading multi-threaded 69MB or single-threaded 7MB Stockfish
based on device capability - PWA with offline-first IndexedDB persistence, Workbox caching, app shortcuts
Bug Fixes
- Multiplayer move sync, timer bounce, and self-join race conditions
- Engine UCI race conditions with separate eval and AI workers
- Double modal edge case (resign + game end simultaneously)
- Mobile touch RequestAnimationFrame root cause fix
- SSL SNI, CORS proxy, cross-origin cookie fixes
- Material display calculation corrections
Known Limitations
- Limited testing set of puzzles
- No ELO range filtering in lobby
- No post-game analysis with move classification
- No opening explorer or Syzygy tablebases
- No spaced repetition for puzzles
Contributing
Feel free to open an issue and collab.
just dev (with just and docker installed) for full stack local