{"slug": "i-built-a-typing-trainer-with-an-ai-no-code-tool-31-sub-levels-per-bigram-error", "title": "I built a typing trainer with an AI no-code tool — 31 sub-levels, per-bigram error tracking, and why \"net WPM\" matters", "summary": "A first-year engineering physics student built WorkThoseKeys, a typing trainer with 31 sub-levels and per-bigram error tracking, using the AI app builder Lovable instead of hand-coding. The tool separates keyboard layout from content language, offers a book mode with public-domain texts, and includes an AI coach that provides plain-language advice based on typing data.", "body_md": "I'm a first-year engineering physics student who also teaches sailing on the side, which meant this summer I had zero interest in learning to code from scratch just to build one tool. So I built WorkThoseKeys (workthosekeys.com) using Lovable — a prompt-based AI app builder — instead of hand-writing it. (It was TypeCast, then Typefast, before I landed on this name — long story.)\n\nA few things I actually had to think hard about:\n\nHome-row-first, but broken into 31 sub-levels, not 8. Eight top-level stages, each split into sub-levels (1a through 8c) that introduce one finger at a time before combining them. Every level ends the same way: warmup, weak points, integration, progress check. It's slower to get to \"fun\" content, but shortcuts here just get relearned badly later.\n\nWeak-spot drills are built from per-character AND per-bigram error rates, not a fixed word list. The app tracks which specific letter pairs you fumble, not just which letters, and builds practice sessions around that. Two people with the same overall accuracy can have completely different weak points.\n\nKeyboard layout and content language are independent settings. Most typing trainers assume \"Swedish keyboard\" means \"Swedish words.\" I split those apart — Swedish (å, ä, ö) and US layouts, on-screen keyboard with live next-key highlighting, layout chosen separately from what language you're typing.\n\nWhat \"net WPM\" actually means. Raw words-per-minute rewards fast sloppy typing. Net WPM subtracts errors, which is a more honest number but a less flattering one.\n\nThere's also an AI coach that turns your typing data into actual tips — not just \"you're at 65% on this bigram,\" but plain-language advice on what to fix. This is separate from the weak-spot drill engine (which builds practice sessions from your errors); the coach is the layer that explains them back to you.\n\nOn top of that there's a book mode I'm fairly proud of — type real public-domain literature segment by segment, position saved between sessions, ranging from a three-stanza Emily Dickinson poem to the entirety of Moby-Dick (1.19 million characters, for anyone who wants a long-term project).\n\nEverything's free, and there's a full guest mode — no signup, nothing stored, all lessons/drills/books work anyway. Sign in with Google only if you want your stats and streaks to persist.\n\nCurious what other devs think about whether building with an AI tool changes what corners you're tempted to cut versus writing it by hand. Happy to answer questions about the Lovable build process specifically.", "url": "https://wpnews.pro/news/i-built-a-typing-trainer-with-an-ai-no-code-tool-31-sub-levels-per-bigram-error", "canonical_source": "https://dev.to/claes_jrudd_21e68cfe9296/i-built-a-typing-trainer-with-an-ai-no-code-tool-31-sub-levels-per-bigram-error-tracking-and-o6i", "published_at": "2026-08-14 16:17:28+00:00", "updated_at": "2026-08-14 17:06:01.726032+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["WorkThoseKeys", "Lovable", "Emily Dickinson", "Moby-Dick"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-typing-trainer-with-an-ai-no-code-tool-31-sub-levels-per-bigram-error", "markdown": "https://wpnews.pro/news/i-built-a-typing-trainer-with-an-ai-no-code-tool-31-sub-levels-per-bigram-error.md", "text": "https://wpnews.pro/news/i-built-a-typing-trainer-with-an-ai-no-code-tool-31-sub-levels-per-bigram-error.txt", "jsonld": "https://wpnews.pro/news/i-built-a-typing-trainer-with-an-ai-no-code-tool-31-sub-levels-per-bigram-error.jsonld"}}