<?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: Debpriyo Ghosal</title>
    <description>The latest articles on DEV Community by Debpriyo Ghosal (@devdebpriyo).</description>
    <link>https://dev.to/devdebpriyo</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3652268%2Ff06014e4-433f-463e-b0fe-a7a5581b252e.jpeg</url>
      <title>DEV Community: Debpriyo Ghosal</title>
      <link>https://dev.to/devdebpriyo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devdebpriyo"/>
    <language>en</language>
    <item>
      <title>I Built a Terminal Typing App Because I Was Tired of Leaving My Terminal</title>
      <dc:creator>Debpriyo Ghosal</dc:creator>
      <pubDate>Thu, 28 May 2026 16:53:55 +0000</pubDate>
      <link>https://dev.to/devdebpriyo/i-built-a-terminal-typing-app-because-i-was-tired-of-leaving-my-terminal-47eb</link>
      <guid>https://dev.to/devdebpriyo/i-built-a-terminal-typing-app-because-i-was-tired-of-leaving-my-terminal-47eb</guid>
      <description>&lt;p&gt;As developers, we spend an absurd amount of time inside the terminal.&lt;/p&gt;

&lt;p&gt;We write code there. We run builds there. We manage servers there. We debug there. Some of us practically live there.&lt;/p&gt;

&lt;p&gt;And yet, every time I wanted to practice typing, improve my speed, or simply warm up before a coding session, I had to leave the environment where I spend most of my day.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open a browser.&lt;/li&gt;
&lt;li&gt;Open a website.&lt;/li&gt;
&lt;li&gt;Wait for it to load.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ignore the distractions, and twenty other tabs competing for attention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It felt wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I decided to build the typing application I always wished existed - A typing test designed specifically for developers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One that runs entirely inside the terminal.&lt;/li&gt;
&lt;li&gt;One that feels fast.&lt;/li&gt;
&lt;li&gt;One that feels native.&lt;/li&gt;
&lt;li&gt;One that gets out of your way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That project became &lt;strong&gt;Klycky&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Most Typing Apps
&lt;/h2&gt;

&lt;p&gt;Don't get me wrong. Modern typing websites are fantastic. They're polished, feature-rich, and incredibly popular for good reason.&lt;/p&gt;

&lt;p&gt;But as someone who enjoys working with developer tools, I kept noticing a small friction point.&lt;/p&gt;

&lt;p&gt;They live in the browser. And browsers are distraction machines.&lt;/p&gt;

&lt;p&gt;You open a typing test -&amp;gt; You open another tab -&amp;gt; Twenty minutes disappear.&lt;/p&gt;

&lt;p&gt;I wanted something different.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Something lightweight.&lt;br&gt;
Something offline.&lt;br&gt;
Something I could launch instantly with a single command.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Like :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g klycky
klycky
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fql7wi3i8nc8pgmltkrmu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fql7wi3i8nc8pgmltkrmu.png" alt="Running Terminal Commands" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No accounts.&lt;br&gt;
No internet connection.&lt;br&gt;
No browser.&lt;br&gt;
Just typing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Unexpected Challenge
&lt;/h2&gt;

&lt;p&gt;Building a terminal application sounds simple until you actually try to make one feel &lt;strong&gt;polished&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most terminal applications redraw the screen frequently. When that happens, users often experience flickering, tearing, or visual instability.&lt;/p&gt;

&lt;p&gt;For a typing application, that's a problem. Typing requires &lt;strong&gt;rhythm. Flow. Responsiveness.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The interface needs to disappear and let the user focus.&lt;/p&gt;

&lt;p&gt;So I spent a surprising amount of time working on rendering performance. Klycky uses a region-based rendering approach where different parts of the screen update independently.&lt;/p&gt;

&lt;p&gt;Static elements are rendered once. Dynamic elements update only when necessary.&lt;/p&gt;

&lt;p&gt;The result is a smooth experience with virtually no visible flickering. Something that feels closer to a modern desktop application than a traditional terminal tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Wanted Klycky To Feel Like
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xqmdoy07fndgcdi1032.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xqmdoy07fndgcdi1032.png" alt="Typing Area" width="799" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wasn't trying to create the most feature-packed typing application. I was trying to create the one I personally wanted to use every day.&lt;/p&gt;

&lt;p&gt;That meant focusing on a few principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast startup&lt;/li&gt;
&lt;li&gt;Zero distractions&lt;/li&gt;
&lt;li&gt;Beautiful terminal aesthetics&lt;/li&gt;
&lt;li&gt;Fully offline operation&lt;/li&gt;
&lt;li&gt;Developer-friendly workflows&lt;/li&gt;
&lt;li&gt;Instant keyboard-driven control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over time, that evolved into features like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple typing modes&lt;/li&gt;
&lt;li&gt;Live WPM and accuracy tracking&lt;/li&gt;
&lt;li&gt;Session history&lt;/li&gt;
&lt;li&gt;Personal best records&lt;/li&gt;
&lt;li&gt;Command palette support&lt;/li&gt;
&lt;li&gt;Customizable themes&lt;/li&gt;
&lt;li&gt;Focus and zen modes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of my favorite additions was &lt;strong&gt;theming&lt;/strong&gt;.&lt;br&gt;
Developers care a lot about how their environment feels.&lt;/p&gt;

&lt;p&gt;So Klycky includes themes inspired by communities many developers already love:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Catppuccin Mocha — Warm pastel colors on dark background&lt;/li&gt;
&lt;li&gt;Catppuccin Frappé — Muted pastels on a mid-tone base&lt;/li&gt;
&lt;li&gt;Tokyo Night — Cool blue and purple tones&lt;/li&gt;
&lt;li&gt;Nord — Arctic-inspired color palette&lt;/li&gt;
&lt;li&gt;Gruvbox Dark — Retro warm color scheme&lt;/li&gt;
&lt;li&gt;Monokai Pro — Classic vibrant syntax colors&lt;/li&gt;
&lt;li&gt;GitHub Dark — Clean, modern dark theme&lt;/li&gt;
&lt;li&gt;Dracula — Bold purples and vivid greens&lt;/li&gt;
&lt;li&gt;Serika Dark — Monkeytype-inspired dark gold accent&lt;/li&gt;
&lt;li&gt;Serika Light — Monkeytype-inspired light variant&lt;/li&gt;
&lt;li&gt;Solarized Dark — Ethan Schoonover's precision palette&lt;/li&gt;
&lt;li&gt;Rosé Pine — Soho vibes with muted rose tones&lt;/li&gt;
&lt;li&gt;Carbon — IBM Carbon design system colors&lt;/li&gt;
&lt;li&gt;Olive — Earthy greens and natural tones&lt;/li&gt;
&lt;li&gt;Bouquet — Soft florals and lavender hues&lt;/li&gt;
&lt;li&gt;Café — Warm coffee and cream palette&lt;/li&gt;
&lt;li&gt;Cyberspace — Neon greens and cyberpunk glow&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Screenshots of some of the themes attached below :&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0v6vgyr5yrc1c979iokw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0v6vgyr5yrc1c979iokw.png" alt="Gruvbox theme" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6oyojhulzfki5p6itf92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6oyojhulzfki5p6itf92.png" alt="Serika Dark theme" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffrerc8wi7pis8adyiemk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffrerc8wi7pis8adyiemk.png" alt="Olive theme" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ns8vyzpn20qm6rjb8bl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ns8vyzpn20qm6rjb8bl.png" alt="Catppuccin Mocha theme" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wbpc80ys7m43vssqxl1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wbpc80ys7m43vssqxl1.png" alt="Nord theme" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And several more planned for the future.&lt;/p&gt;
&lt;h2&gt;
  
  
  Open Source From Day One
&lt;/h2&gt;

&lt;p&gt;Klycky is completely open source.&lt;/p&gt;

&lt;p&gt;Not because open source is trendy.&lt;br&gt;
Because developer tools become better when the people who use them can shape them.&lt;/p&gt;

&lt;p&gt;In fact, some of my favorite improvements have come directly from users opening issues, suggesting themes, requesting features, and sharing feedback.&lt;/p&gt;

&lt;p&gt;Seeing someone discover a project you built, install it, use it, and then take the time to contribute ideas is one of the most rewarding parts of building software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/DevDebpriyo/klycky" rel="noopener noreferrer"&gt;Github Repo 🔗&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Learned Building It
&lt;/h2&gt;

&lt;p&gt;This project taught me something interesting.&lt;/p&gt;

&lt;p&gt;The hardest part of software isn't always writing code. Sometimes it's identifying a tiny annoyance that everyone accepts and deciding it's worth fixing.&lt;/p&gt;

&lt;p&gt;Leaving the terminal to practice typing isn't a huge problem. Nobody's losing sleep over it.&lt;/p&gt;

&lt;p&gt;But thousands of useful tools exist because someone noticed a small friction point and thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"There has to be a better way."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Klycky is my attempt at making one small part of the developer experience a little better.&lt;/p&gt;
&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;If you're curious, you can install it directly from npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g klycky
klycky
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or run it without installing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx klycky
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I'd genuinely love feedback from developers who spend most of their time in the terminal.&lt;/p&gt;

&lt;p&gt;What features would make a typing application indispensable for your workflow? What would you want to see next?&lt;/p&gt;

&lt;p&gt;I'm building Klycky in the open, and every suggestion helps shape where it goes from here.&lt;/p&gt;

&lt;p&gt;Happy typing. ⌨️&lt;/p&gt;

&lt;h2&gt;
  
  
  Find Me Across the Web
&lt;/h2&gt;

&lt;p&gt;-💬 DEV.to: &lt;a href="https://dev.to/devdebpriyo"&gt;@devdebpriyo&lt;/a&gt;&lt;br&gt;
-🧠 Hashnode: &lt;a href="https://hashnode.com/@deb-builds" rel="noopener noreferrer"&gt;@deb-builds&lt;/a&gt;&lt;br&gt;
-🐦 X: &lt;a href="https://x.com/deb_isadev" rel="noopener noreferrer"&gt;@deb_isadev&lt;/a&gt;&lt;br&gt;
-💻 GitHub: &lt;a href="https://github.com/DevDebpriyo" rel="noopener noreferrer"&gt;@DevDebpriyo&lt;/a&gt;&lt;br&gt;
-🔗 LinkedIn: &lt;a href="https://www.linkedin.com/in/debpriyo-ghosal-0759a92a6/" rel="noopener noreferrer"&gt;Debpriyo Ghosal&lt;/a&gt;&lt;br&gt;
-🌐 Portfolio: &lt;a href="https://debpriyo.is-a.dev/" rel="noopener noreferrer"&gt;debpriyo.is-a.dev&lt;/a&gt;&lt;br&gt;
-🧭 All links: &lt;a href="https://debpriyo.is-a.dev/links" rel="noopener noreferrer"&gt;Links&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>cli</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
