Free online platform to practice blindfold chess.
This repository is a Monorepo managed by Turborepo.
apps/web: Next.js web applicationapps/mobile: React Native (Expo) mobile application
| Package | Description |
|---|---|
packages/types |
Shared TypeScript type definitions |
packages/features |
Cross-platform business logic (coordinate-quiz, etc.) |
packages/ui |
Shared color/theme constants (single source of truth for web & mobile) |
packages/eslint-config |
Shared ESLint configuration |
- Node.js 24.x
- pnpm 10.x
Tip
This project uses Volta to pin the Node.js version.
If you have Volta installed, it will automatically switch to the correct Node.js version defined in package.json.
To pin versions (updates package.json):
volta pin node@24For pnpm, use volta install to ensure the correct version is active, as volta pin may not support pnpm in all environments:
volta install pnpm@10# Install dependencies for all apps/packages
pnpm installTo start the development server for all apps:
pnpm devThis runs turbo run dev, which starts the web app at http://localhost:3000.
From the root directory:
pnpm dev: Start all apps in development modepnpm build: Build all apps for productionpnpm lint:/ Lint all appspnpm test: Run tests across the workspace
Some commands are specific to the web application and should be run inside apps/web or filtered via turbo:
# Copy Stockfish files (required for AI)
cd apps/web && pnpm run copy-stockfish
# OR
pnpm --filter web run copy-stockfishFor more details on the web application, see apps/web/README.md.
This project follows Semantic Versioning.
The root package.json has version 0.0.0 and is not versioned. It serves only as a workspace definition for the monorepo and is not published or released.
Each application (apps/web, apps/mobile, etc.) maintains its own independent version following Semantic Versioning.
Git tags use a prefix to identify the application:
- Web app:
web/v0.1.0,web/v0.2.0, ... - Mobile app:
mobile/v0.1.0,mobile/v0.2.0, ... (planned)
Example:
git tag -a web/v0.3.0 -m "Release web v0.3.0"Changelogs: