Go to file
2026-05-12 19:00:46 -04:00
.agents/skills Update Version (Beta): One word each new UTC hour 2026-05-11 20:55:14 -04:00
CSS Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
img first commit 2025-07-29 13:58:36 -04:00
scripts Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
supabase Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
.DS_Store Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
Celebration.mp3 Sound effect... WHAAAT? 2025-08-02 00:36:39 -04:00
dictionary.json first commit 2025-07-29 13:58:36 -04:00
Dockerfile Update Version (Beta): One word each new UTC hour 2026-05-11 20:55:14 -04:00
fancy-wordle-modern.html Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
IMPROVEMENTS.md updated Version 2026-05-08 11:15:52 -04:00
index.html Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
README.md Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
script.js Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
skills-lock.json Update Version (Beta): One word each new UTC hour 2026-05-11 20:55:14 -04:00
supabase-config.js Update Version (Beta): login + leaderboard 2026-05-12 19:00:46 -04:00
targetWords.json first commit 2025-07-29 13:58:36 -04:00
word-data.js updated Version 2026-05-08 11:15:52 -04:00

Fancy Wordle

A Wordle-style game with one shared word for every UTC hour.

Supabase setup

The app can enforce the shared hourly word with Supabase/Postgres. Run supabase/schema.sql in your Supabase SQL editor, then run supabase/seed-word-data.sql to load all answers and accepted guesses.

Enable the Email provider in Supabase Auth. The UI signs users in with email and password; if the account is missing, it reveals account creation with username, email, and password. Then fill in supabase-config.js:

window.FANCY_WORDLE_SUPABASE = {
  url: "https://your-project.supabase.co",
  anonKey: "your-public-anon-key"
}

The database chooses the word from public.wordle_words based on the current UTC hour, so everyone who plays during the same hour gets the same answer. Signed-in users submit guesses through Supabase, which validates guesses, scores tiles, stores completed rounds, and calculates synced stats.

The hourly leaderboard uses completed authenticated rounds for the current UTC hour. It ranks wins first, then fewer guesses, then earliest completion time.

Leaderboard tabs include this hour, today, and all time. Signed-in users are included even if their row falls outside the top 25. Stats also show recent personal history and this hour's average score summary.

supabase/seed-word-data.sql is generated from targetWords.json and dictionary.json:

node scripts/generate-supabase-word-seed.mjs

If Supabase is not configured, the app falls back to a browser-only hourly lock using the same deterministic hourly word calculation from targetWords.json.

Guest play uses local browser storage. Sign in with email and password to persist scores across devices.