βA high-speed strategic escape into the neon-soaked grid.β
Welcome to Metropolis Retro, an ultra-fast web application built for enthusiasts of chess, classic gaming, and vintage aesthetics. Hosted on Vercel and powered by Next.js with the Bun runtime, this platform merges timeless 64-square logic with a high-performance, retro-futuristic engine.
We utilize a modern, speed-first toolkit to ensure a lag-free experience for players and developers:
To maintain βGrandmasterβ code quality, we employ a rigorous three-pillar pre-commit strategy:
prek run -a: run all the hooks against all filesprek run -a --hook-stage manual: run all manual hooks against all filesprek run -a -c .pre-commit-config-audit.yaml: run all the audit based hooks against all filesWe welcome contributions from developers who want to help push Metropolis Retro to the next level. Whether youβre fixing a bug, adding a feature, or improving our retro aesthetic β all moves are welcome.
Before contributing, ensure you have the following installed:
| Tool | Version | Purpose |
|---|---|---|
| Bun | β₯ 1.3.11 | JavaScript runtime, package manager & test runner |
| uv | latest | Python package manager for dev tooling (prek) |
| Python | β₯ 3.13 | Required by uv and pre-commit tooling |
| Node.js | β₯ 24 | Required by some prek hook dependencies |
| Git | latest | Version control |
Fork the repository on GitHub and clone your fork:
git clone https://github.com/<your-username>/metropolis-retro.github.io.git
cd metropolis-retro.github.io
Install all dependencies (Python tooling + Node/Bun packages):
make install
This runs uv sync (Python/prek tools) and bun install (JavaScript packages).
Start the development server:
make dev
Open http://localhost:3000 in your browser.
| Command | Description |
|---|---|
make dev |
Start the Next.js dev server |
make build |
Build the Next.js app for production |
make lint |
Run ESLint on TypeScript/JavaScript files |
make prek |
Run all prek hooks against all files |
make prek-manual |
Run prek hooks with the manual stage |
make build-games |
Build all game sub-projects |
make clean |
Remove build artifacts and dependencies |
make help |
List all available Make targets |
All contributions must pass our three-pillar pre-commit strategy before merging:
make prek) β trailing whitespace, YAML/JSON validation,
spell checking, secret detection, ESLint, markdownlint, and more.make prek-manual) β file permission checks, image optimization.prek run -a -c .pre-commit-config-audit.yaml) β security-focused dependency scanning.Run the full standard suite locally before opening a pull request:
make prek
Create a feature branch from main:
git checkout -b feat/your-feature-name
Make your changes, commit with a clear message, then push:
git push origin feat/your-feature-name
main branch on GitHub.eslint.config.mjs) and
Biome (biome.json). Run make lint to check..github/linters/.markdown-lint.yml)..github/linters/.yaml-lint.yml)..editorconfig settings (UTF-8, LF line endings,
trailing newline, no trailing whitespace).