typy: one word on screen, type it, next — a typing game #253

Closed
opened 2026-10-24 21:08:48 +00:00 by teahubxyz · 4 comments
Owner

What it is

typy (future home typy.in, read "typin'"; v0 at typy.yolopreneur.lol, slug typy) is a typing game built on the speed-reading (RSVP) pattern: one word sits in the centre of the screen, you type it, the next one snaps in. No line to scan ahead, just you and the rhythm. Later it grows into a passive typing tracker (browser extension) and shareable profiles; v0 is only the game.

v0 scope

  1. One word at a time. Big centred word, letters colour as you type (right / wrong). Space or the last correct letter advances. Errors show inline; backspace works.
  2. Runs. 30s / 60s / 120s timed runs, or a fixed 50-word run. Live WPM + accuracy, small and unobtrusive.
  3. Ramp mode. Optional: a pace ghost (target WPM) that rises as you keep up — the word dims if you fall behind.
  4. Passages by URL. typy.yolopreneur.lol/<topic> builds a passage about that topic (one Venice call, cached in KV per topic); / uses a built-in common-words list. Daily passage at /daily, same for everyone.
  5. Result card + replay link. After a run: WPM, accuracy, per-word speed sparkline, slowest words. A short link replays the run (ghost cursor, keystroke timings). Viewable logged out.
  6. Phone + desktop. Works with the on-screen keyboard; respects reduced motion.

Limits

  • No accounts. Replays public by link (the result screen says so). Topic passages: length cap, safe-content prompt, per-visitor daily cap on new topics.
  • Privacy: store only timings and the passage, nothing else.

Done when

  • typy.yolopreneur.lol loads and a 30s run works end to end on desktop and phone.
  • /rust-lifetimes (any topic) produces a passage; /daily is stable for the UTC day.
  • A finished run gives a replay link that plays back the run.
  • Tests cover word advance/error logic, WPM/accuracy maths, and the worker routes.

Later

Passive typing tracker extension (timings only, per site — "82 wpm in claude.ai"), profiles at /@name, races against friends' replays, desktop app.

[expedite] — built directly in one PR rather than split into cards (see #242).

🤖 Generated with Claude Code

## What it is **typy** (future home typy.in, read "typin'"; v0 at `typy.yolopreneur.lol`, slug `typy`) is a typing game built on the speed-reading (RSVP) pattern: one word sits in the centre of the screen, you type it, the next one snaps in. No line to scan ahead, just you and the rhythm. Later it grows into a passive typing tracker (browser extension) and shareable profiles; v0 is only the game. ## v0 scope 1. **One word at a time.** Big centred word, letters colour as you type (right / wrong). Space or the last correct letter advances. Errors show inline; backspace works. 2. **Runs.** 30s / 60s / 120s timed runs, or a fixed 50-word run. Live WPM + accuracy, small and unobtrusive. 3. **Ramp mode.** Optional: a pace ghost (target WPM) that rises as you keep up — the word dims if you fall behind. 4. **Passages by URL.** `typy.yolopreneur.lol/<topic>` builds a passage about that topic (one Venice call, cached in KV per topic); `/` uses a built-in common-words list. Daily passage at `/daily`, same for everyone. 5. **Result card + replay link.** After a run: WPM, accuracy, per-word speed sparkline, slowest words. A short link replays the run (ghost cursor, keystroke timings). Viewable logged out. 6. **Phone + desktop.** Works with the on-screen keyboard; respects reduced motion. ## Limits - No accounts. Replays public by link (the result screen says so). Topic passages: length cap, safe-content prompt, per-visitor daily cap on new topics. - Privacy: store only timings and the passage, nothing else. ## Done when - `typy.yolopreneur.lol` loads and a 30s run works end to end on desktop and phone. - `/rust-lifetimes` (any topic) produces a passage; `/daily` is stable for the UTC day. - A finished run gives a replay link that plays back the run. - Tests cover word advance/error logic, WPM/accuracy maths, and the worker routes. ## Later Passive typing tracker extension (timings only, per site — "82 wpm in claude.ai"), profiles at `/@name`, races against friends' replays, desktop app. [expedite] — built directly in one PR rather than split into cards (see #242). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
teahubxyz added the plannedspecventure labels 2026-10-24 21:08:48 +00:00

⏱️ Time: planned #260, #261, #262, #263, #264, #265, #266, #267, #268, #269, #270. They run one at a time: each starts when the one before it merges.

⏱️ Time: planned #260, #261, #262, #263, #264, #265, #266, #267, #268, #269, #270. They run one at a time: each starts when the one before it merges. <!-- time {"beat":"planned","cards":[260,261,262,263,264,265,266,267,268,269,270]} -->
time removed the spec label 2026-10-25 00:10:45 +00:00

⚠️ planned failed (1/3): 'winner'. Retrying next tick.

⚠️ planned failed (1/3): `'winner'`. Retrying next tick. <!-- time {"venture":true,"beat":"planned","cards":[260,261,262,263,264,265,266,267,268,269,270],"at":"2026-10-25T00:10:44Z","errors":1} -->

⚠️ planned failed (2/3): 'winner'. Retrying next tick.

⚠️ planned failed (2/3): `'winner'`. Retrying next tick. <!-- time {"venture":true,"beat":"planned","cards":[260,261,262,263,264,265,266,267,268,269,270],"at":"2026-10-25T00:29:09Z","errors":2} -->

🧭 Digest: stuck at planned after 3 tries: 'winner'. Closing; the next card starts fresh.

🧭 Digest: stuck at `planned` after 3 tries: 'winner'. Closing; the next card starts fresh. <!-- time {"venture":true,"beat":"done","stuck":"planned"} -->
time closed this issue 2026-10-25 12:28:29 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: teahubxyz/time#253