<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Typre</title>
    <description>The latest articles on DEV Community by Typre (@typre).</description>
    <link>https://dev.to/typre</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4083534%2Fb5e78adb-8046-4fcd-835e-42684e2c940a.png</url>
      <title>DEV Community: Typre</title>
      <link>https://dev.to/typre</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/typre"/>
    <language>en</language>
    <item>
      <title>What's still worth practising when AI writes most of your code</title>
      <dc:creator>Typre</dc:creator>
      <pubDate>Thu, 17 Sep 2026 11:40:40 +0000</pubDate>
      <link>https://dev.to/typre/whats-still-worth-practising-when-ai-writes-most-of-your-code-2jkj</link>
      <guid>https://dev.to/typre/whats-still-worth-practising-when-ai-writes-most-of-your-code-2jkj</guid>
      <description>&lt;p&gt;Most of my code now starts as something a model wrote. My job is reading it, checking it and fixing it. Those skills don't build themselves — so I practise them on purpose.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Read code fast
Good readers see shapes, not characters: a guard clause, a retry loop, a lookup map.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drill: type out real, idiomatic code in your language. Typing makes you see every character once.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Spot wrong code
Generated code compiles and looks right. When it's wrong, it's wrong in the logic.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drill: write small functions from memory — debounce, binary search — then compare with a correct version.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Edit without friction
The work is hundreds of tiny edits a day. Friction is mostly mechanical.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drill: learn editor shortcuts until they're reflex, and practise typing brackets and operators specifically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Learn syntax (beginners)
You can get working code without ever learning syntax. Then you can't judge the code you get.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drill: retype short, correct snippets for a few minutes a day.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ask precisely
Prompting well is writing a clear ticket.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drill: write one sentence saying what "done" looks like before you ask.&lt;/p&gt;

&lt;p&gt;I built Typre for drills 1, 3 and 4: 2,590 real snippets in 14 languages, VS Code and Vim shortcut drills, and chess you play by typing code. Free, no account.&lt;/p&gt;

&lt;p&gt;What are you practising on purpose these days?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I added Chess to my typing-practice app — you move pieces by writing code</title>
      <dc:creator>Typre</dc:creator>
      <pubDate>Sat, 05 Sep 2026 08:38:11 +0000</pubDate>
      <link>https://dev.to/typre/i-added-chess-to-my-typing-practice-app-you-move-pieces-by-writing-code-2lf</link>
      <guid>https://dev.to/typre/i-added-chess-to-my-typing-practice-app-you-move-pieces-by-writing-code-2lf</guid>
      <description>&lt;p&gt;Typre is a free web app for practicing typing code in 14 languages. I just shipped a feature that had no business working as well as it does: &lt;strong&gt;chess, where every move is a real command you type&lt;/strong&gt;, not a drag-and-drop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moves are code, literally
&lt;/h2&gt;

&lt;p&gt;Pick your language, and moves look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;board&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;e2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;e4&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;board&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;move&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;e2&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;e4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Castling, captures, promotions — all typed, all validated against real chess rules (powered by &lt;code&gt;chess.js&lt;/code&gt; under the hood).&lt;/p&gt;

&lt;h2&gt;
  
  
  The moments that matter got real effects
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Castling&lt;/strong&gt; — king and rook slide in a staggered one-two beat, then a fire/gold shield blooms around the king.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Promotion&lt;/strong&gt; — the pawn dissolves from the bottom up and the new piece sweeps in with a burst of sparks and a warm glow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checkmate&lt;/strong&gt; — the losing king slumps and raises two little pixel-art flags in surrender.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All rendered from raw SVG path data — same pixel-art set lichess uses, no image assets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Play a bot, pass-and-play, or go online and actually compete
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Three bot difficulty levels, or local two-player on one keyboard — no account needed, just show up and play.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create a free account and it gets more interesting&lt;/strong&gt;: online games are rated, and there's a real ELO leaderboard. Your rank is public, your rating moves with every win and loss, and it only counts games against other signed-in humans — no farming bots for points.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you just want to poke at it, no signup required. But if you want to actually climb something, &lt;strong&gt;&lt;a href="https://typre.dev" rel="noopener noreferrer"&gt;sign up at typre.dev&lt;/a&gt;&lt;/strong&gt; and your first rated game is one click away.&lt;/p&gt;

&lt;p&gt;Happy to answer questions about the implementation — the promotion crossfade bug alone (SVG &lt;code&gt;clip-path&lt;/code&gt; sequencing to avoid two different piece silhouettes rendering half-visible at once) was a fun one to chase down.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>webdevs</category>
      <category>react</category>
    </item>
    <item>
      <title>Every typing site makes you type prose. I built one that makes you type code.</title>
      <dc:creator>Typre</dc:creator>
      <pubDate>Sun, 30 Aug 2026 05:50:08 +0000</pubDate>
      <link>https://dev.to/typre/every-typing-site-makes-you-type-prose-i-built-one-that-makes-you-type-code-1b0d</link>
      <guid>https://dev.to/typre/every-typing-site-makes-you-type-prose-i-built-one-that-makes-you-type-code-1b0d</guid>
      <description>&lt;p&gt;I have been typing for twenty years and I still slow down on =&amp;gt;.&lt;/p&gt;

&lt;p&gt;Not on words. Words are fine. It is {}, [], &amp;amp;&amp;amp;, ::, ?., !== — the keys my fingers only ever meet inside code, and never inside the paragraphs every typing trainer feeds you.&lt;/p&gt;

&lt;p&gt;So I built the one I wanted: Typre. It only serves real code.&lt;/p&gt;

&lt;p&gt;Free, no account needed, open source.&lt;/p&gt;

&lt;p&gt;What it actually is&lt;br&gt;
2,170 hand-picked snippets across 14 languages, in 15, 30 and 60 second runs.&lt;/p&gt;

&lt;p&gt;Everything is real code you would plausibly write — a Go error check, a SQL join, a React hook, a Rust match. Nothing generated, nothing padded with filler to hit a character count.&lt;/p&gt;

&lt;p&gt;const results = await Promise.all(&lt;br&gt;
  urls.map((url) =&amp;gt; fetch(url).then((r) =&amp;gt; r.json())),&lt;br&gt;
)&lt;br&gt;
That is a snippet. You type it exactly, brackets and all.&lt;/p&gt;

&lt;p&gt;Four things I made sure to get right&lt;br&gt;
No repeated snippets. Snippets come from a shuffle bag — you go through the entire pool before seeing any of them twice, and that survives a page reload. Most trainers pick at random, so you hit the same line three times in ten runs and start typing from memory instead of reading.&lt;/p&gt;

&lt;p&gt;A separate pool per run length. A 15 second run gives you one short idiom, not the first three lines of something longer that you never get to finish. Each language has its own short, medium and long pools.&lt;/p&gt;

&lt;p&gt;A drill of nothing but punctuation. {} [] &amp;lt;&amp;gt; | ~ ^ &amp;amp;&amp;amp; =&amp;gt; !== ?. ?? &amp;lt;=&amp;gt; and nothing else. This is the one I use most.&lt;/p&gt;

&lt;p&gt;A shortcut trainer. 61 VS Code and Vim shortcuts, where you actually press the chord and it checks the modifiers. Vim sequences like dd, gg, :wq are handled as sequences, not chords.&lt;/p&gt;

&lt;p&gt;Plus the usual: WPM, raw WPM, accuracy, consistency, the characters you mistype most, XP and levels, a daily streak, per-language leaderboards, real-time races against another person, and challenge links to beat someone's score.&lt;/p&gt;

&lt;p&gt;Two technical decisions worth explaining&lt;br&gt;
Every snippet ships in the bundle. All 2,170 of them. That is most of why the JavaScript is 269 KB gzipped rather than something smaller — and it is deliberate. It means the whole app works with no network at all. Install it, get on a plane, keep practising. A typing trainer that needs a round trip to give you the next line is a typing trainer that stutters.&lt;/p&gt;

&lt;p&gt;Syntax highlighting is real TextMate grammars, loaded per language. Shiki, the engine VS Code uses. Naively imported it costs about 11 MB across 309 files. Using createHighlighterCore with the JavaScript regex engine instead of the Oniguruma WASM build, plus a dynamic import per language, brings first load down to roughly 69 KB — core, one grammar, one theme. You only pay for the languages you actually open.&lt;/p&gt;

&lt;p&gt;What is not good about it&lt;br&gt;
Fair is fair:&lt;/p&gt;

&lt;p&gt;WPM is measured client-side. Anyone with DevTools can submit a fake score for their own account. The database rejects impossible values and RLS stops you writing as someone else, but there is no server-side verification of a run. Treat the leaderboard as a bit of fun, not a record book.&lt;br&gt;
It needs a physical keyboard. On a phone there is nothing to practise on, so it says so rather than pretending.&lt;br&gt;
It has 2 users. I am one of them.&lt;br&gt;
What I would like from you&lt;br&gt;
Sixty seconds and an honest opinion.&lt;/p&gt;

&lt;p&gt;Not "nice project" — I mean the thing that annoyed you. The snippet that felt wrong for the language. The metric you did not understand. The moment you almost closed the tab.&lt;/p&gt;

&lt;p&gt;There is a report button inside the app: it captures the last few console errors, the build hash, your viewport and browser, and mails it to me the second you hit send. One click, no form, no account.&lt;/p&gt;

&lt;p&gt;typre.dev — and the source is MIT if you want to see how any of it works.&lt;/p&gt;

&lt;p&gt;Built with React 19, TypeScript, Vite, Tailwind v4, Zustand, Shiki and Supabase.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>react</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Typre.dev – A code typing platform to boost speed &amp; master syntax in 14 languages</title>
      <dc:creator>Typre</dc:creator>
      <pubDate>Tue, 18 Aug 2026 16:10:45 +0000</pubDate>
      <link>https://dev.to/typre/typredev-a-code-typing-platform-to-boost-speed-master-syntax-in-14-languages-1aaa</link>
      <guid>https://dev.to/typre/typredev-a-code-typing-platform-to-boost-speed-master-syntax-in-14-languages-1aaa</guid>
      <description>&lt;p&gt;Hey DEV Community! 👋&lt;/p&gt;

&lt;p&gt;Whether you are just writing your first lines of code or spent thousands of hours inside VS Code, one thing is clear: &lt;strong&gt;typing programming syntax is completely different from typing regular prose.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Special characters like &lt;code&gt;{ } [ ] &amp;lt; &amp;gt; =&amp;gt; ; ::&lt;/code&gt; can slow down your coding rhythm and break your flow state.&lt;/p&gt;

&lt;p&gt;That's why I created &lt;strong&gt;Typre.dev&lt;/strong&gt; – a minimal, fast, and interactive code typing platform built to help both beginners and experienced developers master code syntax and typing speed!&lt;/p&gt;




&lt;h3&gt;
  
  
  🎯 Who is Typre.dev for?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. 🐣 Programming Beginners
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Master Syntax Faster:&lt;/strong&gt; Learn where special characters are on the keyboard without staring at your keys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build Muscle Memory:&lt;/strong&gt; Get comfortable with real code structures in 14 programming languages before diving deep into complex projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. ⚡ VS Code &amp;amp; IDE Power Users
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Regain &amp;amp; Upgrade Speed:&lt;/strong&gt; Flex your fingers and sharpen your muscle memory to keep up with your brain's pace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stay in the Flow State:&lt;/strong&gt; Eliminate those subtle micro-pauses when typing tricky syntax or long method signatures.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ✨ Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;💻 &lt;strong&gt;14 Languages Supported:&lt;/strong&gt; Practice real syntax in JavaScript, Python, C#, C++, Go, Rust, TypeScript, and more!&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Real-time Stats:&lt;/strong&gt; Track your WPM (Words Per Minute), accuracy, and consistency.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Clean &amp;amp; Minimal UI:&lt;/strong&gt; Zero distractions, fast loading, designed for pure focus.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔗 Give it a try!
&lt;/h3&gt;

&lt;p&gt;Check it out at &lt;strong&gt;&lt;a href="https://www.typre.dev/" rel="noopener noreferrer"&gt;https://www.typre.dev/&lt;/a&gt;&lt;/strong&gt; and let me know what you think!&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What languages or specific code snippet categories (e.g., LeetCode patterns, algorithms) should I add next?&lt;/li&gt;
&lt;li&gt;How does your code typing WPM compare to your regular prose WPM?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Happy coding! 💻✨&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
