In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since…
A little practice. A little progress.
Good words.
Better typing.
Find something worth typing. Settle into a rhythm. Come back a little faster.
Free to use. No ads. No account needed.
Type something you enjoy. Books, poems, philosophy, and code.
Make progress your way. Replay your attempts. Race your best when you want.
Know what to practice. Get drills for the moves that slow you.
Find your next passage
The library
From the classics
Memorable passages from novels, from first lines to final pages.
Everyday moments
Small scenes in familiar words. About one or two minutes each.
Speeches and documents
Words that founded and held together a country.
Philosophy & essays
Thoughts on how to live, from Marcus Aurelius to Thoreau.
Poems
Short poems, typed line by line: Enter at the end of each line.
Code
Real code in eight languages, indentation and all.
- python Retry with backoff ~2 min
- python Count the words in a file ~2 min
- javascript Debounce a function ~2 min
- javascript Group items by a key ~2 min
- typescript Fetch JSON with a timeout ~3 min
- typescript A result type instead of exceptions ~3 min
- swift Load data with async and await ~2 min
- swift A value type with a computed property ~1 min
- go A small HTTP handler ~2 min
- go Fan work out to a pool of goroutines ~2 min
- rust Find the longest word ~2 min
- rust Enums and match ~3 min
- c Bubble sort ~2 min
- c Reverse a linked list ~2 min
- sql A running total with a window ~1 min
- sql Top customers this year ~1 min
Time estimates use 40 words per minute. You can end a run early and keep the result.