Thanks for wanting to add to the collection! This repo is intentionally simple: pure HTML/CSS/JS, no build step. PRs are very welcome.
git clone https://github.com/sausi-7/games.git
cd games
python3 -m http.server 8000
# open http://localhost:8000The landing page reads games/registry.json โ every game listed there shows up as a card.
- ๐ฎ Add a new game โ drop a folder, add a registry entry.
- ๐ Fix a bug in an existing game (use the bug-report template).
- ๐จ Polish the landing page โ accessibility, performance, theming.
- ๐ Improve docs โ typos, clarity, screenshots.
- โญ Star the repo โ seriously, it really helps.
Pick the right category (or propose a new one) and add your folder under games/<category>/<slug>/. Slugs use lowercase + dashes (e.g. my-cool-puzzle).
games/puzzle/my-cool-puzzle/
โโโ index.html # required โ entry point
โโโ assets/ # images, audio, fonts
โโโ config.json # optional โ game-specific config
โโโ (any JS/CSS/etc.)
Rules of thumb:
- The game must run by opening just
index.html(it'll be loaded in an iframe). - Use relative paths only (
./assets/foo.png, not/assets/foo.png). - Keep total folder size reasonable (< 5 MB ideally). Compress images.
- It must work on mobile + desktop.
Edit games/registry.json and append your game to games:
{
"slug": "my-cool-puzzle",
"name": "My Cool Puzzle",
"category": "puzzle",
"path": "games/puzzle/my-cool-puzzle/index.html",
"tech": "phaser",
"tags": ["logic", "tiles"],
"description": "One-line pitch shown on the card."
}| Field | What it is |
|---|---|
slug |
URL-safe id (my-cool-puzzle) โ must be unique across all games |
name |
Display name shown on the card and modal |
category |
One of: puzzle, arcade, shooter, racing, sports, platformer, casual, board, word-quiz, 3d |
path |
Relative path to the game's index.html |
tech |
phaser, three, or html |
tags |
1โ4 short tags used by the search โ lowercase |
description |
One-line pitch (~80 chars) |
If your game's category emoji isn't a great fit, add an override in site/app.js inside GAME_EMOJI:
"my-cool-puzzle": "๐งฉ",Fill in the PR template checklist. We'll review and merge.
- Game folder is under
games/<category>/<slug>/with a workingindex.html - Registry entry added in
games/registry.jsonwith a unique slug - Tested locally with
python -m http.serverโ card opens, game plays - All asset paths are relative (no leading
/) - No console errors
- Works on at least one mobile viewport (375ร667)
- License-compatible โ no copyrighted assets you don't have rights to
Use the bug report issue template. Include:
- The game slug (visible in the URL when the modal is open:
#play=snake) - What you expected vs. what happened
- Browser + OS
- Console errors if any
- Vanilla JS โ no TypeScript, no React, no bundler.
- 2-space indent, double quotes in JS, single quotes in HTML attributes.
- Keep
site/app.jsandsite/styles.cssframework-free. - Per-game code can use whatever style matches that game.
By contributing, you agree your contribution is licensed under the MIT License (same as the repo).