A collection of small browser games and the shared, reusable packages that power them
Find a file
2026-07-05 13:03:08 +02:00
.github/workflows chore: update release action to not publish to npm 2026-04-03 03:18:06 +02:00
.husky chore: security hardening 2026-07-03 23:04:52 +02:00
.vscode chore: use eslint for linting & formatting 2026-04-02 14:41:52 +02:00
apps/mnswpr refactor: use wcb v5 createElement-safe static props 2026-07-05 13:03:08 +02:00
docs/decisions chore: add contribution guidance 2026-07-04 09:19:22 +02:00
packages refactor: use wcb v5 createElement-safe static props 2026-07-05 13:03:08 +02:00
scripts chore: monorepo scripts (dev, build, db, etc) 2026-07-03 20:25:33 +02:00
sites chore: restructure to new cozy-games monorepo 2026-07-03 13:53:13 +00:00
.gitignore chore: security hardening 2026-07-03 23:04:52 +02:00
.nvmrc chore: update release gh action 2026-04-03 03:03:08 +02:00
.secretlintignore chore: security hardening 2026-07-03 23:04:52 +02:00
.secretlintrc.json chore: security hardening 2026-07-03 23:04:52 +02:00
AGENTS.md chore: infra tooling and configs 2026-07-03 21:54:29 +02:00
CONTRIBUTING.md chore: fix messed up markdown :) 2026-07-04 10:46:30 +02:00
eslint.config.js chore: monorepo scripts (dev, build, db, etc) 2026-07-03 20:25:33 +02:00
LICENSE Create LICENSE 2023-03-10 09:42:58 +01:00
package.json chore: security hardening 2026-07-03 23:04:52 +02:00
pnpm-lock.yaml refactor: use wcb v5 createElement-safe static props 2026-07-05 13:03:08 +02:00
pnpm-workspace.yaml refactor: use wcb v5 createElement-safe static props 2026-07-05 13:03:08 +02:00
README.md chore: update readme 2026-07-04 13:42:45 +02:00
screenshot.png chore: add sreenshot 2026-07-03 10:29:17 +02:00
vitest.config.js chore: restructure to new cozy-games monorepo 2026-07-03 13:53:13 +00:00

Cozy Games

A growing collection of small browser games and the shared, reusable packages that power them.

Note

This is forked from mnswpr with the intention of learning agent-assisted development

Roadmap

  • Public APIs — game-agnostic modules (core, move-log, replay, leaderboard, rating) built inside the first game.
  • Second Game — validate those APIs by adding a second game through the adapter alone.
  • Reusable Packages — extract proven modules into standalone, versioned packages.
  • Adapters — freeze the adapter contract for third-party games to build against.

Packages

Package Develop Publish Document
mnswpr (game core) Built
leaderboard Built
move-log Built
replay engine Built
rating math 🚧 Development
sudoku (game core) 🔮 Planned

Note: @ayo-run/mnswpr on npm predates this project and will be deprecated in favor of cozy-games/mnswpr.

Contributing

Setup, running games locally, testing, code style, and local infra all live in CONTRIBUTING.md. In short — this is a pnpm workspace:

pnpm i                     # install
pnpm test                  # run the test suite
pnpm -F mnswpr run dev     # run the Minesweeper app locally

See apps/mnswpr/README.md for the game itself, and each package's README for library usage.

License

BSD-2-Clause © Ayo Ayco