Connect 5 is a static daily word game. Practice mode is fully local, and the daily board is published as a single JSON file that GitHub Pages serves. Result sharing is done with copy/X/Bluesky links.
- index.html: daily puzzle homepage
- pages/daily.html: redirect for old daily links
- pages/practice.html: practice mode
- assets/js/app: shared config and constants
- assets/js/core: reusable game engine modules
- assets/js/features/daily: daily puzzle generation and daily mode behavior
- assets/data/daily-puzzle.json: the currently published daily puzzle
- scripts/generate-daily-puzzle.mjs: secret-seeded daily puzzle generator
- assets/js/pages: page-level controllers
Serve the repo root with any static server.
python3 -m http.server 8000Then open http://localhost:8000/index.html.
Dailygives everyone the same puzzle on a given UTC date.Practicegenerates fresh local boards with no save state.- Daily results can be copied or shared to X / Bluesky after the game ends.
The displayed daily puzzle number starts at #1 on April 15, 2026.
This repo deploys as plain static files. GitHub Pages is enough.
- Publish the repo root from
main. - Keep CNAME set to
connect5.co. - Point your DNS at GitHub Pages.
- Add a repository secret named
CONNECT5_DAILY_SECRET. - Run the
Update Daily PuzzleGitHub Actions workflow once, then let the daily schedule keep it fresh. - Wait for TLS provisioning, then enable HTTPS in GitHub Pages settings.
- The public site only exposes the current daily puzzle file. Future puzzles are generated in GitHub Actions from
CONNECT5_DAILY_SECRET, so players cannot derive tomorrow's board from the shipped frontend code alone. - Word validation still uses
dictionaryapi.dev. If that service is slow or unavailable, replacing it with a bundled word list would make the game more reliable.