Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Type to test your speed, blast words in shooter mode, track your progress on a heatmap, and earn badges. No signup, no ads.
GamesHTML · JavaScriptGitHub @bralashOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A minimalist typing test — shooter mode, quotes, stats & achievements. One HTML file, no dependencies.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A minimalist typing test — inspired by the Bemonkey iOS app and built as a single self-contained index.html with no build step and no dependencies.Read the full README ↗A minimalist typing test — inspired by the Bemonkey iOS app and built as a single self-contained index.html with no build step and no dependencies.
Live demo: https://bralash.github.io/clack/
Time — 15 / 30 / 60 / 120 / 180 second runs.
Words — 10 / 25 / 50 / 100 word runs.
Quote — type real quotes (short / medium / long); the result screen credits the author.
Shoot — a ZType-style typing game: words drift toward your ship, type one to lock on and fire, destroy it before it reaches the base. Difficulties: calm / normal / frenzy. Pause with the ❚❚ button or Esc (Esc again quits).
freeze slows everything to a quarter speed for 10s (easing back at the end) · double doubles points for 10s ·
chain makes every kill zap the nearest word too, for 10s · tiny spawns only 3–4 letter words for 10s ·
rewind glides every word back up the field over 3s, with nothing new appearing · shield restores a life or blocks the next hit ·
boom stores a bomb you set off with Space to clear the screen.
Timed power-ups run side by side, and grabbing a running one adds time. Missing a power-up never costs a life.Daily challenge — the same 30 words for everyone each day, one attempt. Share your result as a Wordle-style grid (🟩 clean word, 🟨 mistake), post it to 𝕏, or save a result-card image. Consecutive days build a daily streak.
Time and words runs support punctuation, numbers and weak keys modifiers. Weak keys fills a run with words built from the keys you miss most — also one click away on the stats page. Words auto-advance the instant you finish them (right or wrong), so nothing interrupts your flow.
New to typing? Clack School teaches touch typing from zero across four units — get set (hand position), home row, top row and bottom row — 19 short lessons in all. Each lesson introduces one or two keys: meet them (glowing fingertip pads on an on-screen keyboard show which finger reaches where), drill the motion, type words made only from keys you know, then a scored check. Wrong keys don't advance and name the finger you used by mistake. Lessons unlock at 90% accuracy and earn up to three stars; the on-screen keyboard fades while you type accurately so you learn not to look. The get set lesson opens with a picture of both hands in the home position, and a hand position button brings it back during any lesson (the clock pauses while it's open). First-time visitors are asked whether they can already touch type.
Clack School is made for a full keyboard. Computers and tablets with a keyboard get it as is. Tablets on their on-screen keyboard can take the lessons too (the keyboard comes up, and lesson 0 explains home position on glass), with a note that a real keyboard is better. Phones are told the lessons don't apply to thumb typing and can share the link to a computer; they unlock as soon as a physical keyboard is detected. Phones, tablets (including iPads that present themselves as Macs) and desktops are told apart by the browser's own report, the OS in the user agent, then screen size.
clack-XXXXX-XXXXX-XXXXX-XXXXX) — the key to that
name. Enter it on another device to sign in there; stats, clacks, badges and store items sync between devices.
Names can change once every 60 days; names unused for six months are released.?c=<code>, with share / WhatsApp / copy). Friends type the exact same words against your ghost — your verified
run replayed keystroke by keystroke — with live race lanes showing who's ahead.brand/ships.png into brand/ships/ by server/scripts/cut-ships.mjs) and bullet trails
(Dotted, Laser, Plasma, Ember, Rainbow).It's a static page — just open the file:
open index.html # or double-click it
Or serve it locally:
python -m http.server 8000
then visit http://localhost:8000.
Because it's a single static file, you can host it for free:
main, Folder: / (root), and Save.https://<user>.github.io/clack/.All progress is stored locally in your browser via localStorage. Nothing is sent anywhere unless you join the leaderboard:
clack_activity — daily activity that drives the heatmapclack_stats — per-key accuracy, WPM history (tagged keyboard or phone), personal bests, achievements, modes tried, daily results, clacks and store itemsclack_theme — light / dark preferenceclack_mods — punctuation / numbers togglesclack_sound — sound & haptics on/offclack_online — your name, recovery code, sync state and any runs waiting to be posted (only after you join)Without a name, progress is per browser, per device. With one, it syncs through the API to every device you sign in on. Clearing your browser's site data resets this device; keep your recovery code to get your name back.
The leaderboard, names and sync run on a small Cloudflare Worker with a D1 (SQLite) database —
free at Clack's scale. See server/README.md for running it locally and deploying.
API_PROD in index.html points at the deployed Worker; set it to "" to switch the leaderboard off.
admin.html is a private admin page (stats, players, runs, moderation and an activity log) that
needs the Worker's admin key.
Vanilla HTML/CSS/JS in one file. Monospace type (JetBrains Mono via Google Fonts), Web Audio for sound, <canvas> for the shooter and the WPM chart, localStorage for persistence, CSS custom properties for theming.
MIT — see LICENSE.