Fast, minimalist chess training that teaches correct thinking through immediate correction and principled feedback.
No accounts. No social noise. No dopamine tricks. Just you, the board, and the truth.
This platform respects your intelligence. It teaches chess the way it should be taught:
- Immediate feedback on every move
- Principle-based explanations (not just "that's wrong")
- Context-aware difficulty that grows with you
- Zero friction โ no signup walls, no tutorials, just play
If Magnus Carlsen used a training app, it would feel closer to this than anything flashy.
- โ Immediate move grading (brilliant โ blunder)
- โ Best move shown with arrows
- โ Auto-expanded explanations with calm motivational tone
- โ Tactical danger warnings
- โ Evaluation bar always visible
- โ Undo allowed
- Opening detection with names displayed
Tone: Calm, instructional, firm.
- โ Grading shown in collapsible panel (collapsed by default)
- โ Click to expand for full explanations
- โ No best move arrows
- โ Toggle-able evaluation bar (Settings in sidebar)
- โ Limited undo
- Opening detection enabled
Tone: Neutral, restrained.
- โ No evaluation bar
- โ No arrows or hints
- โ Delayed feedback โ see your move grade only after opponent replies
- โ Grade-only display (no explanations)
- โ Stronger engine play
- No undo allowed
Tone: Cold, serious.
- โ Zero feedback during play
- โ No undo
- โ Strongest engine settings
- โ Full structured review only after game
- Pure simulation of tournament conditions
Tone: Silent. Respectful.
- โ
PGN Export with standard annotations (NAGs like
?,!!) - โ JSON Export for full game state and debugging
- โ
Evaluation comments (
[%eval 0.5]) in PGN - โ Compatible with Lichess, Chess.com, and other chess software
- โ Interactive move-by-move replay
- โ Full analysis data and explanations
- โ Move grading and tactical flags
- โ Export game data (PGN/JSON)
- Next.js 16 (App Router with Turbopack)
- TypeScript (strict mode)
- React 18
- Zustand for state management
- Tailwind CSS (dark-mode-first with glassmorphism)
- Stockfish WASM running in Web Worker
- chess.js for move validation and game logic
- react-chessboard for board UI with custom arrow overlays
- Rule-based principle engine
- Maps engine evaluations + tactical patterns โ clear feedback
- Context-aware based on game phase (opening/middlegame/endgame)
- Docker containerization
- Production builds optimized with Next.js static export
| Action | Target Time | Status |
|---|---|---|
| Page load | < 1 second | โ Achieved |
| Move legality check | Instant | โ Achieved |
| Engine evaluation | < 100ms | โ Achieved |
| Feedback render | Same frame | โ Achieved |
If feedback lags, users stop trusting it.
# Clone the repository
git clone https://github.com/youneedgreg/chessy.git
cd chessy
# Build and run with Docker Compose
docker compose up --build
# Open in browser
http://localhost:3000
# Stop container
Ctrl+CHot reload is enabled in development; any changes you make locally will update automatically in the container.
# Install dependencies
npm install
# Run development server
npm run dev
# Open http://localhost:3000/app
/play # Main game interface
page.tsx # Landing + level selection
/components
ChessBoard.tsx
FeedbackPanel.tsx
PostGameReview.tsx
EvaluationBar.tsx
/engine
stockfish.worker.ts
types.ts
/logic
classifyMove.ts
principles.ts
explanations.ts
arrows.ts
export.ts # PGN/JSON generation
/store
gameStore.ts
types.ts
/styles
globals.css
Current Phase: Beta โ Core Features Complete Status: Playable with all difficulty levels implemented
- โ Stockfish engine integration
- โ Move classification system
- โ Level-based feedback (Beginner, Intermediate, Advanced, Silent)
- โ Delayed feedback for Advanced level
- โ Collapsible feedback panels
- โ Post-game review with interactive replay
- โ Game export (PGN/JSON)
- โ Opening detection
- โ Evaluation bar with toggle
- โ Best move arrows (Beginner only)
- โ Docker deployment
We welcome contributions that align with the project's philosophy of speed, clarity, and respect for the player's intelligence.
See CONTRIBUTING.md for guidelines.
- Respect the player's intelligence โ No hand-holding, no gamification
- Teach by consequence โ Show why moves fail, not just that they fail
- Hide complexity โ Fast, clean UI with zero cognitive overhead
- Fast feedback beats clever features โ Performance is a feature
- Old principles, modern delivery โ Classical chess wisdom, contemporary UX
- Project planning
- Core engine integration
- Move classification system
- Level-based feedback (4 difficulty levels)
- Post-game review with export
- UI polish (glassmorphism, dark mode)
- Docker deployment
- Performance optimization
- Extended opening book
- Mistake pattern recognition
- AI-enhanced explanations
- Personalized training plans
- Spaced repetition for mistakes
- Mobile app (React Native)
MIT License - See LICENSE for details.
- Stockfish for the incredible open-source chess engine
- lichess for inspiration on clean, fast chess UX
- Classical chess coaches who taught principles over memorization
Built for those who want to improve, not just play.