FiveGuesses · v0.1.0

Configuration

The game has no configuration file. The values below come from the source and from the build; the table is kept in step with src/game.ts, src/config.ts and app.json.

Option Type Default Description
MAX_GUESSES (src/game.ts) number 5 Guesses per round.
SNIPPET_SECONDS (src/game.ts) number list [1, 2, 4, 8, 16] Seconds of preview unlocked after 0, 1, 2, 3 and 4 misses.
EPOCH (src/game.ts) date 2026-08-25 Puzzle #1 is this day; the number grows by one at every local midnight.
assets/songs.json file generated The song list: artist, title, year and the preview, artwork and song-page links from the public iTunes Search API. Regenerate with node scripts/seed-songs.mjs; the script is never run by CI.
EXPO_PUBLIC_SITE_URL environment variable, read at build time https://fiveguesses.app The site address; its host is the last line of the share text (src/config.ts).
expo.web.name (app.json) string FiveGuesses — daily song guessing The page title.
expo.web.description (app.json) string the one-line description from the README The description meta tag of the page.
expo.web.themeColor (app.json) colour #0A1224 The theme-color meta tag the export appends; the shell’s own light and dark values live in public/index.html.
PW_CHROMIUM_PATH environment variable /opt/pw-browsers/chromium A Chromium binary for npm run e2e, used outside CI when the file exists; otherwise the tests use the Chromium that npx playwright install chromium provides (the build pinned by @playwright/test in the lockfile). CI ignores it and runs the same install command with --with-deps.

Secrets

Secrets never go into this repository, an issue or a log. Pass them through environment variables or a secret store. CI scans every commit with gitleaks; a leaked secret is rotated first and removed from history second.

The app needs no secret at run time: it has no backend and no API key. The only secrets belong to the deploy workflow (.github/workflows/deploy.yml), stored as repository secrets:

Secret Holds
DEPLOY_HOST The host name or address of the web server.
DEPLOY_USER The SSH user that owns the docroot.
DEPLOY_KEY The private key of that user, as generated for the deploy (see the runbook).
DEPLOY_PATH Where the site is synced: . with the restricted deploy key of the runbook (rrsync limits the key to the docroot; the workflow refuses a relative path when the key is not restricted), otherwise the docroot’s full path.

Without all four the deploy job is skipped and the workflow run stays green.

Not affiliated with or endorsed by Apple. Apple Music and the iTunes Search API are named only to describe where the song previews come from.

docs/configuration.md on GitHub

Licensed under MIT. Source: luminare-dev/FiveGuesses at v0.1.0.