https://github.com/utkarshthedev/chessticks
A modern, feature-rich chess timer application built with Next.js and TypeScript. Designed for chess players of all levels, from casual games to tournament play.
https://github.com/utkarshthedev/chessticks
chess nextjs shadcn-ui tailwindcss timer typescript zustand
Last synced: 10 months ago
JSON representation
A modern, feature-rich chess timer application built with Next.js and TypeScript. Designed for chess players of all levels, from casual games to tournament play.
- Host: GitHub
- URL: https://github.com/utkarshthedev/chessticks
- Owner: UtkarshTheDev
- License: mit
- Created: 2024-11-15T09:31:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-11T10:17:33.000Z (10 months ago)
- Last Synced: 2025-08-11T10:28:25.739Z (10 months ago)
- Topics: chess, nextjs, shadcn-ui, tailwindcss, timer, typescript, zustand
- Language: TypeScript
- Homepage: https://chessticks.vercel.app
- Size: 1.13 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# ChessTicks โฑ๏ธ
[](https://chessticks.vercel.app)
[](LICENSE)
[](https://www.typescriptlang.org/)
[](https://nextjs.org/)
A modern, professional chess timer application designed for chess players of all levels. From casual games to tournament play, ChessTicks provides all five major tournament timer modes with a sleek, intuitive interface.

## ๐ Try It Now - No Installation Required!
**๐ [Launch ChessTicks](https://chessticks.vercel.app) ๐**
Simply click the link above to start using the chess timer immediately in your browser. Works perfectly on:
- ๐ฅ๏ธ **Desktop computers**
- ๐ฑ **Mobile phones**
- ๐ฑ **Tablets**
- ๐ป **Any device with a web browser**
*No downloads, no installation, no setup required!*
## ๐ What is ChessTicks?
ChessTicks is a comprehensive chess timer application that supports all five major tournament timer modes used in professional chess. Whether you're playing a quick blitz game or a classical tournament match, ChessTicks provides the precise timing controls you need.
## โจ Key Features
### ๐ Complete Tournament Timer Support
- **โก Sudden Death** - Classic time control (e.g., 5 minutes per player)
- **โณ Simple Delay** - Delay before main time counts down (e.g., 3 min + 5 sec delay)
- **๐ Bronstein Delay** - Unused delay time is added back (e.g., 15 min + 10 sec Bronstein)
- **โ Fischer Increment** - Time added after each move (e.g., 3 min + 2 sec increment)
- **๐ฏ Multi-Stage** - Complex tournament formats (e.g., World Championship style)
### ๐ฎ Professional Game Controls
- **๐ Gesture Controls** - Single tap (move), two-finger tap (check), long press (checkmate)
- **๐ Audio Feedback** - Sound effects for moves, checks, and game events
- **๐ณ Haptic Feedback** - Vibration feedback on mobile devices
- **โจ๏ธ Keyboard Shortcuts** - Quick access to all timer functions
- **โจ Visual Animations** - Smooth transitions and game state indicators
### ๐ Advanced Game Analytics
- **๐ Move Statistics** - Track average move time and game phases
- **๐ Detailed Game Summary** - Comprehensive post-game analysis
- **๐ Performance Charts** - Visual representation of time usage patterns
- **๐ Game History** - Review past games and performance trends
### ๐จ Modern User Experience
- **๐ฑ Fully Responsive** - Perfect on desktop, tablet, and mobile
- **๐ Professional Dark Theme** - Easy on the eyes for long sessions
- **๐ญ Smooth Animations** - Powered by Framer Motion for fluid interactions
- **โฟ Accessibility First** - Keyboard navigation and screen reader support
- **๐ Lightning Fast** - Optimized performance for instant responsiveness
## ๐ฏ For Chess Players (Users)
### Just Want to Play Chess?
**๐ [Click here to start playing immediately](https://chessticks.vercel.app) ๐**
No installation required! ChessTicks runs directly in your web browser on any device.
### Quick Start Guide
1. **Visit** [chessticks.vercel.app](https://chessticks.vercel.app)
2. **Choose** your preferred timer mode (Sudden Death, Fischer, etc.)
3. **Set** your time controls
4. **Start** playing chess with professional timing!
---
## ๐ ๏ธ For Developers (Contributors)
Want to contribute to ChessTicks or run it locally? Here's how to get started:
### Prerequisites
- Node.js 18+ or Bun
- npm, yarn, pnpm, or bun
### Local Development Setup
1. **Clone the repository**
```bash
git clone https://github.com/UtkarshTheDev/ChessTicks.git
cd ChessTicks
```
2. **Install dependencies**
```bash
# Using npm
npm install
# Using yarn
yarn install
# Using pnpm
pnpm install
# Using bun
bun install
```
3. **Start the development server**
```bash
# Using npm
npm run dev
# Using yarn
yarn dev
# Using pnpm
pnpm dev
# Using bun
bun dev
```
4. **Open your browser**
Navigate to [http://localhost:3000](http://localhost:3000)
## ๐ How to Use ChessTicks
### Basic Timer Operation
1. **๐ฏ Select Timer Mode** - Choose from five tournament-grade timer modes
2. **โ๏ธ Configure Time Control** - Set base time and increments/delays
3. **โถ๏ธ Start Game** - Tap the start button to begin timing
4. **๐ Make Moves** - Tap your side of the timer after each move
5. **๐ฎ Special Moves** - Use gestures for check (two-finger tap) or checkmate (long press)
### ๐ Tournament Timer Modes Explained
#### โก Sudden Death
Perfect for blitz and rapid games. Each player gets a fixed amount of time.
- **Example**: 5 minutes per player
- **Best for**: Quick games, online play, casual matches
#### โณ Simple Delay
Adds a delay before your main time starts counting down.
- **Example**: 3 minutes + 5 second delay
- **Best for**: Beginner-friendly games, reducing time pressure
#### ๐ Bronstein Delay
Time used during the delay is added back to your main time.
- **Example**: 15 minutes + 10 second Bronstein delay
- **Best for**: Classical games, tournament play
#### โ Fischer Increment
Adds time to your clock after each move.
- **Example**: 3 minutes + 2 second increment
- **Best for**: Online platforms, modern tournament formats
#### ๐ฏ Multi-Stage
Complex tournament formats with multiple time control phases.
- **Example**: 90 minutes for 40 moves, then 30 minutes + 30 second increment
- **Best for**: World Championship style, classical tournaments
### ๐ฎ Controls & Shortcuts
#### Gesture Controls
- **๐ Single Tap** - Normal move
- **โ๏ธ Two-Finger Tap** - Check move (plays special sound)
- **๐ Long Press** - Checkmate (ends game with confirmation)
#### Keyboard Shortcuts
- **Spacebar** - Switch active player / Make move
- **P** - Pause/Resume timer
- **R** - Reset timer
- **Escape** - Return to home screen
## ๐๏ธ Technical Architecture
### Project Structure
```
src/
โโโ app/ # Next.js app router
โโโ components/ # React components
โ โโโ ui/ # Reusable UI components
โ โโโ ... # Feature-specific components
โโโ hooks/ # Custom React hooks
โโโ lib/ # Core timer logic and utilities
โโโ stores/ # Zustand state management
โโโ types/ # TypeScript type definitions
โโโ utils/ # Utility functions
โโโ __tests__/ # Test files
```
### ๐ ๏ธ Technology Stack
- **โก Framework**: Next.js 15 with App Router
- **๐ Language**: TypeScript
- **๐จ Styling**: Tailwind CSS
- **๐งฉ UI Components**: Radix UI + shadcn/ui
- **โจ Animations**: Framer Motion
- **๐๏ธ State Management**: Zustand
- **๐งช Testing**: Jest
- **๐ฏ Icons**: Lucide React
- **๐ Sound**: use-sound (Howler.js)
- **๐ Deployment**: Vercel
### โ๏ธ Timer Engine Architecture
The timer engine is built with a modular, extensible architecture:
- **TimerEngine** - Core timer logic and state management
- **TimerModeHandler** - Interface for different timer modes
- **TimerStore** - Zustand store for React state management
- **GameAnalytics** - Move tracking and performance analysis
### ๐งช Development Commands
#### Running Tests
```bash
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
```
#### Code Quality
```bash
# Lint code
npm run lint
# Format code
npm run format
# Type check
npm run type-check
# Build for production
npm run build
```
## ๐ค Contributing
We welcome contributions from the chess and developer community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
### ๐ Quick Contribution Guide
1. **๐ด Fork** the repository
2. **๐ฟ Create** a feature branch (`git checkout -b feature/amazing-feature`)
3. **โจ Make** your changes
4. **๐งช Add** tests for new functionality
5. **โ
Ensure** all tests pass (`npm test`)
6. **๐พ Commit** your changes (`git commit -m 'Add amazing feature'`)
7. **๐ค Push** to the branch (`git push origin feature/amazing-feature`)
8. **๐ Open** a Pull Request
### ๐ฏ Areas for Contribution
- ๐ Bug fixes and improvements
- โจ New timer modes or features
- ๐จ UI/UX enhancements
- ๐ Documentation improvements
- ๐งช Test coverage expansion
- ๐ Internationalization (i18n)
## ๐บ๏ธ Roadmap
### ๐ Coming Soon
- [ ] ๐๏ธ Custom timer presets
### ๐ Future Plans
- [ ] ๐ฑ Native mobile app (React Native)
- [ ] ๐ค AI-powered game analysis
- [ ] ๐ Advanced statistics dashboard
## ๐ Support & Community
- **๐ Bug Reports**: [GitHub Issues](https://github.com/UtkarshTheDev/ChessTicks/issues)
- **๐ฌ Discussions**: [GitHub Discussions](https://github.com/UtkarshTheDev/ChessTicks/discussions)
- **๐ง Contact**: utkarshweb2023@gmail.com
- **๐ Live App**: [chessticks.vercel.app](https://chessticks.vercel.app)
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Acknowledgments
- ๐ **Chess Community** - For feedback and feature requests
- ๐จ **[Radix UI](https://www.radix-ui.com/)** - For accessible UI components
- ๐ญ **[shadcn/ui](https://ui.shadcn.com/)** - For beautiful component designs
- โจ **[Framer Motion](https://www.framer.com/motion/)** - For smooth animations
- ๐ **[Vercel](https://vercel.com/)** - For seamless deployment
---
**๐ Made with โค๏ธ for the chess community ๐**
[](https://chessticks.vercel.app)
*Professional chess timing for players of all levels*