Skip to content

checkmate-works/blindfold-chess

Repository files navigation

Blindfold Chess (Monorepo)

Free online platform to practice blindfold chess.

This repository is a Monorepo managed by Turborepo.

Directory Structure

  • apps/web: Next.js web application
  • apps/mobile: React Native (Expo) mobile application

Shared Packages

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

Quick Start

Prerequisites

  • 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@24

For 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

Installation

# Install dependencies for all apps/packages
pnpm install

Development

To start the development server for all apps:

pnpm dev

This runs turbo run dev, which starts the web app at http://localhost:3000.

Scripts

From the root directory:

  • pnpm dev: Start all apps in development mode
  • pnpm build: Build all apps for production
  • pnpm lint:/ Lint all apps
  • pnpm test: Run tests across the workspace

Web App Specific Commands

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-stockfish

For more details on the web application, see apps/web/README.md.

Versioning Strategy

This project follows Semantic Versioning.

Root Package

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.

Application Packages

Each application (apps/web, apps/mobile, etc.) maintains its own independent version following Semantic Versioning.

Git Tag Format

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:

About

A free online platform for practising blindfold chess

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages