Pick a project — type it, watch it come alive. Progress is stored only in your browser.
Type real code — and watch it come alive next to you.
Your files never leave your browser — all processing is local.
Pick a project — type it, watch it come alive. Progress is stored only in your browser.
Type Quest is code typing practice with a payoff: every lesson is a small, self-contained front-end project (a ticking clock, a bouncing-ball animation, a CSS loader…), and the code you type is the code that runs. On easier lessons the live preview grows as you type, line by line; on harder ones the finished project bursts onto the screen the instant you hit the last character. Either way you don't just finish a typing test — you finish a thing that works, and you can download it as a single HTML file you built keystroke by keystroke.
The typing engine keeps the numbers honest: no auto-skipping hard characters, backspace has a real cost, and the reported WPM is net WPM — errors you leave behind count against you. Leading indentation is handled automatically so you practice the characters that matter, not the space bar. A combo meter multiplies as you string correct keystrokes together, each correct character plays a note that climbs a pentatonic scale (combo raises the octave), and finishing a lesson earns you an 8-bit fanfare.
After every run you get an instrument-style result report — WPM curve over the session, per-key latency heatmap, slowest symbols, accuracy, peak combo — and your progress accumulates locally: best WPM per lesson, a growth curve across sessions, and the keys that slow you down most. All of it lives in your browser's localStorage; nothing is uploaded, there is no account, and one button wipes it all.
Boss lessons are the climax. Instead of a snippet you type one whole, runnable project while the boss fights back: telegraphed rush attacks you block by racing to a marked character, focus hexes you survive by typing error-free, screen shake, booby-trapped characters where the display deliberately lies, and an optional time limit. Your errors charge the boss's special attack; sustained high-combo typing charges yours. The preview stays locked until the final character — finishing the build is the killing blow, and the project you just typed defeats the boss on screen. Your combo also now drives the music itself: a percussion pulse carries your typing, higher combo tiers stack a bassline and melodic accompaniment on top (paced to your typing speed), and breaking the combo strips the song back to the bare pulse.
All lesson code is original, machine-generated for this site and licensed for practice — no third-party code is scraped or reused. Lessons are formatted with a consistent style and verified to parse and run before they ship.
Type Quest now spans more than front-end code. TypeScript lessons are fully runnable — you type the typed source and the live preview runs its offline-transpiled JavaScript. Python, C, C++, Go, Rust and Java are typing-only: browsers can't execute them, so there's no live preview and the play screen says so plainly — the reward is the typing practice itself, on idiomatic, difficulty-scaled snippets (a Go worker pool over channels, a Rust generic stack with lifetimes and match, a Java stream pipeline, C++ templates and the STL, and so on). Each language is typed in its own house style — 4-space indentation, or Go's gofmt tabs, which the engine auto-skips as leading indentation exactly like spaces, so you never type them. Because no in-browser parser can validate these languages the way it checks the web lessons, every typing-only snippet is hand-reviewed before it ships, and a language filter above the lesson list lets you jump straight to the one you want.
The lesson library is also a map: every project type is a region with its own difficulty ladder, and clearing a step opens the next one in that region — you never have to master one region before exploring another. The boss lessons (The Chrono Keeper, The Brick Warden) sit as themed gates on that map: a boss unlocks once you've cleared at least one lesson in every region leading up to it, and — where more than one boss guards the same stretch of the journey — once the previous boss has fallen. Every lesson you clear, boss or not, is added to your collection gallery as a card with your best stats and the actual runnable project: run it again (one live preview at a time, so the page stays fast), open it full-size, download it as HTML, or replay the lesson from scratch.
Diagnosis closes into training. The Progress tab draws a keyboard-shaped heatmap of every key across all your sessions — orange fill for keys slower than your own baseline, magenta border for error-prone ones (a key needs a minimum number of attempts before it counts, so one early typo isn't a verdict). From that profile, Train weak keys recommends the lessons whose code hits your weak characters hardest, and tells you exactly why: which characters each lesson targets and your current error rate on them. Finish a recommended lesson and you get a before/after comparison on those keys, then watch the heatmap cool down over the following sessions. Lessons you've already cleared at their target WPM are skipped — the recommendations always point at something left to gain.
Long-term hooks round out the loop. A Daily Challenge picks the same lesson for every visitor on a given UTC calendar day — a deterministic hash of the date, no backend involved — records your result against that day, and shows how today's WPM compares to yesterday's plus your current streak of consecutive days. Clearing lessons, sweeping every difficulty of a project type, clearing every D5 lesson, defeating a boss, hitting a WPM milestone, keeping a 7-day streak, or training a flagged weak key back under 5% error all unlock achievement badges — a toast announces a new one immediately, and the Progress tab's Badges section keeps every earned badge listed with the date you got it. Every result screen (practice, boss, daily) and every achievement toast can also generate a shareable PNG result card — drawn entirely in your browser on a canvas, no upload involved — that downloads or hands off to your device's share sheet.