GameKeeper is an open-source static web application that provides digital companions for physical board games. The platform focuses on enhancing the tabletop gaming experience by handling tedious calculations, tracking game state, and providing specialized tools while preserving the physical, social nature of board gaming.
Create a community driven platform where developers can contribute game-specific companion tools that eliminate bookkeeping overhead without replacing the physical game experience.
Clone the repository
git clone https://github.com/ThanMatt/gamekeeper.git
cd gamekeeper
Install dependencies
pnpm install
Start development server
pnpm dev
The application will be available at http://localhost:4321
Command | Description |
---|---|
pnpm dev |
Start development server with hot reload on 0.0.0.0:4321 |
pnpm build |
Build the application for production |
pnpm preview |
Preview the production build locally |
Command | Description |
---|---|
pnpm lint |
Run ESLint on all supported file types |
pnpm lint:fix |
Run ESLint and automatically fix issues |
pnpm format |
Format code with Prettier |
pnpm format:check |
Check if code is properly formatted |
pnpm check |
Run both linting and format checking |
pnpm fix |
Run lint:fix and format together |
Command | Description |
---|---|
pnpm test |
Run tests in watch mode |
pnpm test:ui |
Run tests with Vitest UI |
pnpm test:run |
Run tests once |
pnpm test:coverage |
Run tests with coverage report |
pnpm test:watch |
Run tests in watch mode (alias for test ) |
Command | Description |
---|---|
pnpm prepare |
Set up Husky git hooks |
pnpm pre-commit |
Run lint-staged (automatically triggered) |
The project automatically runs the following checks before each commit:
.js
, .jsx
, .ts
, .tsx
, .astro
filesgamekeeper/
โโโ src/
โ โโโ components/
โ โ โโโ react/ # React components
โ โ โ โโโ games/ # Game-specific components
โ โ โ โโโ ui/ # Reusable UI components
โ โ โโโ astro/ # Astro components
โ โโโ layouts/ # Page layouts
โ โโโ pages/ # Route pages
โ โโโ lib/ # Utilities and constants
โ โโโ styles/ # Global styles
โโโ public/ # Static assets
โโโ package.json # Project configuration
The project uses Vitest for testing with the following setup:
Example test command:
# Run tests with UI
pnpm test:ui
# Run tests with coverage
pnpm test:coverage
pnpm check
GameKeeper supports multiple frameworks for plugin development:
This project is licensed under the MIT License. See the LICENSE file for details.
GameKeeper is an independent, open-source project providing calculation tools for board games. All game names, artwork, and related intellectual property belong to their respective publishers. GameKeeper does not reproduce game rules, components, or gameplay mechanics.
We strongly encourage purchasing games from official retailers to support the board game industry.
Made with โค๏ธ for board game enthusiasts