flinttype
Releases

Changelog

What changed and when, in plain language. The newest changes come first; behind-the-scenes work is left out.

Latestv6.154.2 – v6.154.13

v6.154.13

  • Design with AI no longer offers to change Quick restart, a setting that does nothing.

v6.154.12

  • While you type with the top bar set to fade, moving the pointer to the top or bottom edge brings the top bar or footer back. This never worked before.

v6.154.11

  • Opening another page now starts it at the top, instead of keeping how far down you had scrolled on the last one.

v6.154.10

  • A personal best now notifies only your friends, people you follow who follow you back. Someone who follows you without being followed back no longer gets told.

v6.154.9

  • A high shortest-word setting no longer loops the same few words. When your word list has too few words that long, the test uses its longest words instead.

v6.154.8

  • Asking Design with AI for the default number of lines now gives 4, the real default. It used to set 3.

v6.154.7

  • In tape mode, the caret and the next few letters now stay crisp wherever you set the caret position. Before, they faded out near the right edge.

v6.154.6

  • Friends lists now load reliably when you follow, or are followed by, more than 500 people. Before, the list failed or left out everyone past the first 500.
Show 4 more changes from this day

v6.154.5

  • The home page's "How to start" text now says correctly that drills and insights need a free account, while typing tests and races work without one.

v6.154.4

  • Blocking now also stops the head-to-head comparison: you can no longer pull up a stats comparison against someone you've blocked, or who has blocked you.

v6.154.3

  • In Burst mode, picking a different word list now re-rolls the words you see straight away, instead of only changing them after you restart the set.

v6.154.2

  • Following and blocking someone at the same moment can no longer leave the follow in place across the block, which let the blocked person keep seeing your online status.

v6.151.1 – v6.154.1

v6.154.0

  • Importing your MonkeyType settings works properly again: it changes only the settings in your file and leaves everything else as it was. Before, it reset many of your other settings to their defaults.
  • Your custom MonkeyType colours, font and font size now come across too, along with the caret, keyboard, live stats and test setup.
  • A new import window checks your file step by step, shows each setting as it is now and after the import, and lets you leave out any group. It also lists the MonkeyType settings flinttype can't use, and why.
  • You can undo an import straight after it finishes. Importing a flinttype settings file uses the same window, and restoring one of your own exports now puts every setting back exactly.

v6.152.2

  • Buttons and selected options no longer cast a shadow or an orange glow. The main button, the current page in the top bar and in Settings, and the picked option in every switch are now flat orange.
  • The "Button glow" setting is gone, since there is no glow left to switch.

v6.152.1

  • Design with AI now runs on Claude Haiku 5.5 by default.

v6.152.0

  • Race lanes move smoothly: other racers' stones glide between updates instead of jumping and stalling.
  • Stones roll as they travel and leave a trail behind them, so you can see at a glance how far everyone has come.
  • Crossing the finish line lights up the line and gives the stone a little pop.
  • The race card's header now lines up with the lanes below it.
Show 17 more changes from this day

v6.151.13

  • The race page is quieter: one heading, the mode switch with a short line about it, and the buttons.
  • Lobby settings now open straight under the buttons, the same width as the row, instead of jumping above them and covering the page. The panel no longer leaves an empty gap, and it fits on short screens.
  • Hover "Create private lobby" to see what kind of lobby it will make.

v6.151.12

  • The results screen no longer shows a scrollbar in the middle of the page. When the results run past the bottom of the window, the page scrolls from the window edge, and the mouse wheel works anywhere on it.

v6.151.11

  • After a test, one long stall partway through a word is now pointed out, instead of the test being called an even run.

v6.151.8

  • In Burst mode, the reps and items counters read "2 of 5" instead of "2/5".

v6.151.7

  • On Insights, hovering a dot on the speed chart shows that test, and its note always matches the shaded usual range. Speeds of 100 and above are no longer cut off at the chart's edge.
  • Your next step only says you pause more often when the figures show it, its comparisons read more plainly, and the delete dialog says in plain words what stays.

v6.151.6

  • The labels on the usual-range bars now fit narrow screens: they no longer overlap or run past the bar, and they move onto two lines when needed.

v6.151.5

  • The result screen's note about fixing mistakes now gives only the time your fixed mistakes took, and the word it names is always one where you fixed a mistake.
  • Correct letters you delete and don't type again (for example at the end of a timed test) no longer count as fixing time.

v6.151.4

  • Cleaner labels across flinttype: facts that were squeezed together with dots are now laid out as labelled figures, progress shows as bars instead of percentages, and counters read "12 of 25" instead of "12/25".
  • On the Biogram, each pattern's gap from your usual pace now adds up with the times shown beside it.
  • Shared results show their speed chart in link previews again.

v6.151.3

  • Quote runs on the All lengths leaderboard now name their quote length, such as "Long quote", instead of a word count. Older personal-best notifications keep the length unit they were saved with, and on narrow phones your profile's recent runs no longer cut a test's length short.

v6.151.2

  • After a test, the count of tests left before it can be compared with your usual now includes every earlier test of that kind, so tests from an earlier day and from today both count.

v6.151.1

  • Test names now read in plain words everywhere, such as "60 seconds" and "Long quote": in personal-best notifications, share cards and link previews, drill descriptions, the leaderboard filter button and your profile's recent runs.

v6.153.0

v6.153.0

  • Insights now looks at all your Adapt tests, of every length, by default. Pick one length from the "Which tests" menu to narrow it down again.
  • Each length runs at its own pace, so every test is compared with your usual for its length first. A 15 second test no longer looks like a better day than a 120 second one.
  • A length joins once you have 5 tests of it, and the page tells you how many tests are still waiting.

v6.148.43 – v6.151.0

v6.151.0

  • After every test you now see what slowed you down and where its time went: typing, fixing mistakes, pauses before words, hesitations inside words and breaks. Once you've taken a few tests of the same kind, the result also shows how it compares with your usual. You can turn the analysis off in Settings. The optional result cards are clearer, and the Plain result layout now works.

v6.150.2

  • Narrow usual ranges now read "Between 77 wpm and 81 wpm".

v6.150.1

  • Tests you take on a phone or while signed out, with Adapt switched on in your settings, are now saved and compared as Casual tests, since Adapt can't run there.

v6.150.0

  • Insights is rebuilt around your own tests. It shows your usual speed and which way it's heading, where each minute of typing goes, the one thing that would help most, what has changed lately, and plain answers about your habits. You can also delete your typing analysis.

v6.149.10

  • In the command palette, links now show which settings page and section they open, without dots.

v6.149.8

  • The Privacy page now explains the short summary we keep for each test, and that only you can see it.

v6.149.7

  • Tests now record your corrections and the gaps between words, so your analysis can tell a fix from a pause.

v6.149.4

  • Worst-words practice now picks the words that are slow for their length, not just long words.
Show 22 more changes from this day

v6.149.3

  • Your test history is no longer included when someone else loads your public profile: the server stopped sending your slowest letter pairs and words, which no page ever showed.

v6.149.0

  • New update card for the big redesign: a one-page picture of the rounded look, clearer results, the new style settings and smarter practice. The changelog links to it from each release in the redesign.

v6.148.54

  • Applying rounded corners from Design with AI no longer switches your palette to Custom or shows a Reset when the palette already has those corners.

v6.148.53

  • On tablets and phones, opening notifications while the menu is open now closes the menu, so the notifications panel isn't hidden behind it.
  • Opening and closing the Adaptive practice explainer no longer unlocks page scrolling while another panel is still open.

v6.148.52

  • Signing in from Drills, Insights or Biogram now takes you back to that page instead of the home page.

v6.148.51

  • Pressing Escape in the friends panel now just closes it, instead of also opening the command palette.
  • The friends panel now works from the keyboard: opening it takes you straight to the friend search, and closing it puts you back on the Friends button.
  • Opening Friends while the menu is open now closes the menu, so the friends panel opens in view instead of hiding behind it.
  • Opening Friends from the phone menu no longer stops the page from scrolling after you move to another page.

v6.148.50

  • With the Text only top bar (and the Stripped look), the page you're on is clearly marked again, and the light and dark mode switch keeps its highlight.

v6.148.49

  • On tablets and narrow windows, the settings page menu now opens, so you can move between settings pages from it.

v6.148.48

  • Your saved app size, button shape, depth, font, outlines and palette colours no longer flicker back to the defaults for a moment when a page loads.

v6.148.47

  • Picking orange for the live stats colour now sticks, on every palette.

v6.148.46

  • An orange accent or focus ring picked on a palette other than Default is no longer lost when you reload.

v6.148.45

  • Corners in Settings → Interface now shows the right choice on every palette, and picking Round gives round corners even when your palette's own corners are smaller.

v6.148.44

  • Choosing a word list in the race lobby settings no longer closes the settings panel, and focus goes back to the word list button.
  • Clicking a label or an empty spot in the race lobby settings no longer closes the panel.
  • You can select text in dialogs over the typing test again.
  • Burst practice now works with phone keyboards: pressing space commits the word.

v6.148.43

  • After a timed race, the passage recap shows only the words you reached and no longer marks a half-typed word as wrong.
  • Pressing Escape on the race results screen no longer clears your run, so the passage recap and its underlined mistakes stay put.

v6.148.37 – v6.148.42

v6.148.42

  • The race speed chart now ends on your final speed, so "Your peak" never reads below your result.

v6.148.41

  • Personal bests now shows its short "no runs at these lengths yet" message when none of your runs are at a standard length, instead of a grid of empty dashes.

v6.148.40

  • Signing in from a drill's "Sign in to start this drill" prompt, or from the sign-in prompts on Drills, Insights and your profile, now brings you back to that page.

v6.148.39

  • Opening an expired, already used or wrong-device sign-in link now tells you what went wrong, instead of saying you're verified.
  • The sign-in link page now waits until it has checked your link before it says anything, and a link that needs one more step tells you to go back to the tab where you started.

v6.148.38

  • Typing tests with lots of uncorrected mistakes no longer make your adaptive practice think you are slower and slower over time.

v6.148.37

  • Signing in or signing up from a crafted link can no longer send you to another website afterwards.

v6.137.0 – v6.148.36

v6.148.33

  • Races: your result is final once you cross the line; a slow connection can no longer lower your speed, accuracy or place afterwards.
  • Races: if you restart the passage with Esc mid-race, your result now shows the new attempt's errors, accuracy and speed, not the abandoned attempt's.
  • Races: a wrong last letter no longer ends your race early; your finish is taken when you type the passage correctly.
  • Watching a friend live: their Burst results now show the same Burst WPM, caption, raw figure and chart they see, and the mode bar shows whether their run is adaptive.

v6.148.32

  • Putting a colour, corner, size or spacing back to your palette's own value now switches the palette picker back to that palette instead of leaving it on Custom. This works on every palette, Default included.
  • A palette whose size or spacing you changed now still reads Custom after you reload, so the picker and the settings pages' Reset button agree.
  • A look made from Background reactive keeps its colours from your background image, and Reset takes you back to Background reactive instead of Default.

v6.148.31

  • Dialogs and bottom sheets now keep keyboard focus inside while they're open: Tab and Shift+Tab cycle through their controls, Escape closes them, and focus goes back to the button that opened them.
  • On phones, the page no longer stays stuck and unscrollable after you close a warning opened from a sheet.
Show 165 more changes from this day

v6.148.30

  • On the Burst results screen, Tab now starts a new run, as the Next test button says.

v6.148.29

  • The palette gallery and the command palette (Ctrl/Cmd+K → Palette) now ask before a switch that would reset your colour, corner, font or keyboard changes, just like Settings → Theme. When there's nothing to lose, the switch happens straight away.
  • A palette's own font size, word spacing, corners and key style no longer count as your changes, so picking Catppuccin or Cyberpunk doesn't show a Reset count on any settings page.
  • A settings page's Reset now returns to the look of your current palette, not the bare defaults.
  • Picking a palette now shows its corner radius straight away instead of after a reload.

v6.148.28

  • Burst results now lead with your speed across the bursts you cleared, labelled "Burst WPM", with a short line under it saying what it counts. Raw covers every try, and the result says how many tries didn't clear.
  • The Burst result chart now starts at the first second, so mistakes at the start of a run show on it.
  • Short quotes now keep their source right under the text instead of below a block of empty lines.
  • A word that gets pushed onto a new line while you type no longer nudges the passage up; the new line appears below.
  • Long quotes on shorter laptop screens (such as 1366×768) no longer cut off part of their last line.

v6.148.27

  • Races: your speed is now timed from the start signal while you type, the same way as the race's result card, so starting late no longer shows a much higher live speed than your final result.
  • Races: the speed chart now ends at your final speed, so "Your peak" no longer reads below your result.
  • Races: your finishing time reaches the server sooner after your last keystroke, and an older progress update can no longer arrive after it and lower your result.

v6.148.26

  • On phones, "Are you sure?" questions (such as resetting a settings page) now appear in a short sheet that fits the question, with bigger buttons.
  • Bottom sheets now dim the page behind them in dark mode too, instead of washing it out in grey.
  • Pop-up dialogs keep a small margin from the screen edges on phones, and search boxes in pickers no longer make iOS zoom in.
  • The light/dark switch respects your reduced-motion setting.

v6.148.25

  • Words you get wrong are underlined in full again, instead of showing a stray underscore after the word.
  • Quote lengths now say "Extra long" instead of "Thicc", and the speed chart for timed tests runs right to the last second.
  • On phones, the test settings, replay controls and result buttons are bigger and easier to tap, and typing a custom length or searching wordlists no longer zooms the page on iPhone.
  • The wordlist picker is tidier on phones: names stay on one line and the rows line up.
  • The private lobby settings panel no longer jumps when you switch race type.
  • When you watch a race, the highlighted cursor matches the racer's marker in the lineup, and quote races credit their source as "A quote from …".
  • The race speed chart has a baseline, and the passage under the results lines up with the card.
  • Burst runs no longer show a personal-best crown, since they aren't saved.

v6.148.24

  • Personal-best notifications now name the mode the way the app does (Adapt instead of Training) and give the length a unit, such as "Casual · 30s" or "Adapt · 25 words".

v6.148.23

  • Buttons and links are easier to tap on phones: the top bar, the Discord strip, the footer, the menu drawer, dropdown menus, pop-up close buttons, the friends list and the page jump links all have finger-sized tap areas now.
  • The "What's new" popup only lists changes you can see, not behind-the-scenes releases.
  • The friends list that opens under the top bar now lines up with the rest of the bar.
  • Long page titles wrap more evenly instead of leaving one word on its own line.
  • The brand card page fits on a laptop screen without scrolling, and the keyboard hints on the cover page stay light in dark mode.
  • The privacy page uses the same mode names as the app (Casual, Adapt).

v6.148.22

  • In the command palette (Ctrl/Cmd+K), Esc now steps back out of a list of choices instead of closing the palette, and you can switch back to the Default palette from it.
  • Command palette entries now use the same names and options as the Settings pages, and Key arrangement, Palette gallery and Design with AI were added.
  • On phones the command palette keeps a margin from the screen edges, its rows are easier to tap, and long names are no longer cut off.
  • Settings controls on phones (dropdowns, colour swatches, number fields, the light/dark switch) are now big enough to tap comfortably, and text fields no longer make iOS zoom in.
  • The caret Movement choices now fit neatly on small phones, and keyboard samples draw Rounded and Pill keys differently.
  • Setting previews now show a full paragraph, so Lines shown, Line width and text size visibly change them.
  • The Design with AI chat box now sits centred under the previews, and the Import / export message no longer runs off the screen on phones.

v6.148.21

  • On phones, the leaderboard's view switch and filter switches are easier to tap.
  • The errors and accuracy columns in your profile's Recent runs now line up.
  • Biogram: Adapt tests are labelled Adapt, the recent tests table fits on a phone, weakness bars line up, and recently shown words explain what their number means.
  • Drills describe your weakest pairs and words the same way Insights does, and the isolation card now says it covers letter triples too.

v6.148.20

  • Menu section labels (such as Accounts in the profile menu) are now in plain sentence case.

v6.148.19

  • On the leaderboard's All lengths board, each run now shows its real length, so a 60-word run no longer reads as 60 seconds.

v6.148.17

  • The friends button now sits in the top bar on laptop and tablet screens and opens your friends list right under it, so the floating friends pill no longer covers the keyboard, cards or footer links. On very wide screens the pill stays in the corner, clear of the page.

v6.148.16

  • After signing in or creating an account you land back on the page that sent you there (for example a profile you wanted to follow), instead of the home page.

v6.148.15

  • Live stats now take their colour from your palette by default, so they no longer stay orange under other palettes.
  • The Kodama Grove look now also turns on letters-only for the keyboard, as intended.

v6.148.14

  • The About page, the Adaptive explainer and the Biogram now describe how practice paces itself: it eases off when you are tired or less accurate than usual and pushes harder on a good day.
  • The weakest-pair tip on Insights notes that time lost to mistakes counts too.
  • The changelog's link to the raw file works again.
  • Link previews for flinttype use the logo orange, and share previews and palette tiles drop their arrows.

v6.148.13

  • Option switches now work with the keyboard: Tab reaches the selected option, arrow keys change it, and focus stays put after you pick.
  • Group names in the command palette and wordlist picker are in plain sentence case.
  • Rounded keys in keyboard settings previews now match the keyboard on the practice screen, and "Mark F and J" is now called Home row bumps.

v6.148.12

  • Typing now works with Android keyboards such as Gboard on the practice screen, in races and in sudden-death drills.
  • Tapping the text on a phone keeps the keyboard open instead of closing it straight away.
  • Tab now moves between buttons in a race lobby and on race results.

v6.148.11

  • Switching between settings pages now always starts at the top, and settings pages no longer slide sideways on phones.
  • The keyboard settings are now one section: its options only appear while the keyboard is shown.
  • Live stats have one Show live stats switch, which no longer hides the numbers by accident.
  • Choices in settings are larger and easier to tap on phones, and rows of five options fill the width evenly.
  • Line width is now a slider with a separate Full option that remembers your last width.
  • The palette gallery shows dark tiles in dark mode, and Design with AI asks you to sign in before you start typing a request.
  • The sidebar has a Design with AI entry, and command palette names now match the settings rows.

v6.148.10

  • Practice no longer eases off just because you switched from casual to adaptive tests or changed test length. It now compares each run with your usual pace and accuracy for that same kind of test.
  • If your accuracy stays at your own usual level, practice keeps serving your hardest words instead of holding back.
  • A single stray mistake no longer marks a letter pair as a weak spot.
  • Improvement still shows up quickly, but one off day no longer overwrites what practice has learned about your typing.

v6.148.9

  • The friends button now moves up so it never covers the links at the bottom of the page.
  • The What's new window waits while you're on the brand card or a release card, and notifications have a bigger Mark all read button on phones.
  • Long names on shared results now wrap neatly instead of running off the screen, and the link preview uses the logo orange.
  • The live-watching screen only says Watching live when someone really is live, and signed-out visitors get a clear Sign in button.
  • The Biogram page is shorter and calmer, with long lists behind Show all and technical details tucked away, and the brand card fits phone screens without sideways scrolling.

v6.148.8

  • Fixed email sign-up: when a quick "verify you are human" check is needed, it now appears right in the sign-up form, and the password hint shows the real minimum length.
  • Each sign-in step now has its own heading, such as "Check your email" or "Reset your password", and long email addresses no longer break in the middle.
  • The changelog now splits each busy day into its releases and folds the rest behind a "Show more changes" row, and bold words show as bold instead of stars.
  • The FAQ now explains that MonkeyType history is imported from your profile, and the privacy page lists every service we use, including the race server, the AI design assistant and Discord.
  • The About page no longer runs words together, the cover page's caret and Start typing button are full size, and the not-found screen's caret no longer blinks.

v6.148.7

  • Burst drills now work with phone keyboards, and sudden-death drills raise the keyboard when you tap the words.
  • Drill filters only offer choices that change the list, the recommended drill follows your filter, and new accounts see the drills they can start today first.
  • Every drill ends with Run again and Back to drills, the cards show your target speed, streak and progress plainly, and Burst 1000 counts each discovered word once and picks fresh words when you run it again.

v6.148.6

  • The WPM trend on profiles now covers your whole history: 1D, 1W, 1M, 3M and All each show their own runs, labelled by date.
  • Record crowns in Recent runs only mark runs that match your personal bests, and new players see a dash instead of an orange zero.
  • Following someone updates their counts straight away, signed-out visitors get a Follow button, and failed loads, race invites and profile edits now say what went wrong.

v6.148.5

  • Each Insights tip now names your weakest letter pair or word with its real timing, and its button names the drill it opens.
  • Insights uses plain labels ("Personalised" or "Still learning"), labels WPM and accuracy on every run, and shows new players one clear prompt instead of empty charts.
  • The playground remembers its scores, so coming back to the page no longer uses up your scoring limit, and the words worth practising stay readable in light mode.

v6.148.4

  • Any leaderboard filter you've changed is now highlighted in orange, and the table shows each run's length (or when it happened, on a single-length board).
  • Only your best run carries the orange You badge, so the table stays readable if you have many runs on it.
  • Empty boards can now also suggest switching between Casual and Adapt, and a failed refresh or image save tells you and lets you try again.
  • The Level board explains that tests, drills and races all earn XP, and large numbers are easier to read.

v6.148.3

  • Race results now include a speed-over-the-race chart and a quiet recap of the passage with any words you left wrong underlined.
  • People watching a race see the final standings and a Find a race button when it ends, and Leave always takes you back to the race page.
  • Race lanes stack on phones so the stones have room to move, and stones stay visible in dark mode.
  • Keyboard users can now Tab to every race control outside the countdown and the race itself.

v6.148.2

  • The big speed number on the results screen always fits, even with decimals or other speed units, and the chart labels its seconds evenly.
  • Save image now saves a neat result card with the flinttype mark, and Replay plays your run back in the same font, colours and caret as the typing screen.
  • The practice settings bar keeps the same width when you switch modes, fades with the rest of the screen while you type, and closes on phones once you pick something.
  • In Burst, your numbers now sit right above the word, and Shift+Tab on the results screen jumps straight to the result buttons.

v6.148.1

  • On/off switches now follow your Button shape setting too (pill, rounded or square).

v6.148.0

  • Added a Style section to Interface settings: choose pill, rounded or square buttons, flat, soft or lifted cards, and turn the button glow and page glow on or off.
  • You can now pick the app's own font (Sans, Mono or System) and size (Compact, Default or Large) without changing the font you type in.
  • Style choices are in the command palette, come along with Import / export, and the Design with AI studio can suggest and preview them.
  • Choice chips in settings are now fully rounded, and setting descriptions are shorter and plainer.
  • The Default tile in the palette gallery now shows the real flame orange and the app's own fonts.

v6.147.0

  • Adaptive practice now counts your mistakes: letter pairs you often mistype get practised even if you type them quickly the rest of the time.
  • Practice notices improvement sooner, so a pattern you have fixed stops being drilled and your remaining weak spots get the time instead.
  • Practice eases off when you are tiring or making lots of mistakes, and pushes a little harder when you are on form.
  • Restarting a test is less likely to repeat the words you just skipped.
  • The hardest words no longer crowd a short passage just because there were too few words of the right difficulty.

v6.146.1

  • Old shared-result links that use a run's full ID open the result again instead of a not-found page.

v6.146.0

  • The friends panel is easier to scan: race invites, live friends, online and offline people now sit in their own small groups, with clear orange Join and Watch buttons and a Find people button at the bottom, now on phones too.
  • The What's new window now actually appears after an update, with a cleaner, rounder look, and notifications got the same softer, tidier rows.
  • Shared results open on a polished page that asks visitors if they can beat your score, with one tap to take the test themselves.
  • The live-watching screen, the Biogram page and the release cards were tidied up with rounded cards and plain wording, and the Biogram's three pattern tables now sit behind one simple switch.
  • Friends without a profile picture now show their initial instead of an empty circle, and identity tags are pill-shaped.

v6.145.0

  • About, FAQ, Privacy, Terms and Blog now share one comfortable reading column with clear headings, and the FAQ and Privacy pages have quick links to jump to each section.
  • The changelog is now grouped by day and leaves out behind-the-scenes updates, with older months folded away so it is much quicker to scan.
  • Signing in is quicker: after your email you go straight to your password (or can ask for an emailed code instead), you can show or hide your password, and there is a link to keep practising without an account.
  • The page-not-found and error screens now match your theme, including dark mode, and offer a Search pages button that opens the command palette.
  • The Discord sign-in button is back in Discord's own colour, so the orange Continue button stands out as the main action.

v6.144.0

  • Settings are now split into seven short pages (Theme, Typing, Interface, Keyboard, Stats & results, Behaviour, Multiplayer & social), with a sidebar that highlights the page and section you're on.
  • Search any setting from the new Search settings button, or press Ctrl K (⌘ K on Mac); pressing Escape now closes the command palette instead of reopening it.
  • On/off settings are now simple switches, previews start folded away, and options that don't apply yet stay hidden until they do.
  • Each settings page has its own Reset button that appears only when you've changed something, and switching palettes no longer asks for confirmation when you have nothing to lose.
  • New options let you pulse the caret before a test, choose where quote credits appear, and show results as cards or plain.

v6.143.0

  • The drills page now leads with one recommended drill and a big orange Start button, so you always know what to practise next.
  • Drills are grouped into Tailored to you and For everyone, as compact rounded cards you tap anywhere to start. The page is about half as long on phones.
  • The isolation drills are merged into one card with a tappable button for each weak letter pair.
  • Opening a single drill works again, and its header now lines up with the typing area. It has a clear back button and friendlier screens for loading, locked and signed-out states.
  • The filters use the same orange switch as the rest of the app, and each drill card says plainly what it does and how many words, reps and how much speed it asks for.

v6.142.0

  • The profile page has a cleaner layout: a rounded identity card with a flame-ringed avatar, then personal bests, activity and skill, your WPM trend and recent runs.
  • Best WPM and your level bar glow in the flinttype orange, while the rest of the stats stay calm and easy to scan.
  • Personal bests and the WPM trend now use simple switches (All, Casual, Adapt, Races and 1D, 1W, 1M, 3M, All) that fit on a phone.
  • A 60-word run no longer shows up as your 60-second best, and the activity heatmap's month labels no longer get cut off on phones.
  • If a profile fails to load you now see a clear message with a Try again button, and unknown usernames get a friendly not-found page.

v6.141.0

  • The Insights page now opens with what to practise next, and each tip has a button that starts the right drill.
  • Your slowest letter pairs and words, your WPM trend and your recent runs now sit in rounded cards that line up on phones and desktops, with only your top weakness and your trend line in orange.
  • The playground now predicts a realistic WPM for any text, shows each word's predicted speed, and only highlights the words worth practising.
  • Recent runs now link to your profile for the full list, and practice links now go to the home page.
  • Insights now shows a loading preview while your data arrives, and a Try again button if it fails.

v6.140.0

  • The leaderboard has a simpler layout: one row of filters above the table replaces the long side menu, so you can always see which board you're looking at.
  • Your own row is highlighted in orange, and the top three players get a small medal.
  • Choosing "All lengths" now really shows every test length instead of jumping back to 60 seconds.
  • When a board is empty, it says which filters are hiding results and offers one tap to show more.
  • "Recent runs" is now called "Best runs". The Players and Level boards share the same clean table and can be refreshed or saved as an image.

v6.139.0

  • The race page now opens on a simple launcher: pick 1v1 or Free-for-all, then press Find race or Create private lobby.
  • Private lobbies have bigger Start race and Ready up buttons, a one-click invite link, and a clear message whenever starting, readying up or creating a lobby fails.
  • Race results now appear first when a race ends, with your speed as the big number and a standings table that fits on phones.
  • Race lanes and cards are rounded and match the flame orange in light and dark mode, and your stone no longer vanishes as it crosses the finish line.
  • Public races no longer show a confusing Not ready label next to your name during the countdown.

v6.138.0

  • The practice settings now sit in one calm bar above the text: your mode and length light up in orange, the wordlist is a single button, and Adaptive is one on/off switch.
  • Before you start, the practice screen simply says Start typing; while you type, one row shows your speed in orange with accuracy, errors, peak and progress beside it.
  • The results screen leads with a big speed number, has a clear Next test button, and its chart no longer repeats the time labels or misplaces the mistakes strip.
  • The on-screen keyboard has rounder keys, F and J show small homing bumps instead of always glowing, and pressed keys now light up orange.
  • Tab still gives you a new passage while you type, and keyboard users can now Shift+Tab to reach the settings and result buttons.

v6.137.2

  • Ghost buttons no longer show a faint outline ring, and selected options keep their orange outline under the default border style.

v6.137.1

  • Brought back flinttype's signature orange from the flame logo as the theme colour: the current page in the top bar, selected options and main buttons are orange again, now with a soft flame-style gradient, instead of black.

v6.137.0

  • A fresh, rounder look across the whole app: pill-shaped buttons and switches, softly rounded cards, a gentle warm glow behind the top of every page, and calmer warm colours in both light and dark mode.
  • The top bar is simpler: the page links now sit in a floating pill in the middle, with one-tap light/dark switching, your profile picture, and a "Sign in" button that now also shows on phones.
  • The footer and the Discord invite now scroll away with the page instead of taking up space on screen, and the app's version number moved to the footer (it links to the changelog).
  • On phones, the friends list now opens from a button in the top bar instead of a floating pill that covered the page.
  • Better colour contrast on orange buttons and text, so labels are easier to read.

Read the update: A fresh, rounded flinttype

Earlier releases

June 20266 days

v6.136.26 – v6.136.48
  • The footer now has a "Terms" link, so you can reach the Terms of Service page from anywhere in the app.
  • Removed an unfinished internal "run report" page that lived at a guessable address and showed the same fake, placeholder results to everyone. Your real test results are unaffected (they show on the results screen after a test).
  • Fixed the top navigation on portrait tablets (around 768–1000px wide): "Leaderboard" and "Insights" were getting cut off the bar with no menu to reach them. The hamburger menu now appears at those widths, so every page is reachable.
  • Timed and word tests of the same number (e.g. a 60-second run vs a 60-word run) are now kept apart for personal bests and the leaderboard, instead of being lumped together. The timed leaderboards no longer rank short custom-word sprints against real timed runs.
  • Fixed Tab restarting your test (and jumping focus back to the typing area) while a pop-up dialog was open on the typing screen. Tab now moves between the dialog's buttons and links as expected, and your in-progress test is left alone.
  • Fixed "stop on error" leaving a word permanently red-underlined: hitting a wrong key (which it blocks) and then finishing the word correctly no longer marks that perfectly-typed word as an error for the rest of the test.
  • Fixed the share page and its social-preview image mislabelling timed and quote runs as "Words". A 60-second test now reads "Time · 60s" and a quote run shows its length (e.g. "Quote · long") instead of "Words · 60".
  • Race invites now clear once you act on them: joining a race from the friends dock (or opening the invite from the bell) marks it read, so old invites and the swords badge no longer linger pointing at races that have already ended.
  • Made races cheat-resistant: the server now validates each racer's progress, so nobody can jump straight to the finish or post an impossible speed to win. The change also stops genuinely fast typists from being wrongly blocked mid-race.
  • Hardened the leaderboard and profile against tampering: your level, XP, and imported-test stats can no longer be inflated by editing local data, so the Top-by-Level board stays fair.
  • Fixed community palettes (Catppuccin, Cosmic Night, and the rest) briefly flashing the default coral/paper colours every time a page loaded — your chosen palette now paints immediately, before the first frame.
  • Fixed importing MonkeyType settings while it was set to Quote mode: it now picks a valid quote length (so quotes actually load instead of showing "quote unavailable"), and the import no longer quietly resets your adaptive mode and word-list choices.
  • Fixed the mobile menu when signed out: it no longer shows a useless "Sign out" button and now offers a proper "Sign in" link, so you can actually sign in from your phone.
  • Fixed the mobile menu's footer links: "Status" (which went nowhere) is now "Changelog", and "Privacy" now opens the privacy page instead of doing nothing.
  • Fixed online word races that could get stuck "racing" forever when someone joined and never typed (or their tab crashed): a race now always ends within a sensible time limit, ranks everyone, and frees the room — so abandoned races can't pile up and block new ones from starting.
  • Fixed personal-best detection for signed-out players: the saved best for each test now stores your actual final speed instead of a stale mid-run reading, so the best-run crown appears on the right runs and a faster run always updates your best.
  • Fixed the "Design with AI" button overlapping the friends pill at the bottom of the Customise screens on narrow phones — the button now sits just above the friends pill so both stay readable and tappable.
  • Fixed race results sometimes crowning the wrong winner: the final placement double-counted accuracy, so a racer with the highest speed shown in the WPM column could still drop a place at the finish. Placement now matches the WPM column (which already accounts for your mistakes), so whoever leads on speed wins.
  • Fixed Escape during a test both restarting the run and popping open the command palette at the same time (when focus had drifted off the typing area). While a test is in progress, Escape now just restarts — it no longer also opens the palette.
  • The "Join our Discord" banner now fades away with the rest of the chrome while you're typing (and in focus mode), instead of staying on screen with a clickable button that could pull you off a run.
  • Fixed daily streaks and the activity heatmap miscounting around daylight-saving changes: a streak spanning a clock change no longer resets a day short, and the heatmap no longer skips or doubles a day that week. Day boundaries now follow the calendar, not a fixed 24-hour step.
  • Fixed settings leaking between accounts on a shared computer: after one person signed out and another signed in, the second person could see (and accidentally overwrite their account with) the first person's settings. Signing out or switching accounts now clears the local settings, so each account only ever sees its own — while a brand-new account you create from a signed-out session still keeps the settings you'd set up first.
  • Fixed accuracy and error count ignoring mistakes you corrected: typing a wrong letter then backspacing (or having it blocked by stop-on-error) used to leave you at 100% accuracy with 0 errors. Accuracy now counts every keystroke, like the live readout during the test — so the number reflects what you actually typed, and the live error count, the results screen, and your saved history all agree.

v6.136.2 – v6.136.25
  • Fixed a typing deadlock: with Confidence set to "All" (backspace fully locked) and Strict space on, one typo used to freeze the run — you couldn't fix it or move on, only restart. Now, when backspace is locked, space lets you move past the word so the run keeps going.
  • Fixed the command palette's "Go to test" (Ctrl/Cmd+K) landing on a 404 page; it now opens the practice surface.
  • Fixed settings loss on a fresh device: if you changed one setting in the moment right after opening the app (before your saved settings finished loading), it could wipe your other settings in that group. Now only the setting you actually changed is updated, and the rest of your saved preferences are kept.
  • Fixed a Burst-mode loophole: if you clicked away from the typing area (so the page itself had focus), pressing space could push a too-slow word through instead of resetting it. Space in Burst now always goes through the speed/reps check, wherever the focus is.
  • Fixed Burst mode finishing too early: the last word used to end the drill the moment you typed its final letter, skipping the speed and reps requirement (so a single slow word could "complete" a burst). Now the final word is held to the same threshold and reps as every other — you finish it with space once you've cleared the bar.
  • Fixed the Blog page: the "Coming soon" posts were clickable links that led to a 404 page. They now show as plain headings until the actual post is published.
  • "Reset all" on the Customise pages now truly resets everything it counts. On Behaviour it also clears your sound settings; on Appearance it also clears your caret, on-screen keyboard and background settings — so the "customised" count and the button no longer get stuck after a reset.
  • Fixed the typing area showing no upcoming text when "Lines rendered" is set to 2 (or only two lines fit): the cursor now rides the top line so you can always see the line you're about to type, instead of being stuck on the bottom line.
  • Fixed the results graph putting a red ✕ on every point of a flawless run: mistake marks now appear only where you actually mistyped, matching the "no mistakes" note. Also cleaned up the graph's hover tooltip, which was listing your speed twice.
  • Fixed the notifications bell vanishing on phones: signed in on a small screen, the bell now stays in the top bar next to the menu, so you can finally see personal-best, follow, mutual-friend and announcement notifications on mobile.
  • Fixed the friends leaderboard dropping people: a slower friend could vanish from the board entirely if you (or another friend) had lots of faster runs. Every friend now shows at their correct rank, and the same fix applies to the global board and top-players list.
  • Fixed keyboard navigation on the multiplayer race screen: in the lobby and on the results screen you can now Tab to reach Ready, Start, Rematch, Copy link, Save image and Leave — previously Tab did nothing there, so those controls were mouse-only. Esc in the lobby no longer silently re-shuffles your words.
  • Hardened the leaderboard against fake scores: a finished run's speed now has to be backed up by the actual typing it recorded, so fabricated world-record submissions are rejected. Your real runs are unaffected.
  • The Discord banner no longer flashes briefly on every page load after you've dismissed it.
  • The results screen now labels burst runs as "burst N" under TEST TYPE instead of mislabelling them as a words test.
  • Signing out now clears the on-device personal-best and average-speed caches, so the next person on a shared computer starts fresh instead of inheriting your PB crown and burst threshold.
  • Settings no longer revert on their own. Changing any option used to silently undo things saved in the background — your adaptive-practice progress, profile tag selection, or MonkeyType import could quietly roll back. Saves are now precise: only the settings you actually changed are written.
  • Fixed a nasty settings bug: picking a community palette and then tweaking any single option (a colour, the corner radius, a font) no longer wipes the palette when you reload. Your chosen palette now survives underneath your tweaks, "Reset" returns you to it, and undoing an AI design suggestion no longer costs you your palette either.
  • The sign-in screen now explains when an account has no password (for example one created with Discord), instead of silently hiding the password option.
  • You can now skip the very first word with space, just like any other word — pressing space before typing starts the test and moves on. Strict space still blocks skipping everywhere.
  • Skipped words now count toward the errors stat on the results screen, matching the red underline you saw during the test.
  • Accuracy is now honest: every wrong keypress counts against your accuracy, even if you correct it (and even if stop-on-error blocked it). 100% accuracy now genuinely means a clean run, so raw and actual WPM line up. The errors stat still counts only mistakes left in the text.
  • Fixed the race spectate view: the "Spectating @name" header can no longer be squeezed under the racer line-up strip, and the name / progress / wpm row now wraps neatly on small screens instead of clipping.
  • The race countdown is now smooth and fair: every racer's 3-2-1 ticks to zero at the same instant, anchored to the server's clock instead of each device's own time, and the digits flip exactly on the second instead of stuttering. The in-race elapsed timer uses the same clock.
  • Private lobbies are now guaranteed human-only: bots can no longer sneak into a challenge race, and any bot left over in an old lobby is removed at the next rematch. Public matchmaking still fills with bots as before.

v6.135.1 – v6.136.0
  • The mode bar above the typing area is now always the chips picker — the "Mode bar" style choice (chips / inline / hidden) has been removed from Customise → Appearance → Chrome.
  • The leaderboard now ranks only two modes: Casual and Adapt. The "All modes" and "Race" filters are gone, so the board compares like-for-like solo runs.
  • Tidied the leaderboard layout on desktop: the top of the rankings panel now lines up flush with the top of the filter sidebar.
  • Trimmed the results screen: the "peak" and "avg" stats are gone, leaving a cleaner row of raw, stall, consistency, errors and time. The ✕ marks on the result graph remain only where you actually made a mistake.

v6.135.0
  • The host can now force-start a rematch too. After a race finishes, if some players haven't pressed Rematch yet, the host gets a "Force rematch" button to start the next round anyway — same as the "Force start now" button in the opening lobby.
  • Made races fully playable without a mouse. You can now Tab to the Ready, Start, Force-start, Rematch, and Leave buttons in the lobby and on the results screen, with a clear focus outline showing where you are. Tab is still held back mid-race so it can't pull you off the passage while you're typing.

v6.134.1
  • Made adaptive mode actually adaptive: it now serves the words you're genuinely worst at instead of feeling too easy. Previously your hardest words were quietly filtered out for being "too difficult", and the rest were picked too evenly — now your weakest words clearly dominate each test.

v6.134.0
  • Redesigned the race line-up again, this time TypeRacer-style: every racer now gets their own lane, with their name on the left, their flint stone gliding along its own track toward the finish, and their speed on the right. Much easier to follow who's where than the single shared line.
  • In a lobby, each player's lane shows a clear checkbox — ticked once they've readied up, empty when they haven't — so at a glance you can see exactly who you're waiting on. The lobby card below now just holds the share link and Start button.
May 202612 days

v6.124.1 – v6.133.1
  • Fixed test replays drifting out of sync on longer runs (especially timed one-minute tests): the replay now highlights exactly the words you typed as it plays, so the trail tracks the timeline instead of lagging behind whenever a word was left incomplete or mistyped.
  • Redesigned the live race: everyone now races on a single shared line, each player a flint stone gliding toward the finish, with a compact name + speed legend underneath. A full lobby stays compact instead of stacking a tall lane per player.
  • The "Ready up" button in a lobby is now a clear, prominent button so you can't miss it.
  • The host's "Force start now" button is easier to see while waiting on players to ready up.
  • You can now force-start a private race lobby. When some players haven't readied up, the host gets a "Force start now" button to begin anyway, instead of waiting on everyone.
  • Fixed the race screen squeezing the passage off-screen when several people joined: the racer list is now more compact, and it no longer reserves a matching empty band at the bottom, so the text you type stays visible without zooming out.
  • "Design with AI" is now a dedicated page. The bar on the customise pages is just a launcher; pressing it opens a studio that previews your described look across six parts of the app (typing, live stats, keyboard, result, race, buttons) at once. Changes there only affect the previews, never your real settings, until you hit "Apply to settings".
  • Fixed the AI panel (and other pop-up surfaces) showing up dark on a light page after the AI applied a theme: applying a surface now updates the pop-up colours too, and the AI panel follows your theme directly.
  • The "Design with AI" panel is now a proper chat that remembers your conversation (it's no longer wiped when you close and reopen it, with a Clear button when you want a fresh start). It's been stripped back to a clean, borderless look that reads correctly in both light and dark mode, and when you send a message your text turns into a chat bubble with an animated "working" indicator instead of just disappearing.
  • Removed the helper blurb from the "Design with AI" panel; it opens straight to the input.
  • "Design with AI" is more reliable. Instead of inventing colours and values, it now picks from a fixed set of options we curate (accent colours, surface themes, fonts, sizes, and every behaviour toggle), so results are always valid and on-brand. It can also confidently change lots of things at once: ask for "a cosy warm dark theme, big serif, forgiving" and it sets the surface, accent, font, size, and behaviour in a single go.
  • Settings are flatter: the boxes around each option are gone. Rows are just a label and its controls, and the only outline left is the coral highlight on the option you've selected.
  • "Design with AI" fails far less often. The request now gives the model more room to answer, falls back to other models if one stalls, retries a blank reply, and tolerates extra formatting around the result, so the "AI service returned no content" error should be rare.
  • Settings rows no longer sit in a grey band; each row is now a clean outline on the page, and the option buttons themselves carry the surface, so the controls are clearly the thing you click.
  • The leaderboard now opens on the 60-second time test by default.
  • Insights: removed the dashes from the copy, and simplified the heading.
  • The customise and leaderboard pages no longer wrap their content in a panel that looked like the sidebar; the content now sits flush on the page.
  • "Design with AI" is now a small dock pinned to the bottom of the customise pages (Appearance and Behaviour). Open it, describe a change in plain words, and it applies live so you see it on the page right away. Keep chatting to make more changes; it lists exactly what it changed each time. Hit "Apply changes" to keep them, or "Undo" to roll the whole session back. It can now change how the test behaves too (stop-on-error, strict space, confidence, and so on), not just the look.
  • Moved the on-screen keyboard and the friends dock lower so they sit closer to the bottom edge.
  • Removed the "Design with AI" card from the top of the Appearance settings page so the page is one consistent list of sections.
  • The "Design with AI" input now spans the full width, so your prompt no longer wraps to a second line when there's plenty of room.
  • Cleaner "Design with AI": a simple prompt box with a send button (no clutter). Keep typing to refine — each message builds on the last, so you can say "warmer", then "bigger caret", then "match the accent" and watch the preview stack the changes. When you're happy, hit "Apply changes" to save it, or "Reset" to start over.
  • "Design with AI" is smarter. It now knows your current look, so you can talk in relative terms ("warmer", "a bit bigger", "make it match the accent") and it adjusts from where you are. Ask for "a matching palette" or "colours that go together" and it builds a coordinated set; ask to "surprise me" or "randomise the accent" and it rolls tasteful random values. Faster too, since it only computes what changes.
  • Simplified the "Design with AI" page: the chat panel is gone. It's now a minimal AI bar above a full, native preview of your real typing screen — same fonts and sizes as the actual app. Type a look, see it exactly as it'll appear, then accept or discard.
  • "Design with AI" now has its own page (Customise → Appearance → Design with AI). Chat to describe the look you want and watch it render on a full preview of the real typing screen — top bar, live stats, passage, and keyboard, all fitting on screen with no scrolling. The proposed look only shows in the preview, so the chat and the rest of the app stay readable until you accept it. Accept to apply, or discard and try another.
  • Removed the always-on live preview from the Appearance settings page. Each setting keeps its own per-section preview as before, and the "describe the look" AI helper stays.

v6.117.1 – v6.124.0
  • New on the Appearance settings page: describe the look you want in plain words ("light green background, big serif, soft corners") and flinttype turns it into real settings, previewing the change live on the page so you can see it before deciding. Accept to keep it, or discard to put everything back exactly as it was. Needs you to be signed in.
  • Updated the Discord invite link (the old invite is replaced); the "Join Discord" buttons and banners now point to the new server invite.
  • Added a shareable "what's new" card for the multiplayer race update (a private promo page you can screenshot), showing the flint-stone racetrack and the fire progression. Not an in-app change.
  • The multiplayer race now looks like an actual race: bigger lanes, and every racer is a flint stone that rolls toward the finish line as they type. The faster someone is going, the more their stone catches fire (a plain pebble at the bottom, a full inferno at the top), so you can see at a glance who's burning. You're the coral-glowing stone.
  • After a race ends, the passage you typed stays on screen above the results instead of vanishing.
  • The race result headline now just states your place plainly ("1st place", "2nd place", …) instead of vague phrases like "Last across", with a one-line "Nth of N in m:ss" under it.
  • Added breathing room between the race player-list card and the text below it (the passage you type, and the spectator view), so the text no longer crowds the card.
  • Fixed the race typing text getting clipped under the player-list card. The text now sits at the vertical centre of the screen AND fully below the racetrack, so the first line is never hidden.
  • During a race the typing text now sits at the vertical centre of the screen again. The racetrack floats at the top instead of pushing the text down into the gap above the footer.
  • Relative timestamps now read consistently everywhere (recent runs, notifications, insights, your profile): "5m ago", "2h ago", then a tidy "May 4" for older entries. Internal: the duration and "time ago" formatters are now shared instead of re-written per page.
  • The results graph now marks your mistakes: a small red ✕ sits on the WPM line at each second you mistyped, so you can see where on the run your speed dipped against an error.
  • Pressing Tab during a multiplayer race no longer resets your run. Tab restarts only apply to solo practice; in a race it does nothing (rematch is the "Race again" button on the results panel).
  • The multiplayer race screen now reads like a racetrack. Everyone's progress shows as a row of lanes ABOVE the passage, each racer a marker that slides toward the finish line as they type (you're the coral one).
  • Once you're in a lobby or race, the crowded mode / action chips are gone. A single "Leave race" button takes you out and back to the race menu.
  • Creating a race lobby is now one click. "Create lobby" makes the lobby straight away and drops you into it, instead of opening a setup panel first.
  • Next to it is a settings button (the sliders icon) that lets you change what the lobby races. New lobbies default to quotes of mixed length (short through long). In there you can switch between Quote, Words, and Timed races, choose which quote lengths to draw from, or pick a word list and length as before. Your choice is remembered for next time.
  • Tidied the top bar: the "Sign in" button is now the same height as the bell, settings, and profile controls beside it, so the row lines up instead of the Sign in pill sitting noticeably shorter.
  • Both Start buttons in a race lobby (the header action and the lobby card) now wait for everyone to ready up — neither lets the host start early.
  • Plainer copy in a couple of spots: the Drills page now reads "Drill your weak spots · Short, focused sets on the letter pairs and words you're slowest at", and the race-finished line just states your placement and time ("Won in 0:24. Race again to defend it.") instead of the wordier version.
  • Race lobbies now have a ready-up step. Each player presses Ready, the lobby shows who's set, and the host can only start once everyone's ready (bots are always ready). The host's Start button waits — "Waiting for everyone to ready up · 1/2" — until the whole lobby is good to go, so a race can't begin before you're set.
  • Multiplayer: signed-in racers now show their real handle instead of "Guest". (The race server wasn't being told who you were on the hosted setup.)
  • Multiplayer: you can no longer keep typing into the passage after a race has finished — input locks the instant the race ends, and the instant you personally cross the line.
  • Fixed the "new personal best" note so the "+N" improvement always matches the numbers shown — e.g. a 160 beating a previous 156 now reads +4, not +5.
  • Fixed the results graph tooltip listing "wpm" twice; it now shows wpm and raw once each.
  • Multiplayer race results now show one consistent set of numbers. Your headline net WPM, your row in the standings, and the live race all read the same server-measured values, so they no longer disagree (the "66 here, 64 there" bug). The "raw" column now shows a true raw WPM (every key pressed) instead of repeating the net figure, and the ranking no longer penalises accuracy twice.
  • The error count shown while you type now matches the one on the results screen. Both count individual mistyped characters — previously the live counter counted whole words while the results counted keystrokes, so the two disagreed.
  • Correcting a mistake with Backspace now clears its red mark, the same as Ctrl+Backspace already did. A fully-corrected run reads zero errors, matching its 100% accuracy.
  • The results "errors over time" strip is now labelled "mistakes over time", to set the timeline of every keypress slip apart from the final error total.
  • Fixed leaderboard rows on mobile dropping the @handle when a player had wide tags (e.g. WHITE HAT + OG). The name now sits on its own line above the tags on phones, so it's always visible.
  • Fixed quote mode getting stuck on "loading quote…" after a page reload. If quote was your last-used mode, the passage now loads straight away instead of hanging.
  • Replaying a timed test now shows only the words you actually typed, instead of the entire long buffer of upcoming words that scrolls ahead during the run.
  • The friends panel now lists everyone you follow — including people who are offline — each with their last-seen status, instead of hiding them until you searched. Live and online friends still sort to the top, all in one scrollable list.
  • Edit profile no longer wipes a name or username you'd started typing the moment you pick a rank or toggle a tag — your in-progress text now stays put.
  • Edit profile's Save button is no longer stuck disabled when you've only changed your rank or tags: those already save the instant you click them, and Save now reliably commits any name/username edit and closes the dialog.

Read the update: The race catches fire

v6.111.6 – v6.117.0
  • Adaptive practice now zeroes in on the hand motions you're actually slow at, rather than a handful of specific words — so the speed you build carries over to everything you type. Each passage also spreads across several of your weak motions instead of repeating the same word over and over, and a word you've just drilled won't keep resurfacing for a good while.
  • New "Isolation drill" cards on the Drills page: pick one of your weakest letter pairs and drill it across dozens of varied everyday words. Same motion, many words — the keybr-style way to make the speed actually transfer.
  • Nudged the friends bubble in the bottom-right corner so its gap above the footer now matches the on-screen keyboard's, lining the two up neatly.
  • Removed the side preview rail and gave every setting its own preview card again — a real, live render of that exact setting (built from the actual typing screen), so you see precisely how your choice looks, including the Colours section. Each card has a "Preview" toggle in its heading so you can fold the ones you've settled and keep the page as short as you like; your choices are remembered per section.
  • Brought back a real, live preview of your actual typing screen — now as one panel pinned beside the settings (a rail on the right on desktop, a strip at the top on mobile). It's built from the real practice screen — the passage, live stats, and keyboard — so the moment you change any look-and-feel option, it updates to show exactly how your typing screen will render.
  • With the live preview doing the heavy lifting, the little samples on each option are back to compact hints, so the settings list stays short and scannable instead of stretching down the page.
  • Made the per-option setting previews far more literal: instead of small abstract swatches, each option now shows a tiny real mockup of the result — Card surfaces render an actual card with text, Topbar/Footer/Mode bar show a mini app frame, Dividers show two text blocks with the rule between them, Auto-hide fades a real toolbar, Live stats show the "42 98%" ticker in its panel, and the typing toggles (stop on error, extras, strict space, blind) show the words exactly as you'd type them. You can now tell at a glance how each choice will look.
  • Fixed a crash ("Cannot read properties of undefined") that could fire on page load when the account menu initialised before the sign-in client was ready.
  • Every visual setting now shows a tiny live sample right on its option chips, so you can pick by sight instead of by guessing what a label means. Surface, Chrome, Live stats, Result, Keymap, Background, Multiplayer and the Behaviour toggles (stop on error, confidence, extras, strict space, blind mode, minimum word length, secondary characters, keypress click) all carry these samples now. Options where a picture can't honestly show the effect (animation speeds, sliders, font names) keep their clear text labels.
  • Redesigned the Customise pages so each setting reads as its own distinct surface. The control rows now sit on a slightly recessed shade against the page and sidebar, so options like Theme and Mode stand out instead of blending into one flat sheet.
  • Removed the large live-preview block that sat above every settings section. The controls are the focus now, and you see every change land for real on the typing screen.
  • Fixed the live WPM counter briefly showing a wild number (like 6000) in the first second of a test. It now settles into a sensible reading from the very start.
  • Fixed timed tests (60s, 120s) running out of visible words for fast typists. Previously, once you reached a certain point the passage looked empty and the next words only appeared as you typed; now there's always a deep run of upcoming words ahead of your cursor.
  • The OG tag is now closed to flinttype's first 20 members. Everyone who already has it keeps it; new sign-ups no longer receive it.

v6.104.2 – v6.111.5
  • Burst mode is now strict: the instant you mistype a letter, the word resets so you re-attempt it from scratch (it no longer waits until you press space). And pressing Tab now resets the current word to retry it, instead of starting a whole new set of words. (Esc still starts a fresh set.)
  • Corrected the sidebar/content surface colour: the settings and leaderboard sidebars and their content area now use the same card surface that sits behind the top nav and the theme/mode switcher, so everything reads as one consistent surface (the previous attempt matched them to the page background instead).
  • The settings and leaderboard sidebars and their content area now share the same background as the rest of the page, in both light and dark mode, instead of the content area being a slightly lighter shade on light themes.
  • The ERR live stat now matches the size of WPM / ACC / BURST instead of always rendering larger (it stood out when the other stats were set to the smaller "mini" style).
  • Tape mode scrolling is now a smooth, steady glide instead of a fast, juddery snap. The text slides under the caret at a constant speed (and the caret tracks it in lockstep), so fast typing reads as continuous motion rather than a series of instant jumps.
  • Made hover highlights consistent across the app and fixed weak ones in light mode. Several surfaces (race lobby, profile, leaderboard rows, sidebars) used a washed-out, half-strength tint that was nearly invisible on a light background; they now all use the same theme-aware highlight that darkens on light themes and lifts on dark ones.
  • Fixed the theme system so "Default" is a real default again. The orange accent used to be force-applied as a hidden custom override, which meant a fresh setup always read as "Custom", the Primary accent colour always showed a "Reset" that never actually did anything, and you could never get back to a clean default. Now the orange is the genuine Default theme: the picker reads "Default", the Primary accent has no stray Reset until you actually change it, and resetting a colour (or the whole theme) truly returns it to default.
  • Switching between themes and back to Default now reliably changes and restores colours.
  • Existing setups are migrated automatically off the old state — your look is unchanged.
  • Race results are now live while the race is still on. When you cross the line before your opponents, your panel shows a provisional standing ("you're 2nd of 3 on net WPM, 1 racer still typing") and the rankings re-settle as each racer finishes, instead of prematurely declaring a win.
  • Fixed: finishing first no longer shows "Race won" when your run wasn't accurate. Placement is by net WPM (speed adjusted for accuracy), so a fast-but-inaccurate run lands where it actually ranks. A run with 0 accuracy is 0 net WPM and won't win.
  • The Rematch button now appears only once the whole race has finished (it did nothing earlier).
  • On the practice screen, the live stats (WPM, accuracy, word, elapsed) now sit directly above the typing text and stay grouped with it in the centre of the screen, instead of being pinned to the top with a gap below them.
  • You can now press Escape to open the command palette (the Cmd/Ctrl+K search panel), as well as Cmd/Ctrl+K. Escape only opens it when it wouldn't otherwise close something — so it still closes open menus, dialogs, the friends panel, and focus mode first, and never interrupts typing.
  • Reworded the race screens around one idea: lobbies. Racing strangers drops you into a public lobby (the "Find race" button is unchanged); "Create lobby" / "Invite to a race" opens a private lobby you share with a friend. The old "challenge" wording is gone.
  • Removed the old offline "duels" feature. Racing a friend is now always a live lobby: open a friend's profile (or their menu) and "Invite to a race" creates a private lobby and sends them a Join notification — you both race in real time. The standalone Duels page and the older "beat my recorded run" challenges are gone.
  • Pending race invites from friends now show up in the friends dock with a Join button, alongside who's online and who's broadcasting.
  • Racing a friend now opens a live lobby instead of an offline challenge. The "Race" button on a friend's profile (and "Invite to a race" in their menu) creates a private lobby, drops you in to wait, and sends them an in-app notification with a Join button. (First step of moving everything to lobbies; more to follow.)
  • Fixed: spamming keys the instant you enter a race (during matchmaking, the lobby, or the countdown) no longer registers anything or shows phantom progress on your lane. Input is now locked through every pre-race phase — including the brief moment while connecting — and only the race itself accepts typing. (The server already discarded any pre-race input, so this never affected other racers; it was your own screen showing local keystrokes early.)
  • Fixed: in tape mode, restarting (or starting a fresh run) now spawns the text already centred under the caret, instead of briefly appearing at the left and sliding into place.
  • The typing text now sits in the centre of the screen by default, vertically as well as horizontally, instead of hugging the top with empty space below it.
  • The on-screen keyboard is a bit smaller by default so it doesn't dominate the page (scale it back up under Customise → Keyboard if you prefer it large).
  • Tape mode now opens with the first word in the centre of the screen and scrolls beneath the caret from there, rather than starting at the left edge.
  • Added a Tape fade option (Customise → Appearance → Tape). Soft or Strong fades the tape line toward its ends — already-typed words dissolve as they recede behind the caret, and the far-upcoming edge softens too, keeping your eye on the words around the cursor. Off keeps the line hard-edged.
  • Fixed (for real this time): typing during a race countdown no longer registers. The previous fix didn't hold; keystrokes are now blocked at the point they would become input, verified in a live race — the bar stays at 0% through the whole 3-2-1 and only moves once the race starts.
  • Tape mode is now complete. The passage collapses to a single line that scrolls under a fixed caret from the very first keystroke (it used to sit still at the start until you had typed past the middle). Choose how it tracks you — Letter (scrolls every keypress) or Word (scrolls per word) — and set where the caret sits with the Tape margin slider; it now opens left-of-centre so there's a long runway of upcoming text.
  • Smooth scroll now works in every mode, including the letter tape and the normal stacked passage — the text glides instead of jumping.
  • Fixed: raw speed now counts how fast you press keys, regardless of accuracy. A fast but very inaccurate run used to show a raw speed of 0 on the race results; it now reflects every keystroke you made.
  • Fixed: the personal-best crown only appears when you genuinely beat your best for that mode and length. Signed-in results now use your real history, so the crown no longer pops up on ordinary runs (for example the first run of a fresh session).
  • Fixed: in a multiplayer race you can no longer type during the 3-2-1 countdown. Keystrokes are now ignored until the race actually starts, so nobody gets a phantom head start.

v6.101.9 – v6.104.1
  • Added a new "White Hat" identity tag — a cool slate-blue chip that sits beside a person's name (next to OG and Owner) to mark someone who has found and reported three or more major bugs. It's awarded by hand; in local development the owner sees it on their own profile so the look can be checked.
  • Fixed: joining a challenge lobby no longer leaves a duplicate "ghost" copy of the first joiner sitting in the room. Joining now claims exactly one spot, so when that person leaves they fully disappear for everyone.
  • Fixed: leaving a race lobby now removes you from it for everyone else. Previously, navigating away (browser back, a link) could leave a ghost copy of you sitting in the lobby until it timed out.
  • When a race finishes, the results screen now takes over the whole area instead of sitting below the finished passage — the typing view is replaced by your standings, stats, and the rematch button.
  • Simplified the race modes: the picker now offers just 1V1 and Free-for-all. The 1V1V1V1, Sprint, and Endurance modes have been retired.
  • Added a standalone cover page at /landing: a single editorial screen with the flinttype name, a sample of the typing test, and a quick rundown of what the app does. It's a shareable preview image, not part of the normal navigation.
  • Race lobbies you host now stay open as long as you're on the page — even if nobody joins for a long time. Previously a quiet lobby could be closed out from under you while you waited for a friend; now it only shuts down once you actually leave (or your tab closes).
  • When you rematch, anyone who left mid-race is cleared out cleanly, so their empty spot is freed up for a new player to join the next round.
  • Fixed: joining a race lobby that's already full or under way no longer crashes the page — you drop in as a spectator and watch the race live instead.
  • Fixed: signed-in players can no longer end up racing themselves. Opening your own race link again just reconnects you to your existing spot instead of adding a duplicate of you.
  • Fixed: your appearance settings (theme, primary colour, and other customisations) no longer revert to the default on their own. A change you make on this device is now kept even when it hadn't finished saving to the server yet, instead of being overwritten by an older saved copy the next time the page loads.
  • The friends dock is now a fixed size, so opening the Member directory no longer makes the panel jump to a different size. Switching between Friends and the directory now slides cleanly (forward into the directory, back to Friends) instead of snapping.
  • Friends dock tidy-up: the panel is titled "Friends" now, and the member directory has a clear back arrow so you can always get back. The directory also lists everyone in your network — the people you follow and your followers — not just the people you follow. Hovering a row is now a calm neutral highlight instead of turning the name coral.

v6.93.0 – v6.101.8
  • Clicking the "Member directory" bar in the friends dock now opens it as a full view: the bar becomes the panel's header and the complete list of everyone you follow fills the area, with its own search. Close it (the X, or back on mobile) to return to your active members.
  • Tidied some UI inconsistencies: the selected tab in the top navigation and the leaderboard's Global / Friends toggle now share one consistent rounded-corner radius, the highlighted "you" row on the leaderboard no longer spills past its rounded corner, and the small dots that floated between the leaderboard filter labels are gone.
  • The friends dock opens with a quiet fade now (the springy slide-in is gone). And the "Member directory" bar at the bottom actually does something: click it to expand the full list of everyone you follow right there in the panel, and click again to collapse it.
  • Opening the friends dock now animates: the panel springs up from the corner and your members sweep in one after another, instead of appearing all at once. (Respects "reduce motion" — it just fades in.)
  • The friends dock now positions itself correctly when you've hidden the footer (or on screens that don't show one): it drops to the bottom corner instead of floating in empty space above where the footer used to be.
  • The friends dock has a cleaner look: open it to a tidy "Active members" panel with a search box, your live and online friends listed with their status, a quick Watch or Accept button where it makes sense, and a member-directory row at the bottom. The dock now floats just above the page footer instead of overlapping it.
  • When you create a race lobby you can now pick from the full wordlist catalogue — the same searchable list of 440+ wordlists you use in practice (every language, code, and themed list), not just English. Everyone in the lobby races words from the list you chose.
  • Friends now live in a small dock in the bottom-right corner instead of a separate page. Open it from anywhere to see who's typing live, the challenges waiting for you, and everyone you follow, then jump straight to watching a friend or taking a challenge.
  • The dock keeps out of your way: it tucks into the corner while you type and hides entirely on the race, live-watch, and duel screens.
  • Challenges you've already taken on no longer clutter the list: only challenges still waiting to be played show in the dock, and finished ones live on your Duels page.
  • Duels now update on their own: when your opponent finishes the challenge, the result appears without you having to refresh the page.
  • The duel typing area now matches your normal practice screen — same passage colours (including your chosen Appearance settings) and type styling.
  • Fixed: opening an old or expired race-challenge link — or returning to one whose lobby has already closed — no longer leaves you stuck on a blank screen. It now sends you back to the race menu.
  • New Free-for-all race: share one lobby and up to 8 people race the same passage at once — real players only, no bots.
  • When you create a race lobby you can now set it up: pick the word list (English or common words), and choose either a word-count race (10 / 25 / 50 / 100 words) or a timed race (15 / 30 / 60 seconds).
  • Races are fairer: your speed is now measured from the moment the race starts, not from your first keystroke, and the winner is whoever has the highest real typing speed — not just whoever crosses the line first.
  • Challenge lobbies are now real players only — no bots are added when you start a challenge you've shared.
  • Fixed: you can now scroll the race results screen on smaller windows — the placement, stats, and leaderboard no longer get cut off at the bottom.
  • Live spectating is lighter on the server: a friend who finishes a test and leaves the results screen open no longer stays in everyone's "Live now" forever — they drop out shortly after finishing unless someone's actually watching. Changes to your handle or shown tags now appear to friends right away. No change to what you see while actually watching a live run.
  • The feature previews on the update card are clearer now: real handles, speeds, a live passage, and an Accept button instead of placeholder bars.
  • The update card is now wide and condensed (landscape) so it looks good pasted into Discord: a headline and a single row of feature previews, less text, more visual.
  • The Friends page now uses the full page width like the rest of the app, with your people list on the left and what's-happening (challenges, who's online) on the right.
  • "Live now" is bigger and more exciting: each live friend is a card showing their live speed and progress, with a clear "Watch live" button that opens their screen.
  • Your profile's Tests stat now shows how many you've started underneath the number you've completed (when they differ).
  • Update pages now show a little preview of each feature (the friends hub, challenges, live spectating, your profile) instead of plain icons.
  • On profiles, the activity heatmap now shows your last 6 months, so the squares stay a comfortable size beside the skill chart.
  • Redesigned the profile's main card: a bigger experience bar now anchors the bottom of the card (no more empty gap under it), and your activity heatmap and skill chart share one tidy split card below.
  • Update pages are now a clean, light, icon-led card you can screenshot to announce a release, instead of a technical list. Find them via "Read the update" in the changelog.
  • The version number now stays beside its notes as you scroll the changelog.
  • Your skill chart now sits compactly inside your main profile card, beside your stats, instead of taking up a whole separate section.
  • Fixed: the "Read the update" link in the changelog now shows on phones, not just desktop.
  • Big releases now get their own shareable update page: a single branded card showing what's new, linked from the changelog. The first one covers the whole Friends + Profile overhaul (find the "Read the update" link beside those versions in the changelog).
  • Your profile's skill chart now compares your shape against the average typist (a dashed baseline behind your own), so it reads as a real comparison instead of looking arbitrary.
  • Friends: the Friends / Following / Followers switch now sits on the same row as the search box, and an incoming challenge's button reads "Accept".
  • Profile: the skill chart is now a cleaner standalone graphic (Speed, Accuracy, Consistency, Endurance; Experience removed). Speed is scaled to 300 wpm and Endurance is your best run of 30 seconds or longer (up to 250 wpm). Fixed the chart labels overflowing and a stray box appearing when you clicked it. The experience bar in the header is bigger and now shows your total XP and how far you are from the next level, and the "Load more" runs button matches the rest of the buttons.
  • Redesigned the profile page to be something you'll want to share, even with people who don't use flinttype. A new skill chart shows your typing at a glance across Speed, Accuracy, Consistency, Endurance, and Experience, and you can pick a flame rank (Ember through Solar Flare) to wear beside your name. The header is cleaner, with your headline stats given full width to breathe, and the sparse "head to head" box is gone.
  • Tidied the Friends page. The Friends / Following / Followers switch now matches the app's main navigation, so switches look consistent everywhere. The cluttered "Recent activity" section is gone; your friends' personal bests, new follows, and duel updates all still appear in the notifications bell. Removed the small arrow and eye icons for a cleaner, calmer look.
  • Challenges now live right on the Friends page instead of behind a link to another page. When a friend dares you to beat one of their runs, it shows up inline with their name and target speed, and you can jump straight into the race. The section stays hidden when there's nothing waiting.
  • The Friends page is redesigned to be calmer and more focused: a single, tidy column with a clear "Challenges" shortcut at the top, a nicer "Live now" preview, and "Live now" / "Online" sections that only show up when friends are actually there.
  • Your people list now leads with your friends; Following and Followers sit quietly beside it instead of as chunky tabs.
  • Managing someone (unfollow, block, or challenge to a duel) now lives in a ⋯ menu on their row and asks you to confirm before unfollowing or blocking, so nothing changes by an accidental click. The button no longer flips to "Unfollow" when you hover it.
  • Recent activity is tucked into a tidy, expandable section with its own scroll, so the page stays uncluttered.
  • You can now see what your friends are up to. On the Friends page, each person shows whether they're online, practising, or in a race right now, and when they were last active ("Active 5m ago") if they're offline. The Online strip marks who's typing or racing at a glance.

Read the update: Friends & Profile

v6.77.3 – v6.92.1
  • Watching a friend now plays back smoothly, character by character, instead of jumping every second. The caret glides through their text as they type, with about a one-and-a-half-second delay to keep it fluid, and when they finish you watch the run complete before their results appear.
  • Fixed: when a friend you're watching finishes their run, you now see their results screen, instead of it dropping to "not live". Broadcasting now keeps going on the results screen too.
  • Fixed: watching a friend live again shows their full 1:1 screen. A recent efficiency change had briefly stripped the stream down to a basic mirror when they weren't being watched yet; the full screen is always sent now, and the streaming-only-when-needed efficiency stays.
  • More live-spectating efficiency: watching a friend who isn't live now polls slowly in the background instead of every second, and both watching and broadcasting pause completely while the tab is hidden.
  • Live spectating is much lighter now: your practice screen only streams while a friend is actually watching, or while you're actively typing, instead of constantly in the background. No change to what watchers see.
  • Cleaned up the live-watch screen: a slim header with a clear "Spectating" indicator, and the friend's screen now fills the whole view edge to edge instead of sitting in a small framed box.
  • Watching a friend is now fullscreen and immersive, with a slim header and a button to go truly fullscreen. And whenever someone is watching you, your practice screen shows a clear "ada is spectating" badge so you always know you're being watched.
  • Watching a friend now mirrors their whole practice screen: the mode they're on, the live passage as they type, and their full results page when they finish, themed exactly as they see it. It plays back with a smooth one-second buffer so it doesn't stutter.
  • Watching a friend practise now shows a faithful clone of their actual screen, with their theme, font, caret, and colours, and the same live passage and readouts they're looking at, instead of a stripped-down view.
  • The Friends page is now a social feed. A timeline shows what your friends are up to, who's typing live, their personal bests, duels, and new friendships, with your friends, following, and followers list right beside it. On desktop the list sits inline next to the feed instead of behind a pop-up panel.
  • Live spectating is now on by default, so mutual friends can watch you practise without you flipping a switch. While you type, your screen now shows who's currently watching ("ada is spectating", "3 people are spectating") instead of a static badge. You can still turn it off entirely, or keep specific friends out, in Customise → Behaviour → Live spectating.
  • Live spectating no longer cuts out partway through long timed runs, and the friends directory is now fully keyboard-accessible.
  • Watching a friend type live now shows their avatar and a clearer live readout, with their words, speed, and accuracy front and centre.
  • The Friends page is rebuilt around who's around right now. A "Live now" section shows friends typing live so you can jump straight in and watch them, an "Online" row shows who else is around, and your full friends, following, and followers lists live in a directory that slides up when you want it. Everyone shows their avatar now, and you can search the directory by handle.
  • You can now let friends watch you practise from wherever you type, not a separate page. Turn on Live spectating in Customise → Behaviour, and any practice run or drill becomes watchable by your mutual friends in real time. A small "Friends can watch" badge shows on screen while it's on, and it's off by default.
  • You can now watch friends type live. Turn on sharing on the new Practise live page, and any mutual friend can watch your words appear in real time from your profile or the Friends page. It's off by default and only mutual friends can ever watch.
  • Your Friends page now shows a green dot next to friends who are online right now.
  • Duels are here. Challenge a friend from their profile to beat one of your runs: you type a passage to set the pace, and they race a ghost of your speed to try to top it. See your challenges, sent and received, on the new Duels page, and get a notification when someone takes you on or beats your run.
  • When someone you follow sets a personal best, you'll now get a notification about it, so your bell doubles as a feed of your friends' wins.
  • Visiting someone else's profile now shows a head-to-head card comparing your best WPM, accuracy, and test count against theirs.
  • The leaderboard has a new Global / Friends toggle, so you can rank yourself against just the people you follow instead of the whole world.
  • Friends are here. Follow anyone from their profile, and a new Friends page lists who you follow, who follows you, and who you're mutual friends with. When you follow each other you become friends. You'll get a notification when someone follows you, your profile now shows follower and friend counts, and you can block people you'd rather not hear from.
  • More groundwork for the friends system — following, friends, and blocking now work behind the scenes (no visible UI yet).
  • The changelog page has a cleaner timeline layout, with each version's number and date pinned beside its changes as you scroll.
  • After an update, a "What's new" popup now shows you exactly what changed since your last visit.
  • The changelog page now shows the full, up-to-date release history, kept in sync with this file.
  • Pressing "f" while typing no longer switches on focus mode — it just types the letter, during practice, drills, and races.

v6.72.0 – v6.77.2
  • Dark-mode menus and dropdowns no longer flash a bright orange block on hover; highlights are quiet again by default.
  • Hover highlights on menus and pickers are now a soft neutral tint instead of bright coral, so the brand colour only marks genuinely active items.
  • New visitors start with a more refined default setup — a calmer typing area, tuned caret and live stats, and a shorter 25-word default test.
  • The Editorial / Minimal / Stripped preset buttons on the customise page now highlight the one you're using and clear the moment you change a single setting.
  • Drills cards are now all the same size with a cleaner hover lift, and the last row no longer shows odd gray gaps.
  • The drills page gained filter chips — All, Tailored, Generic, Sudden death, Burst, Available now — each with a live count, replacing the old two-section split.
  • The sign-in and sign-up screens now use one consistent button style for method choices and small links like "Forgot password?" and "Resend code".
  • Sign-in and sign-up moved to a single centered card that gently fades in on load.
  • Polished the sign-in screen so its dark brand side and form side feel balanced — bigger brand text, a brighter glow, and a wider form.
  • Cleaned up the sign-in screen's dark panel with a smaller, better-placed glow and no duplicate logo.
  • Sign-in and sign-up were redesigned into a full-screen two-panel layout: a dark branded side and a form side that follows your theme (stacked on mobile).
  • You can now reset a forgotten password straight from the sign-in form — get a code by email, enter it, and set a new one.
  • Signing in with an email code now uses six clean single-digit boxes that submit automatically once filled.
  • You can now sign in without a password — using a one-time code emailed to you, or a magic link you click from your inbox.

v6.7.0 – v6.8.0
  • Leaderboard rebuilt with a sidebar filter rail, full-width table, and a simpler ranked layout.
  • New /blog, /changelog, and /faq pages launched alongside /privacy and /terms.
  • Sitemap and crawler index updated to cover every public page.
  • New /privacy and /terms pages with a shared editorial layout.

v6.6.0
  • The global leaderboard now ranks real net-WPM with mode and time-window filters.
  • New /about page and richer homepage metadata for search.
  • Top bar redesigned — calmer nav, a consolidated lineup panel, and a race podium.

v6.5.0
  • Multiplayer race surface — friendly challenge links, real-time progress, and bot fillers.
  • Race runs now roll into your history and your weakness profile.
  • Race rooms stay alive across reconnects.

v6.0.0
  • Full /customise surface — palette, mode, geometry, caret, typography, keyboard, background, live stats, typing area, result, and keymap.
  • Mobile-first pass across every surface, with bottom-sheet pickers in settings.
  • Insights and drills pages with per-bigram weakness ranking, a WPM trend, and targeted drills.
Want every version, including internal ones? The full log is at /CHANGELOG.md.