<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>GuerillaType</title>
  <subtitle>A free, open-source typing tutor for everyone — beginners learning home row, pros chasing 100 wpm, writers warming up. Lessons, drills, challenges, adaptive practice, custom text. No accounts.</subtitle>
  <link href="https://guerillatype.com/feed.xml" rel="self" />
  <link href="https://guerillatype.com/" /><updated>2026-05-08T00:00:00Z</updated>
  <id>https://guerillatype.com/</id>
  <author>
    <name>Pikes Peak Web Designs</name>
    <email>hello@guerillatype.com</email>
  </author>
  
  <entry>
    <title>No em-dashes</title>
    <link href="https://guerillatype.com/blog/why-no-emdash/" />
    <updated>2026-05-08T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/why-no-emdash/</id>
    <summary>Why the corpus replaces — with -- everywhere, plus the related rules for smart quotes and ellipses.</summary>
    <content type="html"><![CDATA[<p>The em-dash is not on the keyboard.</p>
<p>This is a small fact, easily forgotten by anyone who relies on word processors that insert one whenever you type two hyphens. On macOS the em-dash is <code>Option+Shift+-</code>. On Windows it requires either an Alt code or a third-party utility. Most writers simply paste it.</p>
<p>For a typing tutor the situation is different. The user has to produce every character on screen with their fingers. If a target line contains a glyph the keyboard cannot make, the user is stuck. They either give up or learn a key combination they will not transfer to any other context.</p>
<p>So the corpus uses two hyphens.</p>
<h2>Two, not one</h2>
<p>A single hyphen is also typeable, so why two? Two reasons.</p>
<p>A single hyphen already has a job. <code>Self-aware</code> is a hyphenated compound; it is not an interrupted clause. Collapsing every em-dash to a single hyphen would make compound words and clause breaks look identical, and it would make some sentences read as typos.</p>
<p>Double-hyphen is the older convention. Before word processors gained the em-dash glyph, English typing used <code>--</code> for exactly this purpose. It is what the typewriter did. It is not a workaround for a missing key. It is the original key for that mark.</p>
<h2>The same rule for quotes and ellipses</h2>
<p>Smart quotes (<code>&quot;</code>, <code>'</code>) become straight ASCII (<code>&quot;</code>, <code>'</code>). The horizontal ellipsis (<code>…</code>) becomes three periods. The book ingest script applies this normalization automatically when a Project Gutenberg text is added.</p>
<p>The cost is a small one. The corpus reads less polished than it would with proper typography. The benefit is that everything in it can be typed without thinking. For a typing tutor the second is worth more than the first.</p>
<p>If you are sending a suggestion through the <a href="/contribute/">contribute forms</a>, the same rule applies. Use what your fingers can produce.</p>
]]></content>
  </entry>
  
  <entry>
    <title>The contribute hub</title>
    <link href="https://guerillatype.com/blog/contribute-system/" />
    <updated>2026-05-08T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/contribute-system/</id>
    <summary>What the eight contribute forms do, where the data goes, and how a suggestion becomes a published quote.</summary>
    <content type="html"><![CDATA[<p>There is now a contribute hub at <a href="/contribute/">/contribute/</a>. It holds eight forms.</p>
<p>Six of them suggest content for the library: a quote, a book, a parable, an idiom, a poem, or a drill. Two are for feedback: a testimonial and a thank-you note.</p>
<p>Each form posts directly to <a href="https://web3forms.com">Web3Forms</a>. The submission lands in the project inbox. There is no account, no captcha, and no backend. The honeypot field handles spam.</p>
<p>Three small things make the forms easier to fill out.</p>
<p>The first is URL prefill. Every corpus list page (quotes, idioms, parables, poetry, library, drills) has a &quot;Suggest a...&quot; link at the bottom. Clicking it carries <code>?from=&lt;page&gt;</code> into the form so the confirmation page can point back to where you started.</p>
<p>The second is draft autosave. The form remembers what you have typed. If you close the tab or refresh, it is still there when you return. The draft clears on submit.</p>
<p>The third is the confirmation page. Every form redirects to <code>/thank-you/?for=&lt;kind&gt;</code>, and that single page reads the kind from the URL and tailors its message. A quote suggestion gets one response, a testimonial gets another. There is only one thank-you page to maintain.</p>
<h2>Why approval is required for testimonials and thanks notes</h2>
<p>Reviews and thanks notes do not auto-publish. They arrive in the inbox. I read them. The ones the author opted in to publish are added to a small data file (<code>_data/reviews.js</code> or <code>_data/thanks_notes.js</code>) and rebuilt onto the site. This costs me a few minutes per submission and removes the risk of spam appearing on the wall. For a project of this size, it is the right tradeoff.</p>
<h2>What you can do today</h2>
<p>If you have been using the site and want to give back, the most useful thing you can do is leave a <a href="/contribute/testimonial/">testimonial</a>. Reviews are how a free, no-account project earns trust with people who have not heard of it yet.</p>
<p>If you have a public-domain quote or book in mind, <a href="/contribute/">send it</a>. I will verify the source and add it to the next content batch.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Completion tracking</title>
    <link href="https://guerillatype.com/blog/completion-tracking/" />
    <updated>2026-05-08T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/completion-tracking/</id>
    <summary>How the site decides a quote, idiom, parable, poem, or book paragraph counts as finished, and how to undo it.</summary>
    <content type="html"><![CDATA[<p>Until this week, completion was loose. Open a book page, type two characters, hit Esc, and the page would show as finished. The same was true for quotes, idioms, parables, and poems.</p>
<p>Completion now depends on two conditions. The cursor must reach the end of the target, and the accuracy must be at least eighty percent. If either is false, the item stays unfinished.</p>
<p>The engine reports two numbers at the end of a session: how far the cursor traveled and how long the target was. The completion code compares the two. For a book page that contains several paragraphs, each paragraph carries a cumulative end offset, and only the paragraphs the cursor passed are marked finished. Type the first two paragraphs of a page, escape, and the rest of the page stays open.</p>
<h2>How to undo</h2>
<p>Once you can see what is finished, you may want to undo. Books have a &quot;Reset progress&quot; button on each book detail page; it clears the typing record for that title only. The corpus pages — quotes, idioms, parables, poetry — show a small &quot;Reset&quot; button next to any row marked complete. A summary at the top of the list shows the total and offers a &quot;Reset all&quot; link when there is more than one.</p>
<p>Every prompt that asks &quot;are you sure&quot; now uses the styled dialog instead of the browser's built-in <code>confirm()</code>. The cancel button is focused by default, so a stray Enter does not trigger a destructive action.</p>
<h2>What it changes</h2>
<p>Two things, both small. First, the corpus pages now reflect what you have actually typed. &quot;Forty-seven of three hundred and twelve idioms&quot; means forty-seven items typed all the way through. Second, reset is a real option, which means starting over no longer carries a cost.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Type without an internet connection</title>
    <link href="https://guerillatype.com/blog/offline-and-pwa/" />
    <updated>2026-04-20T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/offline-and-pwa/</id>
    <summary>How the offline mode works, and what you give up when you use it.</summary>
    <content type="html"><![CDATA[<p>The site works offline. Once you have visited it on a connected browser, the practice surface, the word lists, and your local profile are cached. You can practice on a plane, on a train, in a basement. The features that need the network simply degrade gracefully.</p>
<h2>What is cached</h2>
<p>The first time you visit, a service worker stores:</p>
<ul>
<li>The HTML for every main page</li>
<li>The single CSS file</li>
<li>The JavaScript bundle</li>
<li>The 1k, 5k, 10k, and 20k English word lists</li>
<li>The code, punctuation, numbers, and themed word lists</li>
<li>The font files for the typing surface</li>
<li>The favicon and the icon set</li>
</ul>
<p>Total cache size is roughly 6 MB. The browser holds it indefinitely.</p>
<h2>What is not cached</h2>
<p>Two things require the network:</p>
<ul>
<li><strong>The library.</strong> Each book is fetched on demand. If you have opened a book online, that book stays cached until the browser evicts it. If you have not, it will not load offline.</li>
<li><strong>The 50k word list.</strong> It is 480 KB; we do not pre-cache anything that large.</li>
</ul>
<p>If you want a specific book offline, open it once while online. The same applies to the 50k list -- visit the <a href="/practice/?lang=en-50k">practice surface</a> once with a connection and it will be there next time.</p>
<h2>How to install as a PWA</h2>
<p>The site is a Progressive Web App. You can install it like a native app on most platforms.</p>
<p><strong>Chrome / Edge desktop:</strong> click the install icon in the address bar.</p>
<p><strong>Safari iOS:</strong> Share menu → Add to Home Screen.</p>
<p><strong>Chrome Android:</strong> the menu offers &quot;Add to Home Screen&quot; or &quot;Install app&quot; depending on version.</p>
<p><strong>Firefox:</strong> does not support PWA installation natively, but the offline cache still works.</p>
<p>After installation, the site opens in its own window without browser chrome. It launches faster because the cache is loaded before the network check.</p>
<h2>What changes after install</h2>
<p>Almost nothing. The site behaves the same. Two small differences:</p>
<ul>
<li>Theme color matches your installed-app icon, so the title bar looks consistent.</li>
<li>Browser-level shortcuts (Cmd-T, Cmd-W) are not intercepted by the browser, since there is no browser chrome. Native window-management shortcuts apply instead.</li>
</ul>
<h2>When offline matters</h2>
<p>For most typists, never. Internet is always there. The offline support is for:</p>
<ul>
<li>Travel, especially long flights.</li>
<li>Slow hotel wifi where the site would load slowly otherwise.</li>
<li>Power users who like to know their tools work without a network connection.</li>
<li>Privacy-minded users who want to be sure no data is being uploaded -- the offline mode confirms it because there is nothing to upload to.</li>
</ul>
<h2>Updating</h2>
<p>When you reconnect, the service worker checks for updates in the background. If a new version is available, it caches it without interrupting you. The next page load picks up the new version.</p>
<p>If something looks wrong after an update, hard-refresh: Cmd-Shift-R on Mac, Ctrl-Shift-R on Windows / Linux. This forces a fresh fetch of everything.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Picking a word list</title>
    <link href="https://guerillatype.com/blog/word-lists-explained/" />
    <updated>2026-04-19T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/word-lists-explained/</id>
    <summary>Which word list to practice on, and what each is for.</summary>
    <content type="html"><![CDATA[<p>The <a href="/wordlists/">/wordlists/</a> page lists every pool the practice surface can pull from. There are more than twenty. Most users stick with English-1k. They should not.</p>
<h2>English by frequency</h2>
<p>The numbered English lists are ranked by how often the words appear in a trillion-word web corpus.</p>
<p><strong>English-1k</strong> -- the 1,000 most common words. Roughly the words a six-year-old uses. Easy. Fast. Good for warm-ups and benchmarks.</p>
<p><strong>English-5k</strong> -- 5,000 words. Adds journalism-level vocabulary: <code>infrastructure</code>, <code>municipality</code>, <code>coalition</code>. Most adult writing falls in this range.</p>
<p><strong>English-10k</strong> -- 10,000 words. Newspaper level. Adds names of countries, common scientific terms, and the kind of word a careful reader knows but does not use daily.</p>
<p><strong>English-20k</strong> -- 20,000 words. Magazine level. Now you are typing words like <code>palatable</code>, <code>acrimonious</code>, <code>incommunicado</code>. If you are a fast typist who finds 1k boring, this is the next step.</p>
<p><strong>English-50k</strong> -- 50,000 words. Encyclopedic. Includes regional terms, technical jargon, archaic forms. A long session here will surface words you may not have seen before. The challenge is not your fingers; it is your spelling.</p>
<p><strong>English advanced vocabulary</strong> -- a curated list, not frequency-ranked. SAT/GRE-level words: <code>abnegation</code>, <code>perspicacious</code>, <code>sycophant</code>, <code>zephyr</code>. Stretches your fingers and your vocabulary at the same time.</p>
<p>The progression is real. If you have only ever typed 1k, switching to 10k will drop your wpm by 5-10. That gap is your finger-vs-spelling bottleneck. Practice closes it within a few weeks.</p>
<h2>Code lists</h2>
<p><strong>Code: JavaScript, Python, HTML, CSS, TypeScript, Rust, SQL, Bash</strong> -- each pulls real syntax tokens from that language. Symbols, brackets, and indentation are baked in.</p>
<p>If you write code, run code lists. The wpm number on a code list is not comparable to a prose wpm number; they are different skills with different ceilings.</p>
<h2>Themed lists</h2>
<p><strong>Pangrams</strong> -- sentences that include every letter at least once (&quot;the quick brown fox...&quot;). Useful as a warm-up; one pangram exercises every key.</p>
<p><strong>Misspellings</strong> -- the words people most often spell wrong. <code>accommodate</code>, <code>definitely</code>, <code>embarrass</code>, <code>liaison</code>. Useful if you find yourself slowing down on certain words because you are not sure of the spelling.</p>
<p><strong>Latin phrases</strong> -- common Latin phrases used in English: <code>ad hoc</code>, <code>bona fide</code>, <code>et cetera</code>, <code>prima facie</code>. Niche, but enjoyable.</p>
<p><strong>Countries</strong> and <strong>Capitals</strong> -- exactly what they sound like. Practice typing Liechtenstein and Ouagadougou without panicking.</p>
<h2>Drill-style lists</h2>
<p><strong>Punctuation</strong> -- pulls only words that are punctuation marks or contain them heavily.</p>
<p><strong>Numbers</strong> -- digit-only sequences in various shapes.</p>
<p><strong>Scrabble</strong> -- short, high-value Scrabble words. The list contains many words with rare letters (<code>q</code>, <code>x</code>, <code>z</code>, <code>j</code>).</p>
<h2>Auto-generated lists</h2>
<p><strong>Missed words</strong> -- the words you have mistyped most often, weighted by recency. This list updates after every session. The <a href="/stats/">stats page</a> has a Practice these button that loads it.</p>
<p>This is the most personalized list on the site. Five minutes here a few times a week is the fastest way to lower your error rate.</p>
<h2>Picking one</h2>
<p>For most sessions: <strong>English-1k</strong> to warm up, then <strong>English-10k</strong> for the bulk of practice.</p>
<p>If you write code: alternate prose and code lists.</p>
<p>If your accuracy is below 96%: spend a week on <strong>Missed words</strong>.</p>
<p>If your speed has plateaued on 10k: try <strong>20k</strong> for two weeks.</p>
<p>If you want flavor: rotate the themed lists weekly.</p>
<p>The wordlist toggle is in <a href="/settings/">Settings</a> and on the practice toolbar. Switching takes one click.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Back up your profile</title>
    <link href="https://guerillatype.com/blog/backup-your-profile/" />
    <updated>2026-04-18T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/backup-your-profile/</id>
    <summary>Your data lives in your browser. Export it now and again.</summary>
    <content type="html"><![CDATA[<p>Every session you run is stored on your computer. Not on a server. Not in a cloud. Just in your browser's local storage. If you clear your browser data, the profile goes with it.</p>
<p>The site has an export button. Use it.</p>
<h2>Where the profile lives</h2>
<p>Your sessions, achievements, lesson bests, missed words, settings -- everything -- sits in <code>localStorage</code> under the key <code>tt:profiles</code>. It is one JSON blob. The site reads and writes it; nothing else does.</p>
<p>This is good for privacy. It is bad for portability. If you want the same profile on your laptop and your desktop, you have to move it yourself.</p>
<h2>Export</h2>
<p>Open <a href="/settings/">Settings → Backup</a>. Click Export JSON. A file downloads. The filename is <code>guerillatype-profile-&lt;date&gt;.json</code>.</p>
<p>The file is small -- usually under 100 KB even after months of use. Save it where you save other backups. Email it to yourself. Whatever fits your habits.</p>
<h2>Import</h2>
<p>On another browser, or after clearing data, open Settings and click Import JSON. Select the file. The profile loads.</p>
<p>Importing replaces the current profile. There is no merge. If you imported once and have since done more sessions, importing the same file again will lose those new sessions. Export before importing.</p>
<h2>What is in the file</h2>
<p>The export is plain JSON. You can open it in any text editor. The schema is documented at the top of <a href="https://github.com/jonajinga/GuerillaType/blob/main/src/assets/js/storage.js">src/assets/js/storage.js</a> if you are curious. The relevant fields:</p>
<ul>
<li><code>sessions</code> -- every session, with timestamp, mode, wpm, accuracy, and the original target text.</li>
<li><code>lifetime</code> -- aggregate counters.</li>
<li><code>daily</code>, <code>hourly</code> -- date-keyed activity maps.</li>
<li><code>perKey</code>, <code>perFinger</code>, <code>perCharDetail</code> -- the data that drives the heatmap and per-character report.</li>
<li><code>lessonResults</code>, <code>challengeBests</code> -- which lessons and challenges you have cleared.</li>
<li><code>missedWords</code>, <code>missedWordsPeak</code> -- the running list of words you mistype most.</li>
<li><code>bookProgress</code> -- per-paragraph completion across the library.</li>
<li><code>preferences</code> -- your theme, font, and toggle settings.</li>
</ul>
<p>If you ever want to delete just one part of your history, you can edit the JSON in a text editor and import it back. Most people will never need to.</p>
<h2>How often</h2>
<p>If you practice every day, export once a week. If you practice a few times a month, once a month. If you only have a few sessions and would not miss them, never.</p>
<p>The risk is not high. Most browsers do not clear local storage unless you ask them to. But people accidentally clear data, switch browsers, change machines, or run cleanup tools. The export takes ten seconds. Do it before you need it.</p>
<h2>Why no cloud</h2>
<p>The site has no accounts and stores nothing on its servers. This is a deliberate design choice. The trade-off is yours: you keep full control of your data, but you have to handle backups yourself.</p>
<p>If you want cloud-synced profiles, the site is not for you. There are paid typing tutors that offer that. This is the one that does not.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Keyboard shortcuts on the practice surface</title>
    <link href="https://guerillatype.com/blog/keyboard-shortcuts/" />
    <updated>2026-04-17T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/keyboard-shortcuts/</id>
    <summary>What keys do what without leaving the typing flow.</summary>
    <content type="html"><![CDATA[<p>The practice surface is meant to be used without the mouse. A small set of shortcuts handles starting, stopping, and resetting sessions. Once you know them, the surface feels closer to a terminal than to a web page.</p>
<h2>During a session</h2>
<p><strong>Tab</strong> -- restart the current session with new content. If you misread the line and want to start fresh, this is the key.</p>
<p><strong>Esc</strong> -- exit the session. Drops you back to the toolbar. Anything you typed counts toward your stats up to the point you pressed it.</p>
<p><strong>Backspace</strong> -- correct the last character. Standard. Each correction shows in the live ticker as a red cell.</p>
<p><strong>Ctrl+Backspace</strong> -- delete the last word. Useful when you spot a typo a few characters back.</p>
<h2>Between sessions</h2>
<p><strong>F11</strong> -- enter or exit fullscreen mode. The site supports fullscreen on every modern browser; in fullscreen the toolbar and footer hide and the typing surface fills the window.</p>
<p><strong>F</strong> (when the surface has focus) -- focus mode. Hides the live stats and the toolbar without going fullscreen. Cleaner than fullscreen for a quick distraction-free run.</p>
<p><strong>Tab</strong> (when the surface has focus, no session running) -- start a new session.</p>
<h2>Toolbar shortcuts</h2>
<p>You can change mode mid-toolbar without clicking.</p>
<p><strong>T</strong> -- switch to time mode.
<strong>W</strong> -- switch to words mode.
<strong>Q</strong> -- switch to quote mode.
<strong>Z</strong> -- switch to zen mode.</p>
<p>After pressing one of these, type a number to set the duration or word count, then press Enter to start. So <code>T 6 0 Enter</code> starts a 60-second time test. <code>W 1 0 0 Enter</code> starts a 100-word session.</p>
<h2>Settings shortcuts</h2>
<p><strong>S</strong> (anywhere on the site) -- open the settings modal.
<strong>Esc</strong> (when the modal is open) -- close it.</p>
<p>The modal opens as an overlay on whatever page you were on, so you can change a setting without leaving practice.</p>
<h2>What not to bother with</h2>
<p>There is no shortcut for switching word lists. The dropdown is the way. The reason: switching lists clears the current session, and that is destructive enough to deserve an explicit click.</p>
<p>There is no shortcut for the achievements page or the stats page. They are full pages with charts; visiting them is a context switch by design.</p>
<h2>A note on browser shortcuts</h2>
<p>Browsers reserve some keys: Cmd-W to close the tab, Cmd-T to open a new one, Cmd-R to reload. The site cannot override these. If a typing-related shortcut clashes, the browser wins. (This is why we use Tab and not Cmd-T for restart.)</p>
<p>If your browser intercepts F11 for something else, fullscreen has a button on the toolbar.</p>
]]></content>
  </entry>
  
  <entry>
    <title>The kinds of typing errors</title>
    <link href="https://guerillatype.com/blog/error-types/" />
    <updated>2026-04-16T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/error-types/</id>
    <summary>Substitution, transposition, omission, doubling. Each has a different cause and a different fix.</summary>
    <content type="html"><![CDATA[<p>Not every typing error is the same. The site logs four kinds. Knowing which kind you make most often will tell you what to drill.</p>
<h2>Substitution</h2>
<p>You meant <code>the</code>, you typed <code>tge</code>. The wrong key was the right one's neighbor.</p>
<p>Substitutions are the most common typing error and the easiest to fix. They mean your finger went to the wrong column. Two letters that look adjacent on the keyboard often have different fingers assigned, so a substitution suggests a finger drifted.</p>
<p>The fix is reach drills. Open <a href="/lessons/">Stage 4 -- Reach drills</a> and run the drill for the hand that produced the substitution. If you cannot tell which hand, run both.</p>
<h2>Transposition</h2>
<p>You meant <code>the</code>, you typed <code>teh</code>. Two letters in the right place, but in the wrong order.</p>
<p>Transpositions usually mean one hand is faster than the other, and the slow hand is being passed by. The fix is rhythm: type at a pace your slower hand can keep up with.</p>
<p>If the transposition happens with the same hand (e.g., <code>s</code> and <code>a</code> swapped, both on the left), the fix is different. That is a finger-fight, where two fingers reached at the same moment and the wrong one landed first. Slow down for ten seconds; the issue almost always resolves.</p>
<h2>Omission</h2>
<p>You meant <code>the</code>, you typed <code>te</code>. A letter is missing.</p>
<p>Omissions are the worst kind of error because they are the hardest to notice. The cursor still moves; the word looks plausible at a glance. Most omissions are recovered after the next word, when you re-read and find the gap.</p>
<p>Omissions usually come from a single finger that did not register. Either the keystroke was too light to trigger, or the finger lifted before it pressed. Both happen on tired hands.</p>
<p>The fix is to take a break. Omission rates spike near the end of long sessions. If your last 100 chars have three omissions and your first 100 had zero, you are tired. Stop.</p>
<h2>Doubling</h2>
<p>You meant <code>the</code>, you typed <code>tthe</code>. The same key registered twice.</p>
<p>Doublings come from key-bounce on certain keyboards, or from a finger that pressed slightly too long. Almost always a hardware artifact, not a technique problem. Some keyboards have configurable key-repeat delay -- if doublings happen often, slow your repeat delay.</p>
<p>If they happen on a specific key over and over, the key may be wearing out. Common on heavily-used letters: e, t, a, n.</p>
<h2>Reading the chart</h2>
<p>The <a href="/stats/#char-table-host">character report</a> on the stats page lists every character by error rate and average ms. Sort by error rate descending. The top of the list shows your worst characters.</p>
<p>Look at the surrounding letters. If your worst character is <code>t</code> and your second-worst is <code>g</code>, you have a left-index problem. If your worst is <code>h</code> and your second is <code>n</code>, right index. The pattern usually points to a single finger that needs work.</p>
<h2>A final note</h2>
<p>Errors are noise. A 3% error rate is normal. A 6% error rate is high and worth investigating. A 10% error rate means you are typing faster than your fingers can sustain, and the fix is to slow down.</p>
<p>The number that matters most is not the error rate on any single session. It is the trend across many sessions. If your error rate is dropping over weeks, your practice is working. If it is rising, something has changed -- new keyboard, new posture, fatigue.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Warming up</title>
    <link href="https://guerillatype.com/blog/warming-up/" />
    <updated>2026-04-15T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/warming-up/</id>
    <summary>Two minutes of slow typing before any session improves the rest of the session.</summary>
    <content type="html"><![CDATA[<p>A pianist warms up. A runner warms up. A typist who skips the warm-up types worse for the first two minutes, makes more errors, and counts those errors against the day's stats.</p>
<p>The fix is sixty seconds of deliberate slow typing before any real session.</p>
<h2>What a warm-up does</h2>
<p>Three things, none dramatic on their own.</p>
<p><strong>Recalibrates the hands.</strong> Your fingers were just doing something else -- holding a phone, drinking coffee, scrolling. They have to find the home row again, and the first dozen keystrokes are usually less precise than the dozen after.</p>
<p><strong>Wakes up the working memory.</strong> Touch typing is mostly automatic, but the part of attention that supplies words to type is not. The supply lags during the first minute, which is why beginners often go fast then slow on a one-minute test.</p>
<p><strong>Establishes accuracy as the rule.</strong> If the first session of the day is rushed, the rest of the day's sessions tend to inherit the rushed feel. If the first session is slow and clean, you spend the rest of the day comparing yourself to that benchmark.</p>
<h2>How to warm up</h2>
<p>Open <a href="/practice/?mode=zen">Zen mode</a>. Type whatever comes up at half your normal speed for about a minute. No goal. No errors to fix. The cursor will move; that is the entire ambition.</p>
<p>Then run a <a href="/drills/home-row/">home-row drill</a>. Two passes. Slow.</p>
<p>Then start your real session.</p>
<p>The whole warm-up takes two minutes. It almost always saves more time than it costs by raising your accuracy on the first real session.</p>
<h2>What not to warm up with</h2>
<p><strong>Sprints.</strong> A 15-second top-speed test is not a warm-up. It is the opposite of a warm-up. Sprints belong at the middle of a session when the hands are loose.</p>
<p><strong>Difficult material.</strong> Code drills, advanced vocabulary, <a href="/wordlists/en-50k/">English-50k</a>. Save these for after the warm-up. Difficult material at the start of a session means you start with a low accuracy score, and your average for the day takes the hit.</p>
<p><strong>Reading.</strong> Some people open a book and start typing it cold. The book is fine -- the cold is the problem. Run sixty seconds of Zen first, then start the book.</p>
<h2>Cooling down</h2>
<p>A cool-down is also useful, though less so. After a long session, run a slow, easy <a href="/drills/">pangram drill</a> for thirty seconds. The pangram includes every letter, which gives the fingers a small final stretch on rare keys before you walk away.</p>
<p>The total ritual:</p>
<ul>
<li>Two minutes Zen</li>
<li>Two minutes home-row drill</li>
<li>Real session</li>
<li>Thirty seconds pangram cool-down</li>
</ul>
<p>About five minutes of warm-up and cool-down for a twenty-minute session. The numbers improve enough that the math is favorable.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Pick a theme that does not hurt your eyes</title>
    <link href="https://guerillatype.com/blog/theme-and-comfort/" />
    <updated>2026-04-14T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/theme-and-comfort/</id>
    <summary>How to use the theme settings, font choices, and visual aids without overdoing it.</summary>
    <content type="html"><![CDATA[<p>The site ships with twelve themes and ten typing fonts. The defaults are good. The other choices are good for some people. Here is when to change them.</p>
<h2>Light or dark</h2>
<p>The first decision is light theme or dark. The toggle is in the header.</p>
<p>Most typists prefer dark. It produces less eye strain in low-light rooms, which is where most typing happens. Light is better in direct sunlight or with overhead fluorescents.</p>
<p>If your eyes are tired by mid-session, try the other one for a week. The &quot;right&quot; theme is the one that lets you type for thirty minutes without rubbing your eyes.</p>
<h2>Themed presets</h2>
<p>Beyond light/dark there are eleven named presets in <a href="/settings/">Settings → Theme</a> -- Solarized, Dracula, Nord, Gruvbox, One Dark, Tokyo Night, Catppuccin, Rose Pine, GitHub Dark, GitHub Light. They are color-palette swaps. They do not change anything functional.</p>
<p>Pick whichever matches the rest of your tools. If you use Solarized in your terminal, set Solarized here too. The continuity reduces the visual jolt when you switch contexts.</p>
<h2>Custom themes</h2>
<p>Below the presets is a builder. Eight color pickers, one for each major token. Live preview to the right. You can save a custom theme and export it as JSON to share or import.</p>
<p>The builder runs a contrast check on every change. If you pick foreground and background colors that fail WCAG AA contrast (4.5:1 for normal text), you will see a warning and an auto-fix option that bumps lightness on whichever side preserves intent.</p>
<p>Use the builder if the preset palettes do not suit you. Skip it if they do.</p>
<h2>Typing font</h2>
<p>The typing surface uses JetBrains Mono by default. The other fonts in <a href="/settings/">Settings → Typing font</a> are:</p>
<ul>
<li><strong>Fira Code</strong> -- ligatures (<code>==</code> becomes <code>≡</code>, <code>=&gt;</code> becomes <code>⇒</code>, etc.). Some typists love them, some hate them. Try and see.</li>
<li><strong>IBM Plex Mono</strong> -- humanist, warmer.</li>
<li><strong>Roboto Mono</strong> -- neutral, narrow.</li>
<li><strong>Source Code Pro</strong> -- Adobe's classic, conservative.</li>
<li><strong>Cascadia Code</strong> -- Microsoft's terminal font.</li>
<li><strong>Ubuntu Mono</strong> -- softer geometry.</li>
<li><strong>Comic Mono</strong> -- Comic Sans in monospace. Surprisingly readable.</li>
<li><strong>Iosevka</strong> -- very narrow, dense.</li>
<li><strong>System</strong> -- whatever your OS provides as a default monospace.</li>
</ul>
<p>The choice does not affect speed. It affects how long you can sit and type without the screen feeling cramped. If you find yourself squinting, your font is too narrow or too small. If letters blur together, your font is too dense.</p>
<h2>Visual aids</h2>
<p>In <a href="/settings/">Settings → Visual aids</a> there are toggles for:</p>
<ul>
<li><strong>Virtual keyboard</strong> -- shows the next-expected key glowing on a small SVG keyboard below the typing surface. Useful for the first month of touch typing. Turn it off after that; otherwise you train your eyes to look at it instead of at the text.</li>
<li><strong>Ticker</strong> -- a strip of green/red cells showing your last 40 keystrokes. Useful if you want immediate feedback on accuracy. Distracting if you want flow.</li>
<li><strong>Whitespace mark</strong> -- show spaces and newlines as visible characters. Off by default. Turn on briefly if you suspect you are missing the spacebar.</li>
<li><strong>Cursor style</strong> -- block, line, underline, or none. Block cursors are easier to track on a busy screen. Line cursors blend in. None is for typists who do not want to see the cursor at all.</li>
</ul>
<p>Default settings are tuned for new typists. Once you are running 60+ wpm, most of the visual aids are training wheels you can remove.</p>
]]></content>
  </entry>
  
  <entry>
    <title>The challenges system</title>
    <link href="https://guerillatype.com/blog/challenges-explained/" />
    <updated>2026-04-13T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/challenges-explained/</id>
    <summary>What each challenge is for and which to take on first.</summary>
    <content type="html"><![CDATA[<p>The <a href="/challenges/">/challenges/</a> page holds nearly forty named tests, each with a goal in wpm and accuracy. Clearing one unlocks an achievement and a small badge. The challenges are not the curriculum -- the <a href="/lessons/">lessons</a> are. Challenges are tests you take when you want to know where you are.</p>
<h2>Why they exist</h2>
<p>Lessons are unbounded. You can run a foundation drill at 25 wpm or 80 wpm and call it cleared either way. Word-list practice is similarly open -- the word list does not care how fast you type.</p>
<p>A challenge has a goal. You either hit the goal or you do not. The clarity is the point.</p>
<h2>Three families</h2>
<p><strong>Speed tiers.</strong> Bronze, Silver, Gold, Platinum, Diamond -- each is a 60-second test with a higher wpm bar. Bronze sits at 40 wpm. Diamond sits at 130. The ladder gives you a calibrated benchmark: instead of &quot;I want to be faster,&quot; it is &quot;I want Silver this month.&quot;</p>
<p>Most typists land at Silver within a few months of starting and reach Gold within a year. Platinum and Diamond take serious practice and decent technique.</p>
<p><strong>Endurance.</strong> Marathon (5 minutes), Ten Minutes, Hour of Power. Long-form challenges that test whether your speed holds up. A typist who can hit 80 wpm for a minute often runs 65 in a five-minute test. The gap between the two is your stamina, and it is a separate skill from raw speed.</p>
<p><strong>Precision.</strong> Perfect 100 (100% accuracy), Precision Run (99%), Stop on Error, No Backspace. These do not reward speed; they punish errors. The most uncomfortable challenges in the set, and the ones that produce the most lasting improvement.</p>
<h2>Where to start</h2>
<p>If you have never taken a challenge: <strong>Sprint</strong> (60 seconds, 60 wpm at 95%). It is the standard typing-test format. Whatever number you get is your baseline.</p>
<p>After that:</p>
<ul>
<li>If your accuracy is below 95%, work the precision challenges first.</li>
<li>If your accuracy is above 96% and your speed has plateaued, work the speed tiers.</li>
<li>If you can hit your wpm target on a 60-second test but not on a 5-minute one, work the endurance challenges.</li>
</ul>
<p>Pick one. Run it three or four times a week until you clear it. Move on.</p>
<h2>What not to do</h2>
<p>Do not chase every challenge. There are nearly forty, and most of them you will earn naturally as you practice. The ones that matter are the ones that match what you are trying to improve.</p>
<p>Do not retake a challenge ten times in a row trying for the goal. Two attempts is plenty. If you miss twice, your fingers need rest or your technique needs work -- not another rep on tired hands.</p>
<p>Do not treat the challenges page as a leaderboard. There is no leaderboard. The badges are local; nobody else can see them. The goal is yours.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Typing code</title>
    <link href="https://guerillatype.com/blog/code-typing/" />
    <updated>2026-04-12T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/code-typing/</id>
    <summary>Why code is harder than prose, and how to drill the symbols you actually use.</summary>
    <content type="html"><![CDATA[<p>Programmers type all day, but their wpm on a regular typing test is often unimpressive. The reason is that prose and code are different problems. The fingers that fly through English text get stuck on every semicolon, every brace, every shift-2, every backslash.</p>
<h2>What makes code harder</h2>
<p>Three things, mostly.</p>
<p><strong>Symbol density.</strong> A line of prose has zero or one punctuation marks. A line of code has five or six -- braces, parens, dots, semicolons, equals signs, comparison operators. Each symbol means a shift key reach to a key you do not type often.</p>
<p><strong>Capital letters mid-word.</strong> <code>userName</code>, <code>getUserById</code>, <code>XMLHttpRequest</code>. CamelCase puts shifts in the middle of identifiers, where prose typists never need them. The two-key motion of shift-then-letter has to happen in the same time slot as a regular letter press, or your tempo breaks.</p>
<p><strong>No predictability.</strong> In prose, after typing &quot;the quick brown&quot; your fingers are already drifting toward F-O-X. In code, after typing <code>function </code>, the next keys could be any identifier. Your fingers have nothing to anticipate.</p>
<p>The combined effect: a typist who runs 80 wpm on prose might run 45 wpm on real code. That is normal. It is not a signal that something is wrong.</p>
<h2>What to drill</h2>
<p>If you write code regularly, the <a href="/drills/">code drills</a> are worth more than another round of prose practice. Three are essential:</p>
<p><strong><a href="/drills/code-brackets/">Brackets</a></strong> -- <code>()</code>, <code>[]</code>, <code>{}</code>, plus the nested versions. Open-close pairs are a specific motor pattern. Most fingers do open fast and close slow. Drilling this evens out the rhythm.</p>
<p><strong><a href="/drills/code-symbols-math/">Math symbols</a></strong> -- <code>+ - * / = &lt; &gt; !</code>. The shift-key reaches that almost no one practices on a regular typing test. You will use these constantly in any language.</p>
<p><strong><a href="/drills/code-js-keywords/">JS keywords</a></strong> (or <a href="/drills/code-py-decorators/">Python decorators</a>, or <a href="/drills/code-html-tags/">HTML tags</a>, depending on what you write). The high-frequency tokens in your language. Type them enough that your fingers stop spelling them out one letter at a time.</p>
<h2>Lessons that go further</h2>
<p>Stage 13 of the <a href="/lessons/">lessons</a> is programming-focused. It covers TypeScript, Rust, Go, Java, C, C++, Ruby, Swift, Kotlin, PHP, Lua, Elixir, Haskell, Scala, Clojure, OCaml, F#, Dart, Julia, R, Erlang, Solidity. Plus framework drills (Vue, Angular, Svelte, Express, Django, Rails, Phoenix), plus DevOps tools (Docker, Kubernetes, Terraform, Ansible, Helm).</p>
<p>Pick the languages you actually use. Skip the rest.</p>
<h2>A target</h2>
<p>A reasonable goal for code typing is roughly two-thirds of your prose wpm. If you type 90 wpm in prose, 60 wpm in code is good. 70 is excellent. The gap closes with practice but it does not close all the way -- code is genuinely harder.</p>
<p>The number that matters more than wpm is the ratio of clean lines. If you have to backspace and retype every fourth line, your code is being written twice. Drilling brackets and symbols cuts that ratio fast.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Fixing the pinky</title>
    <link href="https://guerillatype.com/blog/fixing-the-pinky/" />
    <updated>2026-04-11T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/fixing-the-pinky/</id>
    <summary>Why the right pinky lags, and how to bring it up to the rest of the hand.</summary>
    <content type="html"><![CDATA[<p>Look at the per-finger error chart on your <a href="/stats/">stats page</a>. Most typists have one finger doing twice as many errors as the others. It is usually the right pinky.</p>
<h2>Why</h2>
<p>The right pinky has the worst job in touch typing. It is the weakest finger. It is responsible for the most distant column of keys -- P, semicolon, slash, plus the Enter and right-Shift keys when those come up.</p>
<p>It also handles many of the closing-punctuation marks: colon, single-quote, double-quote, question mark. These are exactly the keys that show up at the ends of sentences, when your hands are already tired and your accuracy has been slipping for a paragraph.</p>
<p>The result is predictable. Average error rate on a typical typist's pinky column is two to three times the rate on the index column.</p>
<h2>The fix</h2>
<p>There is no shortcut. The pinky needs targeted practice. Three drills, one of them every other day, will close the gap in a few weeks.</p>
<p><strong><a href="/drills/finger-r-pinky/">Right pinky finger</a></strong> -- the dedicated drill. Six keys, no others. Run it for five minutes.</p>
<p><strong><a href="/drills/punctuation/">Punctuation drill</a></strong> -- forces shifts to the marks the pinky owns.</p>
<p><strong><a href="/drills/punct-quotes/">Quote-punctuation drill</a></strong> -- specifically trains the apostrophe-and-quote rhythm at the ends of sentences.</p>
<h2>Form</h2>
<p>Two technique notes that matter more than the drills.</p>
<p><strong>Reach with the finger, not the hand.</strong> The pinky has the longest reach, but it should still be the part that moves. If you are tilting your wrist to the right to hit the semicolon, you are dragging the rest of the hand off the home row. You will lose your J anchor and your next several keys will be off.</p>
<p>The motion is: pinky stretches, hits, returns. Wrist still. Index finger still on J.</p>
<p><strong>Use the right shift for capital letters on the left side of the keyboard.</strong> A common bad habit is to use the left shift for everything. If you are typing a capital A or capital S, the right pinky should be holding shift. If you are typing a capital P or capital L, the left pinky holds shift. The site of the shift press is always opposite to the letter.</p>
<p>This rule cuts your right pinky's per-keystroke load roughly in half on capitalized text.</p>
<h2>Patience</h2>
<p>The pinky takes longer to train than the rest of the hand because it gets fewer reps in normal typing. You have to deliberately drill it. Most typists who close the gap do so in three to six weeks of targeted practice, then maintain it with one drill a week.</p>
<p>There is nothing to be done about it being weaker. There is a lot to be done about it being slower than the other fingers, because slow comes from technique. Fix the technique and the pinky will sit at twice the error rate of the index finger -- which is the right ratio. It is a smaller finger. It should not be trying to keep up at the same rate.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Typing the classics</title>
    <link href="https://guerillatype.com/blog/library-and-classics/" />
    <updated>2026-04-10T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/library-and-classics/</id>
    <summary>Why the library exists, what is in it, and how the per-paragraph tracking works.</summary>
    <content type="html"><![CDATA[<p>The <a href="/library/">/library/</a> page holds the full text of more than two hundred public-domain books. You can type any of them, paragraph by paragraph, and the site remembers where you left off.</p>
<h2>What is in there</h2>
<p>Roughly 230 books. Project Gutenberg classics, mostly: Austen, Twain, Dickens, Wells, Doyle, Hawthorne, Melville, Wilde, Kipling, Stevenson, Tolstoy, Dostoevsky, Chekhov, James, Conrad, Forster, Hemingway-era contemporaries, plus the canon you would expect from a public-domain library -- Iliad, Odyssey, Aeneid, Beowulf, Canterbury Tales, Plato's Republic, Aristotle's Nicomachean Ethics.</p>
<p>Some Shakespeare plays. Some long-form essays. Common Sense, Federalist Papers, On Liberty.</p>
<p>Nothing is selected for &quot;good typing material.&quot; The selection is for &quot;people who like to read might want to type this.&quot; Practical typing benefits from real prose with proper punctuation and full sentences, which most of the canon delivers.</p>
<h2>How tracking works</h2>
<p>Each book is split into paragraphs. Every paragraph has a stable id. Your local profile remembers, per book, which paragraphs you have completed. Open a book and the page resumes at the paragraph after the last one you cleared.</p>
<p>You do not have to type a book in order. The Continue button picks up where you left off, but you can also skip ahead and the tracking still works. If you start typing a chapter halfway through and finish it, those paragraphs will be marked done.</p>
<h2>The pace</h2>
<p>Books are long. Pride and Prejudice is roughly 700,000 characters -- 280 minutes of typing at 75 wpm, or four months at twenty minutes a day. Moby Dick is twice that.</p>
<p>Most people who use the library type a book over months, not weeks. A chapter or two per session is plenty. The progress bar on the book page shows how far you have come.</p>
<h2>Recommendations</h2>
<p>If you have never typed a long-form text before, start with something short:</p>
<ul>
<li><strong>The Yellow Wallpaper</strong> -- 31 KB, one sitting at 60 wpm. Charlotte Perkins Gilman.</li>
<li><strong>A Modest Proposal</strong> -- 25 KB, also one sitting. Swift.</li>
<li><strong>Civil Disobedience</strong> -- 47 KB, two sittings. Thoreau.</li>
<li><strong>The Metamorphosis</strong> -- 130 KB, a few sessions. Kafka.</li>
</ul>
<p>Once you have finished one short text, move to one of the medium novels:</p>
<ul>
<li><strong>Heart of Darkness</strong>, <strong>The Time Machine</strong>, <strong>Dr Jekyll and Mr Hyde</strong>, <strong>The Picture of Dorian Gray</strong>, <strong>A Christmas Carol</strong>.</li>
</ul>
<p>Then take on the long ones if you want.</p>
<h2>A note on attention</h2>
<p>Typing a book is not reading a book. The two activities use different parts of attention. Most people find that typing forces a slower, closer engagement with the prose -- you notice sentences you would have skimmed.</p>
<p>This is the actual reason to type the classics. Not for typing speed (your wpm will be lower than on word lists). Not as a feature differentiator. Because typing a paragraph by Twain or Dickinson is a different experience than reading it, and the difference is worth a few minutes of your day.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Practice with your own text</title>
    <link href="https://guerillatype.com/blog/custom-text/" />
    <updated>2026-04-09T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/custom-text/</id>
    <summary>How to feed the practice surface anything you want, and why it is worth doing.</summary>
    <content type="html"><![CDATA[<p>The <a href="/custom/">/custom/</a> page lets you paste text and type it. The text stays on your device. It is the most flexible mode in the site, and the most underused.</p>
<h2>What it does</h2>
<p>Paste up to 200 KB of text. The site chunks it into typable segments at sentence and paragraph boundaries -- never mid-word. Each segment becomes one practice session. You move through them at your own pace, and your progress is saved locally.</p>
<p>Drag a .txt file in, and it does the same thing.</p>
<h2>Why it is useful</h2>
<p>The built-in word lists are good for benchmarks. Real text is different. Real text has names, technical terms, the same word three times in a row, your own particular grammatical tics. The benchmark word list cannot give you any of that.</p>
<p>Three things custom text does that nothing else does:</p>
<p><strong>It teaches your fingers your own writing.</strong> Your name. Your company's name. The phrases you use a hundred times a week. Drill these once and they become automatic.</p>
<p><strong>It makes long-form practice tolerable.</strong> A 2,000-word session of word-list typing is exhausting. The same 2,000 words from a book you like is something you can sit through.</p>
<p><strong>It works on any source.</strong> A speech you are memorizing. A journal entry. A song lyric. A code review you wrote. The site does not care.</p>
<h2>Pin a text as a lesson</h2>
<p>After saving, you can pin a custom text. It then appears at the bottom of the <a href="/lessons/">/lessons/</a> page, alongside the built-in curriculum. Useful when you want to chip away at a long text over many sessions.</p>
<h2>Tips</h2>
<p><strong>Strip page numbers and headers</strong> before pasting from a PDF, or the typing surface will treat them as content.</p>
<p><strong>Keep paragraphs together</strong> -- the segmenter respects paragraph breaks, so a clean source produces clean segments. Run-on text gets chopped at sentence boundaries, which is fine but makes the breaks less natural.</p>
<p><strong>Avoid em-dashes and smart quotes.</strong> The corpus rule for the site applies here too: replace <code>—</code> with <code>--</code>, <code>'</code> with <code>'</code>, <code>&quot;</code> with <code>&quot;</code>. The typing surface accepts the smart versions but they are harder to type.</p>
<h2>What it does not do</h2>
<p><strong>It does not phone home.</strong> Your text never leaves your browser. The custom-text feature uses local storage, full stop. There is no upload, no sync, no telemetry.</p>
<p><strong>It does not OCR images.</strong> PDFs need to have a text layer. If a PDF was scanned but never OCR'd, you will get garbage. Run it through a tool that adds the text layer first.</p>
<p><strong>It does not format your text.</strong> What you paste is what you type. If you want bold, italics, or headings rendered with style, the practice surface ignores them. It is a typing tutor, not a word processor.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Why touch type</title>
    <link href="https://guerillatype.com/blog/why-touch-type/" />
    <updated>2026-04-08T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/why-touch-type/</id>
    <summary>What you gain, what you give up, and how long it takes to break even.</summary>
    <content type="html"><![CDATA[<p>Most people who type for a living do not touch type. They use four to six fingers and look at the keyboard. Their pace tops out around 40 wpm. They have done it that way for years and they get their work done.</p>
<p>So the question is fair: why bother?</p>
<h2>What you gain</h2>
<p><strong>Speed.</strong> A practiced touch typist runs 70-90 wpm in long-form prose. The fastest competitive typists hit 150-200 wpm. The hunt-and-peck ceiling is around 50 wpm and most people sit far below it.</p>
<p><strong>Stamina.</strong> Touch typing uses ten fingers in rotation. Each finger does less work. Your hands tire less, and you can type for longer before you start making mistakes.</p>
<p><strong>Attention.</strong> Looking at the keyboard means switching between two visual contexts -- the screen and the keys. Touch typing eliminates the second context. You read what you are writing as you write it.</p>
<p><strong>Edits in flight.</strong> When your eyes never leave the screen, you catch typos as they happen. Hunt-and-peckers fix typos in waves -- type a paragraph, look up, find the errors, fix them, look back down, type more. Touch typists fix as they go.</p>
<h2>What you give up</h2>
<p><strong>Two to four weeks of slower typing while you learn.</strong> During the transition, your wpm will drop. Most people get back to their old pace in two weeks of daily practice. A few take a month.</p>
<p>The reason it works is the same reason it is uncomfortable: you are replacing a habit. The habit was efficient enough to run on autopilot. The new habit is not yet, so every keystroke takes thought. This passes.</p>
<h2>How long it takes</h2>
<p>A reasonable timeline for someone who currently hunts and pecks at 35 wpm:</p>
<ul>
<li><strong>Week 1:</strong> Foundation lessons. Slow. Maybe 12 wpm.</li>
<li><strong>Week 2:</strong> Starts to feel mechanical. 20 wpm.</li>
<li><strong>Week 3-4:</strong> Roughly back to your old hunt-and-peck speed. The transition is over.</li>
<li><strong>Month 2:</strong> 45 wpm at 95% accuracy.</li>
<li><strong>Month 3:</strong> 55 wpm.</li>
<li><strong>Month 6:</strong> 70 wpm if you practice a few days a week.</li>
<li><strong>Year 1:</strong> 80-90 wpm and the keyboard has disappeared from your awareness.</li>
</ul>
<p>These are typical, not promised. Some people are faster, some slower.</p>
<h2>Should you bother</h2>
<p>If you type more than thirty minutes a day for work or hobby, yes. The break-even point is roughly two months in -- at that point you have made up the time you spent learning. Everything after is pure return.</p>
<p>If you barely use a computer, probably not. The skill is for people who use the keyboard all day.</p>
<p>If your hands hurt by the end of a workday, definitely yes. Most repetitive-strain injuries from typing come from awkward hand positions held for hours. Touch typing keeps the hands centered and balanced.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Plateaus</title>
    <link href="https://guerillatype.com/blog/plateaus/" />
    <updated>2026-04-07T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/plateaus/</id>
    <summary>What to do when your wpm has not moved in a month.</summary>
    <content type="html"><![CDATA[<p>Improvement is not linear. Most typists hit at least one plateau where their best wpm stops moving for weeks. The plateau is not a sign that you have peaked. It is a sign that the way you are practicing has stopped pushing you.</p>
<h2>What a plateau looks like</h2>
<p>You run a one-minute test. You get 65 wpm at 95% accuracy. You ran the same test last week. You got 65 wpm at 95% accuracy. You ran it three weeks ago. The same.</p>
<p>Your average is not dropping. Your error rate is normal. Nothing is broken. You have simply stopped getting faster, and you have been doing the same kind of practice the whole time.</p>
<h2>Why it happens</h2>
<p>Speed comes from removing friction. The first 30 wpm comes from learning where the keys are. The next 30 comes from chaining keys into bigrams and words without thought. The next 30 comes from chaining words into phrases. Each layer requires different practice.</p>
<p>If you have been running the same word-list test for a month, you are training the same layer. The layer is finished. Move up.</p>
<h2>What to try next</h2>
<p>Pick one. Stick with it for two weeks before judging it.</p>
<p><strong>Drill your weakest finger.</strong> Open the <a href="/stats/">stats page</a> and look at the per-finger chart. Whichever finger has the highest error rate gets one drill session a day. Use the <a href="/lessons/">reach drill</a> for that finger.</p>
<p><strong>Type harder material.</strong> If you have been typing English-1k for months, switch to <a href="/wordlists/en-10k/">English-10k</a> or <a href="/wordlists/en-20k/">English-20k</a>. The unfamiliar word distribution forces your fingers to spell, not pattern-match.</p>
<p><strong>Type code.</strong> If you mostly type prose, run a code drill. The symbol density breaks autopilot.</p>
<p><strong>Drop your speed cap.</strong> Some typists develop a habit of slowing down at a fixed pace -- they can type faster but they have learned to hold steady. Run a 15-second sprint at full speed, accuracy be damned. Repeat ten times. Most people break their plateau within a few sessions.</p>
<p><strong>Slow down for accuracy.</strong> The opposite of the previous one, and the more common cure. If your stuck wpm comes with 90-94% accuracy, your fingers are correcting too much. Slow down to 96%+. Speed will return higher than it was.</p>
<h2>What not to try</h2>
<p>Do not switch keyboard layouts (Dvorak, Colemak) hoping for a breakthrough. Layout switching means six months of being slower. Some people end up faster afterward, most do not. It is a project, not a fix.</p>
<p>Do not buy a new keyboard. Mechanical keyboards are pleasant; they do not make you faster.</p>
<p>Do not change typing software. The plateau is in your hands, not in the tool. A new tool would buy a week of motivation, then nothing.</p>
<h2>When to wait</h2>
<p>A plateau that lasts a month is normal. A plateau that lasts three months means you have moved into maintenance mode -- still typing, no longer improving. That is a fine place to be. Not every typist needs to keep climbing.</p>
<p>If you want to keep climbing, change the practice. If you want to maintain, type a little every day and stop measuring. Both are reasonable.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Posture and the keyboard</title>
    <link href="https://guerillatype.com/blog/posture-and-the-keyboard/" />
    <updated>2026-04-06T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/posture-and-the-keyboard/</id>
    <summary>How to sit, where to put your hands, and what to do about pain.</summary>
    <content type="html"><![CDATA[<p>Touch typing is a motor skill. Like every motor skill, it works better when the body is in a good position to perform it. The position is straightforward.</p>
<h2>Feet flat, back straight</h2>
<p>Sit with your feet flat on the floor. If the chair is too tall, get a footrest -- a stack of books works. If the chair is too short, raise it.</p>
<p>Sit upright. The back of the chair should support your lower back. Your shoulders should not hunch forward. If they are, the screen is too low or the keyboard is too far.</p>
<p>The most common typing-related injury is not from the keyboard. It is from a slumped posture held for hours, with the head tilted forward to read the screen. Fix the screen height first.</p>
<h2>Screen at eye level</h2>
<p>The top of the screen should be roughly at eye level when you are sitting up straight. If the screen is a laptop, this almost always means raising it on books and using an external keyboard. Laptop typing for more than an hour at a stretch is hard on the neck.</p>
<h2>Hands above the keys</h2>
<p>The forearms should be parallel to the floor, or angled slightly downward. The wrists should be straight, not bent up or down. The hands hover -- they do not rest on the keyboard or on a wrist pad while typing. (Wrist pads are for between sessions, not during them.)</p>
<p>If the keyboard is too high, your shoulders shrug. If it is too low, your wrists bend up. Neither is sustainable.</p>
<h2>Fingers on F and J</h2>
<p>Left index on F. Right index on J. Both keys have a small bump. Find the bumps without looking and your hands are in position.</p>
<p>The other six fingers fall onto D-S-A and K-L-semicolon. Thumbs rest on the spacebar but do not press it unless you are typing a space.</p>
<h2>When something hurts</h2>
<p>Pain in the wrists, forearms, or fingers is a signal. The signal almost always means one of:</p>
<ul>
<li>The hands are bent at the wrist instead of straight</li>
<li>The shoulders are pulled up toward the ears</li>
<li>You have been typing for too long without a break</li>
</ul>
<p>Stop. Stretch. Walk around. Adjust the chair or the screen. Then come back.</p>
<p>Pain that returns the next day, or pain that lasts more than a few hours, is worth a doctor's visit. Repetitive strain injuries are real and they get worse if ignored.</p>
<h2>Breaks</h2>
<p>A simple rule: every twenty minutes, look at something twenty feet away for twenty seconds. This is for the eyes, not the hands.</p>
<p>Every hour, stand up and walk around for at least a minute. This is for everything else. Most people who type all day for years do this without thinking. Most people who develop typing-related pain do not.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Daily practice</title>
    <link href="https://guerillatype.com/blog/daily-practice/" />
    <updated>2026-04-05T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/daily-practice/</id>
    <summary>How long to practice, what to practice, and what to do when you do not feel like it.</summary>
    <content type="html"><![CDATA[<p>Twenty minutes a day, four or five days a week, will move you from 40 wpm to 70 wpm in about six months. Less time per session works -- it just takes longer.</p>
<h2>A session that works</h2>
<p>Open the <a href="/practice/?mode=time&amp;duration=60">practice surface</a>. Type for one minute. That is your warm-up. The number does not matter.</p>
<p>Open the <a href="/stats/">stats page</a>. Look at the per-key heatmap. Note the worst three keys. Click Practice these.</p>
<p>Drill those keys for five to ten minutes. The drill pulls weighted toward your slow keys, so each session targets a slightly different blend.</p>
<p>Switch to a <a href="/lessons/">lesson</a> you have not cleared yet. Run it once. If you pass, move to the next. If you fail, run it again -- failure usually means you were rushing.</p>
<p>Close the tab. You are done.</p>
<p>That is twenty minutes. The structure matters more than the timing: warm up, drill weak spots, push something new. Skip any step and the session still helps. Do all three and it compounds.</p>
<h2>When you do not feel like it</h2>
<p>Most days you will not feel like practicing. The trick is to commit to one minute.</p>
<p>Open <a href="/practice/?mode=zen">Zen mode</a>. Type whatever for sixty seconds. If you stop after one minute, the streak counter still gets the day. If you keep going -- and you usually will, once you have started -- you have a session.</p>
<p>The streak is more valuable than any single-session metric. Three months of one-minute sessions builds more typing skill than two months of perfect twenty-minute sessions broken by gaps.</p>
<h2>When to take a break</h2>
<p>If your accuracy drops more than four points below your average for two sessions in a row, you are tired. Stop. Come back tomorrow.</p>
<p>If your accuracy drops for a week, take three days off. The body learns motor skills during sleep, not during practice. Over-practicing degrades performance the same way under-practicing does.</p>
<h2>A rule that works</h2>
<p>The simplest rule that works for most people:</p>
<ul>
<li>One minute every day.</li>
<li>Twenty minutes when you have time.</li>
<li>Two days off when you need them.</li>
</ul>
<p>That is enough. The only practice schedule that fails is the one you do not follow.</p>
]]></content>
  </entry>
  
  <entry>
    <title>The five practice modes</title>
    <link href="https://guerillatype.com/blog/modes-explained/" />
    <updated>2026-04-04T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/modes-explained/</id>
    <summary>Time, words, quote, zen, custom. When to use each.</summary>
    <content type="html"><![CDATA[<p>The <a href="/practice/">practice surface</a> supports five modes. They behave differently. Pick the one that matches what you are training.</p>
<h2>Time</h2>
<p>A countdown timer. The session ends when the clock reaches zero. The most common mode and the one shown in screenshots everywhere.</p>
<p>Use it when you want a benchmark. A 60-second time test is the standard wpm measurement; a 30-second test is the standard for sprints. The number you get is comparable across sessions and -- with caveats -- across people.</p>
<p>The downside: you can stop typing whenever you like and the clock does not care. If you want every keystroke to count, use Words mode instead.</p>
<h2>Words</h2>
<p>You set a word count. The session ends when you have typed that many words.</p>
<p>Word mode is better than time mode for two reasons:</p>
<ul>
<li>It is honest about effort. A 100-word session takes whatever it takes; you cannot pad the wpm by typing fast for ten seconds and then watching the timer.</li>
<li>It rewards endurance. The 500-word challenge is real work even at 60 wpm.</li>
</ul>
<p>Use Words mode for most practice. It is what real writing feels like.</p>
<h2>Quote</h2>
<p>You type a single piece of literary or historical text. The session ends when the passage ends.</p>
<p>Quotes are pulled from a public-domain corpus -- Twain, Austen, Lincoln, Frederick Douglass, Sagan. The <a href="/quotes/">/quotes/</a> page shows what is available. You can also pin specific authors or quote-lengths in <a href="/settings/">settings</a>.</p>
<p>Quote mode is better than word mode for line-break rhythm and punctuation practice. Word mode tests fingers; quote mode tests reading.</p>
<h2>Zen</h2>
<p>No timer, no goal, no end. You type until you stop.</p>
<p>Zen mode is for warming up, for relaxing, for the kind of typing that happens when you are thinking and the keystrokes are background noise. It does not feed your wpm averages, by design -- a 45-minute Zen session would otherwise dominate the trend chart.</p>
<p>Use it when you want to type without performing.</p>
<h2>Custom</h2>
<p>You paste in your own text. The site chunks it into typable segments and tracks your progress through them. The text stays on your device; the site never uploads it.</p>
<p>The most common Custom inputs:</p>
<ul>
<li>A book chapter you wanted to type but it is not in our library</li>
<li>A speech you are memorizing</li>
<li>Code you wrote that you want to internalize the rhythm of</li>
<li>A poem you love</li>
</ul>
<p>The <a href="/custom/">/custom/</a> page accepts pasted text or .txt files up to 200 KB. You can pin custom texts as lessons -- they appear at the bottom of the <a href="/lessons/">/lessons/</a> page once pinned.</p>
<h2>Picking one</h2>
<p>If you are warming up: Zen.</p>
<p>If you are benchmarking: Time, 60 seconds.</p>
<p>If you are practicing for the long haul: Words, 100 or 200.</p>
<p>If you are building punctuation rhythm: Quote.</p>
<p>If you are working on a specific text: Custom.</p>
<p>You do not need to use all five. Pick the one that matches today and skip the rest.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Reading the stats page</title>
    <link href="https://guerillatype.com/blog/reading-the-stats-page/" />
    <updated>2026-04-03T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/reading-the-stats-page/</id>
    <summary>What every chart on /stats/ tells you, and which numbers actually predict improvement.</summary>
    <content type="html"><![CDATA[<p>The <a href="/stats/">stats page</a> holds eleven charts. Most users look at three of them. Here is what each one is for.</p>
<h2>Lifetime numbers (top of the page)</h2>
<p>Best wpm, best accuracy, total sessions, total characters, current streak. These are the headline numbers. They do not change quickly.</p>
<p>Best wpm is the number people quote. It is the most flattering and the least useful. A single 30-second sprint can set it; that does not mean you can hold the pace for a paragraph.</p>
<p>The number that predicts improvement is <strong>total characters typed</strong>. Practice volume is the single best signal that you will be faster next month than you are this month.</p>
<h2>Trend (last 30 sessions)</h2>
<p>A line chart of wpm by session. Look for direction, not jitter. A noisy line that drifts upward is a typist who is improving. A flat line means the curriculum is not stretching you -- try harder material.</p>
<p>If the line is dropping, you are tired or the material got harder. Both are fine in the short term. If the line drops for a week, take a break.</p>
<h2>Per-key heatmap</h2>
<p>A keyboard with each key colored by error rate (or by speed, depending on the toggle). The color tells you which keys are slowing you down.</p>
<p>The two facts to learn from this chart:</p>
<ul>
<li><strong>Slow keys appear cool</strong> (low color saturation). These are not problems. They are letters you do not type often.</li>
<li><strong>Hot keys are problems</strong>. Specifically, keys with high error rates. These are the next thing to drill.</li>
</ul>
<p>The Practice these button next to the chart loads a drill weighted toward your hot keys. Five minutes here, three days a week, is the fastest path to lower error rates.</p>
<h2>Per-finger errors</h2>
<p>A horizontal-bar chart of error rate per finger across both hands. Most typists discover one finger is dragging the rest. The right pinky is the most common offender, followed by the left pinky and the right ring finger.</p>
<p>If the chart shows one finger doing 30% of your errors, run <a href="/lessons/">Stage 4 -- Reach drills</a> for that hand for a week.</p>
<h2>Character report</h2>
<p>A sortable table of every character you have typed, with its sample count, error rate, and average key time. Sort by error rate descending to see your worst characters. Sort by average ms ascending to see your fastest.</p>
<p>Look here when something feels slow but the heatmap is not flagging it. The table holds more detail than the colored grid.</p>
<h2>Lesson trends</h2>
<p>A multi-line chart of wpm per lesson attempt. One line per lesson you have practiced. Useful when you are working through the curriculum -- you can see whether your second pass on Lesson 50 is faster than the first.</p>
<h2>Missed words</h2>
<p>A horizontal bar chart of the words you mistype most often, weighted by recency. Below it is a Practice these button that loads a session pulling only from this list.</p>
<p>Missed words is the highest-leverage chart on the page. The words on it are the words your fingers reliably trip over. Five minutes drilling them once or twice a week eliminates them faster than any other practice method.</p>
<h2>Contribution grid</h2>
<p>A heatmap of activity by day, GitHub-style. Click any day to see the sessions on it. Useful for streak tracking and for noticing patterns -- some typists practice better on weekends, some on weeknights, some in mornings.</p>
<p>The grid does not predict improvement. It exists to make consistency visible.</p>
<h2>Achievements</h2>
<p>A grid of milestones. They are flavor, not strategy. Earn them by typing; do not chase them deliberately.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Accuracy before speed</title>
    <link href="https://guerillatype.com/blog/accuracy-before-speed/" />
    <updated>2026-04-02T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/accuracy-before-speed/</id>
    <summary>Why every typing tutor tells you the same thing, and what it means in practice.</summary>
    <content type="html"><![CDATA[<p>Type slowly. Type without errors. Speed will come.</p>
<p>This is the oldest piece of typing advice and it is correct. It is also the easiest advice to ignore, because typing fast feels good and typing carefully feels slow. Most people slip back into typing-then-correcting within a week.</p>
<h2>The trade</h2>
<p>Every keystroke either reinforces a correct motion or reinforces a wrong one. There is no neutral keystroke. If you type at 70 wpm with 88% accuracy, you are practicing the wrong fingering on roughly one in eight keys. Over a thousand sessions, that becomes a habit your fingers will not forget.</p>
<p>The fix is to slow down until your error rate drops, then let speed return on its own.</p>
<h2>A target</h2>
<p>A reasonable working target is 96% accuracy. Below that, your sessions are practicing mistakes faster than they are practicing correct typing.</p>
<p>The <a href="/stats/">stats page</a> shows your accuracy on every session and your lifetime average. If the average sits below 96%, the next session should be slower than the last.</p>
<h2>Stop on Error</h2>
<p>There is a setting called <a href="/settings/">Stop on Error</a>. When it is on, the cursor will not move past a wrong key. The session refuses to continue until the error is fixed. It is uncomfortable.</p>
<p>That is the point. With the toggle on, you cannot fall into the type-then-correct rhythm. Every miss costs visible time, and the cost is paid in the moment instead of stored up for the backspace key.</p>
<p>Run a Stop on Error session for fifteen minutes a day for a week. Most typists see their unprompted accuracy rise by two or three points and stay there.</p>
<h2>Speed comes back</h2>
<p>The fear is that slowing down will lock in slow typing. It does not. Speed is built on top of correct fingering, and correct fingering is built first. Within a few weeks of disciplined accuracy work, the speed you used to have at 88% accuracy returns at 96%, and then climbs past it.</p>
<p>Type slow until you stop missing. Then keep typing. The pace will look after itself.</p>
]]></content>
  </entry>
  
  <entry>
    <title>Where to start</title>
    <link href="https://guerillatype.com/blog/where-to-start/" />
    <updated>2026-04-01T00:00:00Z</updated>
    <id>https://guerillatype.com/blog/where-to-start/</id>
    <summary>If you have never used a typing tutor before, do these three things in order.</summary>
    <content type="html"><![CDATA[<p>The first three sessions matter more than the next thirty. Make them count.</p>
<h2>1. Find the home row</h2>
<p>Put your left index finger on F. Put your right index finger on J. Both keys have a small bump. The other six fingers fall onto D-S-A and K-L-semicolon. The thumbs rest on the spacebar.</p>
<p>This is the home row. Your fingers should return to it between every reach. The whole curriculum is built on the assumption that you can find these eight keys without looking.</p>
<p>Open <a href="/practice/?lesson=1">Lesson 1</a>. It only uses F and J. Type for one minute. If you find yourself looking at the keyboard, slow down -- the goal of the first session is not speed; it is muscle memory.</p>
<h2>2. Walk through the foundation</h2>
<p>Lessons 1 through 9 introduce the home row, then add the top and bottom rows in small steps. Each lesson restricts the typing surface to the keys it has introduced, so you cannot accidentally drift into territory your fingers have not learned yet.</p>
<p>Clear them in order. The pass criteria are 90% accuracy at 18 wpm -- both numbers are deliberately low. They confirm you have the muscle memory, not that you are fast.</p>
<p>A clean run of lessons 1-9 takes about an hour. Spread it across a few sessions if your hands get tired.</p>
<h2>3. Take a real test</h2>
<p>After the foundation, switch to the <a href="/practice/?mode=time&amp;duration=60">practice surface</a> and type for one minute against the English-1k word list. The number you see at the end is your starting wpm. Write it down. The site stores it in your local profile, but knowing your starting point on paper helps you notice progress later.</p>
<p>A typical first benchmark is 25-35 wpm. That is fine. Touch typing comes with practice, and the curve is steep at first.</p>
<h2>What not to do</h2>
<p>Do not jump to long passages, code drills, or speed challenges yet. Do not memorize stretch words. Do not try to fix old habits in one session. The way to improve is to type a little every day -- the <a href="/stats/">streak counter</a> tracks that for you. Twenty minutes a day for two weeks beats four hours on a Saturday.</p>
<p>When the foundation feels easy, <a href="/lessons/">Stage 4 -- Letter Introduction</a> walks through every letter A-Z, one at a time. That is where touch-typing turns from &quot;I can find the keys&quot; into &quot;I do not think about the keys.&quot;</p>
]]></content>
  </entry>
  
</feed>
