Changelog
Every change to the site, newest first. The same file our developers maintain, published directly.
All notable changes to RandomEveryth.ing are documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. Pre-1.0: minor versions may include breaking changes.
[Unreleased]
[0.8.1] - 2026-07-18
Fixed
- Docker image build: CHANGELOG.md is now included in the build context (the /changelog page renders it at build time).
- CI migrations: a stub auth schema lets the account-tables migration apply against plain Postgres outside Supabase.
[0.8.0] - 2026-07-18
Milestone 2b: optional accounts.
Added
- Accounts (optional, free, passwordless): sign in with an email link or Google. Signed-in users get saved lists, favorite generators, and cross-device result history; the site works fully without an account, exactly as before.
- One-click browser import: copies this browser's anonymous saved lists and recent results into the account.
- Data export: download all account data as JSON from the account page.
- Generator page extras when signed in: favorite toggle, Save List, and a load-saved-list picker beside the existing controls; results sync to account history automatically.
- Public changelog at /changelog, rendered directly from this file at build time and linked in the footer.
- Account tables migration (lists, favorites, history) with the same RLS deny-all posture as draws; 11 new unit tests; signed-out E2E coverage for the account surfaces.
Changed
- Header gains an Account link; footer gains a Changelog link.
[0.7.0] - 2026-07-18
Milestone 2a: server-audited giveaway drawings.
Added
- Verified drawings: the Giveaway Winner Picker now offers a server-audited drawing. The selection runs once on the server from a server-drawn CSPRNG seed and is stored permanently; each drawing gets a public record page at /draw/[id] showing winners, timestamp, seed, entrant-list SHA-256 fingerprint, and a per-render replay integrity check. Operators choose whether to publish the entrant list; published lists get an independent client-side replay-and-verify link.
- Database layer per the portability guardrails: plain Postgres via Drizzle (Supabase-hosted in production, any Postgres elsewhere), lazy client so the static site still builds and runs with no database.
- SQL migration (supabase/migrations/) with RLS enabled on the draws table; .env.example documenting DATABASE_URL.
- Per-IP rate limiting on drawing creation (salted hash, 20/hour).
- 10 unit tests (validation, id generation, deterministic replay) and 3 E2E tests running against a real Postgres service container in CI.
[0.6.0] - 2026-07-17
Added
- Vercel Web Analytics component (cookieless, anonymous; active only when the Vercel project's Analytics toggle is enabled - a no-op in dev, tests, and self-hosted containers, per the portability guardrails' explicit allowance).
- docs/Launch Runbook.md: step-by-step production launch guide (Vercel project, Porkbun DNS for both domains, .org redirect, analytics, post-launch verification, search-engine submission).
[0.5.1] - 2026-07-17
Changed
- Fairness page: removed the age-of-the-universe comparison from the seed-space perspective (house style: plain quantities only).
- Terms and privacy pages: contact email is now info@randomeveryth.ing.
[0.5.0] - 2026-07-17
Added
- Live possible-results count on every generator page: a running count of the distinct results the current settings can produce, updating as you type (exact with separators up to 10^15, then scientific notation). Backed by a tested counting module: ordered arrangements for picks and number draws, factorials for shuffles, multinomial coefficients for balanced teams, products for dice, coins, and templates.
- Seed-space math on the fairness page: 2^128 possible seeds stated exactly and in perspective.
- Inputs on the verify page: a collapsible section showing the exact inputs embedded in the link - the same data the replay runs against.
- Clear history action in the Recent results block.
- 13 hand-verified unit tests for the outcome-counting math.
Fixed
- The verify page's Share button now uses the native share sheet where available, matching the generator pages.
- Corrected the team generator FAQ: when team sizes differ, the earlier team numbers hold the extra members (membership is random; the size pattern is not).
Changed
- TypeScript target raised to ES2020 (BigInt support for exact counts).
[0.4.0] - 2026-07-16
Changed
- Two clearly separated action groups. "This generator:" actions (Copy Link / Share / Print) sit beside the Generate button and work without generating - they act on the tool and your current settings. "This result:" actions (Copy Result / Share Result / Print) live in the result block. Share Result now correctly shares the verify link that reproduces and proves the exact result, fixing the earlier ambiguity where the result block's Share shared the generator instead.
- Share uses the device's native share sheet where available (mobile), falling back to copying the link.
Added
- Receipt actions on the verify page: Copy Receipt (formatted text with seed, hashes, timestamp, and verification status), Share, Print.
- Recent results show their seed, and each entry carries a "View & verify" link that replays that exact result on the verify page.
[0.3.0] - 2026-07-16
Changed
- Share links are dramatically shorter. Links now encode only the values that differ from the generator's defaults (sharing an unmodified generator produces a bare page URL), and payloads are deflate-compressed before base64url encoding. A default meal-picker share link dropped from roughly 2,900 characters to 43; a 10-item custom list is about 150. Links created in the old format still decode.
- All em dashes, en dashes, and horizontal bars replaced with ASCII hyphens across site content, code comments, and docs (house style: no long dashes anywhere).
Added
- Unit tests for share-payload encoding: round-trip, unicode, compression ratio, legacy-format decoding, and garbage rejection.
[0.2.0] - 2026-07-16
Added
- Seed explorer on the fairness page: a live, step-by-step run of the real Fisher-Yates shuffle where visitors can edit the seed and watch the whole computation change - and restore it to see the identical result return.
- Seed experiment on the verify page: re-run any verified generation with the original seed (reproduces the result) or any other seed (computes a different one).
- "Under the hood" section on the fairness page explaining the actual algorithms in plain language: the sfc32 number stream, rejection sampling, and Fisher-Yates.
- E2E test suite (Playwright): all 15 generators generate with receipts; share links restore inputs; the verify flow and seed experiment work; damaged links fail safely. Runs in CI against the production build.
- Accessibility tests (axe): 20 pages checked for serious/critical violations in CI.
- Brand favicon (die-face SVG) and OpenGraph social-share image.
Fixed
- Inline links in body text are now underlined, not distinguished by color alone (axe
link-in-text-block, WCAG 1.4.1).
[0.1.0] - 2026-07-16
First working release: the complete Milestone 1 feature set in initial form.
Added
- Generator engine (
src/engine/): pure-TypeScript randomness core. Seeds drawn from the platform CSPRNG; deterministic sfc32 replay; rejection-sampled unbiased ranges; seven engines - pick (weighted, with/without replacement), shuffle (Fisher-Yates), group (balanced round-robin), number, dice notation, coin, template. - Fairness receipts: every generation records seed + SHA-256 fingerprints of inputs and result;
/verifyreplays and confirms. - 15 generators across 7 categories: meal picker, activity picker, custom list picker, weighted picker, list shuffler, giveaway winner picker (casual mode), team generator, random order, number generator, coin flip, dice roller, writing prompts, character names, project codenames, Bible book/chapter/topic selector.
- Curated datasets: 60 meals, 50 activities, codename parts, character names in 3 styles, writing-prompt components, all 66 Bible books with chapter counts, 50 study topics.
- Editorial content on every generator page: what it does, how the randomness works, when to use it, FAQ (with FAQPage JSON-LD).
- Site: home, category pages, fairness explainer, privacy policy, terms; static generation for all pages; sitemap and robots.
- Anonymous persistence: inputs and recent results in localStorage; stateless share links encode inputs in the URL.
- Test suite: 55 tests including deterministic chi-square distribution checks and seeded-replay determinism for every generator.
- Deployment: standalone output + Dockerfile (portability guardrail).
Known gaps (tracked for later 0.x releases)
- Giveaway draws are client-side only; server-audited draws with permanent records arrive with Milestone 2.
- No automated E2E/accessibility CI pass yet.
- Visual design pass and OpenGraph images pending.