Skip to content

PRYSYM/sigildle

Repository files navigation

Sigildle

Forge today's sigil in six tries — a daily symbol puzzle.

A tiny browser game: each day a hidden sigil (a four-symbol sequence drawn from an alphabet of eight primitives) is generated deterministically from the date. You guess; the slots light up Wordle-style; you share your grid. No accounts, no server, no tracking — pure static files on GitHub Pages.

Part of PRYSYM. The "deterministic, shareable symbol" idea is borrowed from open-identity-symbols — but Sigildle uses none of its cryptography; the symbols here are decorative.

Play

https://prysym.github.io/sigildle/

Keyboard: 18 place a symbol · / move the cursor · clear · forge.

Develop

npm install
npm run dev      # local dev server
npm test         # unit tests (rng / match / share)
npm run build    # type-check + production build into dist/

Stack: vanilla TypeScript + Vite. No framework. SVG for the glyphs, localStorage for streaks, a seeded PRNG (xmur3 + mulberry32) for the daily puzzle.

src/
  game/      config, rng, primitives, target, match, engine
  state/     localStorage progress + stats
  ui/        view (HTML builders), share (emoji grid)
  main.ts    bootstrap + input handling

Deploy

Push to main → the workflow in .github/workflows/deploy.yml builds and publishes to GitHub Pages. In the repo settings, set Pages → Source → GitHub Actions. The base in vite.config.ts (/sigildle/) must match the repo name; change both if you fork under a different name.

Roadmap

  • Practice mode — endless rounds, scaling size (3 → 6 symbols)
  • Animated tile reveal + win bounce
  • Share: copy emoji grid to clipboard, or one-tap post to 𝕏 / Bluesky
  • Zen mode — free-compose a sigil, export PNG/SVG, share via #z= URL hash
  • Sound — tiny Web Audio synth, mute toggle (persisted)
  • Daily solve timer (local) shown on the win card and in the share text
  • Daily leaderboard / "champion of the day" (needs a small backend — see below)
  • More difficulty knobs in practice (transforms, layering)
  • Real OIS primitive set behind a "what is this?" link

Leaderboard (not built)

GitHub Pages is static, so a real cross-player leaderboard needs a tiny backend (a Cloudflare Worker + KV/D1 would do it, or Supabase). It would record { day, name, tries, solveMs } and serve a per-day JSON the site fetches. Until then, the share text carries #N · tries · ⏱time so players can compare by screenshot.

License

MIT

About

Forge today's sigil in six tries — a daily symbol puzzle. Static, open-source, no login.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors