<?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: Nitiksh </title>
    <description>The latest articles on DEV Community by Nitiksh  (@nitiksh).</description>
    <link>https://dev.to/nitiksh</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%2F1206523%2Fc618d38f-2a1f-4710-be60-19a21df2ea93.jpg</url>
      <title>DEV Community: Nitiksh </title>
      <link>https://dev.to/nitiksh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nitiksh"/>
    <language>en</language>
    <item>
      <title>You uploaded your passport to a website last week. I did too.</title>
      <dc:creator>Nitiksh </dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:49:21 +0000</pubDate>
      <link>https://dev.to/nitiksh/you-uploaded-your-passport-to-a-website-last-week-i-did-too-55e0</link>
      <guid>https://dev.to/nitiksh/you-uploaded-your-passport-to-a-website-last-week-i-did-too-55e0</guid>
      <description>&lt;p&gt;Think about the last time you used a free PDF converter. For most of us it was within the last week, and it took about ten seconds. Bank statement, ID scan, a signed contract. Drag, drop, download, done.&lt;/p&gt;

&lt;p&gt;In those ten seconds, your file left your computer. That's the part nobody thinks about. Online converters work by uploading your document to someone else's server and processing it there. Your passport scan now sits on a machine you don't control, run by people you can't name, possibly in a country you couldn't point to on a map.&lt;/p&gt;

&lt;p&gt;I did this for years without thinking. Then I started reading about what actually happens to those files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three ways it goes wrong
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;They're careless.&lt;/strong&gt; In July 2024, Cybernews found the cloud storage of two converter services, PDF Pro and Help PDF, sitting wide open. 89,062 files. Passports, IDs, certificates, contracts. Nobody hacked anything; the door was just open. Documents like that are enough to take out a loan or rent an apartment in your name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They're the trap.&lt;/strong&gt; In March 2025, the FBI's Denver office warned about scam converter sites. They look exactly like the real thing (one cloned PDF Candy down to the design and URL), return your file with hidden malware inside, and quietly scan everything you upload for IDs, banking details, passwords, and crypto seed phrases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They're "fine," and you still can't verify it.&lt;/strong&gt; Plenty of sites promise to delete your files after a few hours. Maybe they do. But you can't audit their servers, you don't know where they're hosted, and you have no idea who has access. For health or finance documents, "trust us" isn't good enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  The leak nobody mentions: metadata
&lt;/h2&gt;

&lt;p&gt;Here's the one that surprised me. Photos and PDFs carry hidden baggage: usernames, software details, device IDs, sometimes GPS coordinates. An arXiv study found researchers leaking exactly this kind of data, including GPS pointing at home addresses. You upload a photo to strip its background and hand over your location with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the experts actually say
&lt;/h2&gt;

&lt;p&gt;Kaspersky's advice on this is refreshingly blunt: no online converter can guarantee confidentiality, so don't convert sensitive documents online. Notice the advice isn't "find a better converter site." It's "stop uploading."&lt;/p&gt;

&lt;h2&gt;
  
  
  So I stopped uploading
&lt;/h2&gt;

&lt;p&gt;I built my file toolkit to run entirely on my own computer. The engines are the boring, reliable open-source ones: FFmpeg for video and audio, ImageMagick for images, qpdf and Poppler for PDFs, headless LibreOffice for documents. No server, no account, no upload. The file never leaves the machine.&lt;/p&gt;

&lt;p&gt;It does the jobs I used to upload for: Word, Excel and PowerPoint to PDF. Merging PDFs. Pictures to PDF. Adding or removing PDF passwords. Stripping GPS and EXIF data from images. Stripping author info from PDFs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local isn't magic (honest caveats)
&lt;/h2&gt;

&lt;p&gt;Running offline doesn't make you invincible. If your own computer is compromised, local tools don't save you. Download software only from official sources. Keep the underlying engines updated. And PDF-to-Word conversion through LibreOffice can mangle complex layouts, so check the output before you send it anywhere important.&lt;/p&gt;

&lt;p&gt;The point was never that offline is perfect. It's that it removes an entire category of risk: the stranger's server. That's a trade I'll take every time.&lt;/p&gt;

&lt;p&gt;It's called KinoFlux Editor. Free, for Windows and macOS.&lt;/p&gt;

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

&lt;p&gt;Download: &lt;a href="https://ntxm.org/products/kinoflux/videoeditor/" rel="noopener noreferrer"&gt;https://ntxm.org/products/kinoflux/videoeditor/&lt;/a&gt;&lt;br&gt;
Also on the Microsoft Store: &lt;a href="https://apps.microsoft.com/detail/9nxkr2gv1wm7?hl=en-US&amp;amp;gl=EG" rel="noopener noreferrer"&gt;https://apps.microsoft.com/detail/9nxkr2gv1wm7?hl=en-US&amp;amp;gl=EG&lt;/a&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>showdev</category>
      <category>tools</category>
    </item>
    <item>
      <title>Typing drills are boring because the words mean nothing</title>
      <dc:creator>Nitiksh </dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:49:05 +0000</pubDate>
      <link>https://dev.to/nitiksh/typing-drills-are-boring-because-the-words-mean-nothing-1ofp</link>
      <guid>https://dev.to/nitiksh/typing-drills-are-boring-because-the-words-mean-nothing-1ofp</guid>
      <description>&lt;p&gt;"the quick brown fox jumps over the lazy dog." I have typed that sentence maybe a thousand times across a dozen typing tutors. It's the typing equivalent of elevator music.&lt;/p&gt;

&lt;p&gt;The problem with most typing practice isn't the method. It's the material. Random words and pangrams give your fingers a workout but your brain checks out after three minutes. And then you stop practicing, because why wouldn't you.&lt;/p&gt;

&lt;p&gt;What actually kept me practicing was typing real books. A chapter of Sherlock Holmes. An essay by Orwell. Your brain stays engaged because there's a story pulling you forward, and your fingers get faster almost as a side effect. You're not drilling. You're reading with your hands.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8b38kw89q3ppb2fihao1.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8b38kw89q3ppb2fihao1.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I built a typing tutor around that idea. Instead of generated exercises, you type passages from classic literature. There's a Stories mode where you work through actual books, chapter by chapter. Your speed builds while you're busy finding out what happens next.&lt;/p&gt;

&lt;h2&gt;
  
  
  It respects your time and attention
&lt;/h2&gt;

&lt;p&gt;No account. No ads popping up between lessons. No gamified nonsense trying to keep you hooked with streaks and confetti. Just you, a good passage, and your words-per-minute going up.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fli58ittxskusmx9brz2x.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fli58ittxskusmx9brz2x.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It runs as a web app you can open instantly, and as an offline Windows app for when you want zero distractions. Your progress stays on your machine.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7e8qtd2hyzkk3z37syfk.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7e8qtd2hyzkk3z37syfk.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There's also practice for code symbols and brackets, because half the developers I know type prose fine and then fall apart on a line of Rust.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it's not
&lt;/h2&gt;

&lt;p&gt;It's not a kids' game with cartoon mascots, and it's not a corporate training module. If you want typing games with explosions, those exist and they're fun. This is for people who want to get genuinely fast at typing real text.&lt;/p&gt;

&lt;h2&gt;
  
  
  The details
&lt;/h2&gt;

&lt;p&gt;It's called TypeMaster. Free, web app plus offline Windows app. If you've ever wanted an excuse to reread Pride and Prejudice, now you can do it at 90 words per minute.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxzaq4vqzzgts35swiy56.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxzaq4vqzzgts35swiy56.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Web app: &lt;a href="https://typemaster.ntxm.org" rel="noopener noreferrer"&gt;https://typemaster.ntxm.org&lt;/a&gt;&lt;br&gt;
Windows app: &lt;a href="https://typemaster.ntxm.org/download" rel="noopener noreferrer"&gt;https://typemaster.ntxm.org/download&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>learning</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I wanted a video player that looks like it was made this decade</title>
      <dc:creator>Nitiksh </dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:48:55 +0000</pubDate>
      <link>https://dev.to/nitiksh/i-wanted-a-video-player-that-looks-like-it-was-made-this-decade-5ah3</link>
      <guid>https://dev.to/nitiksh/i-wanted-a-video-player-that-looks-like-it-was-made-this-decade-5ah3</guid>
      <description>&lt;p&gt;Most video players feel like they were designed in 2008 and never revisited. Cluttered menus, tiny buttons, a preferences dialog with forty tabs. Double-clicking a video shouldn't feel like booting up old software.&lt;/p&gt;

&lt;p&gt;I wanted three things: it opens instantly, it looks clean, and the controls get out of the way while I watch. That's the whole brief.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fast first
&lt;/h2&gt;

&lt;p&gt;The first thing you notice is the speed. It's a native app, so there's no loading screen, no splash, no "preparing your experience." You double-click a file and the video is playing. That sounds like a small thing until you go back to a player that takes three seconds to open and remember how annoying three seconds is, twenty times a day.&lt;/p&gt;

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

&lt;p&gt;Everything stays snappy while you watch, too. Scrubbing through a long video doesn't stutter or show you a spinning wheel. It just follows your cursor.&lt;/p&gt;

&lt;h2&gt;
  
  
  A UI that disappears
&lt;/h2&gt;

&lt;p&gt;The interface is there when you need it and gone when you don't. Big video, a clean control bar, nothing else competing for your eyes. While the video plays, even the controls fade away, leaving just the picture.&lt;/p&gt;

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

&lt;p&gt;Keyboard shortcuts work the way your fingers expect: Space pauses, arrows skip, F goes fullscreen, M mutes. No settings menu archaeology required.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it doesn't do
&lt;/h2&gt;

&lt;p&gt;No playlists. No streaming. No format conversion. No skins, no themes, no plugins. If you need to convert a video, that's what my other app (KinoFlux Editor) is for.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F83fc45wywfsm44sdg7v7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F83fc45wywfsm44sdg7v7.webp" alt=" " width="800" height="467"&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/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feckuvkp7r59st40g229d.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feckuvkp7r59st40g229d.webp" alt=" " width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This player has exactly one job: play the file you opened, fast and pleasantly. Everything that doesn't serve that job got cut.&lt;/p&gt;

&lt;h2&gt;
  
  
  The details
&lt;/h2&gt;

&lt;p&gt;It's called KinoFlux Video Player. Free, for Windows and macOS (Apple Silicon). No account, no telemetry, no ads.&lt;/p&gt;

&lt;p&gt;Sometimes the best feature list is a short one.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://www.ntxm.org/products/kinoflux/videoplayer/" rel="noopener noreferrer"&gt;https://www.ntxm.org/products/kinoflux/videoplayer/&lt;/a&gt;&lt;br&gt;
Also on the Microsoft Store: &lt;a href="https://apps.microsoft.com/detail/9pjc13fsd9fj?hl=en-US&amp;amp;gl=EG" rel="noopener noreferrer"&gt;https://apps.microsoft.com/detail/9pjc13fsd9fj?hl=en-US&amp;amp;gl=EG&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>tools</category>
      <category>windows</category>
    </item>
    <item>
      <title>I stopped uploading my files to random websites</title>
      <dc:creator>Nitiksh </dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:48:21 +0000</pubDate>
      <link>https://dev.to/nitiksh/i-stopped-uploading-my-files-to-random-websites-p4a</link>
      <guid>https://dev.to/nitiksh/i-stopped-uploading-my-files-to-random-websites-p4a</guid>
      <description>&lt;p&gt;A few months ago I needed to compress a video so I could email it. Small job. Should take a minute.&lt;/p&gt;

&lt;p&gt;Instead I spent twenty minutes auditioning websites. One wanted me to create an account. One had a 100MB limit unless I paid. One compressed it and stamped a watermark on it. One just looked sketchy enough that I didn't want to give it my file at all.&lt;/p&gt;

&lt;p&gt;And this wasn't a one-time thing. Every month there's something: merge two PDFs, pull the audio out of a video, resize a batch of images, convert a Word doc to PDF. Each time, the same dance with another website I've never heard of, handing my files to a server I don't control.&lt;/p&gt;

&lt;p&gt;So I started collecting these jobs into one offline toolkit. It now does 66 things: trim, compress, convert and merge videos. Extract audio. Resize and convert images. Merge, split, compress and password-protect PDFs. Convert Word, Excel and PowerPoint files. Check what metadata your files are leaking.&lt;/p&gt;

&lt;p&gt;Everything runs on your own computer. No uploads, no accounts, no watermarks, no subscriptions. You pick a file, pick one job, and it does it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why offline matters more than I expected
&lt;/h2&gt;

&lt;p&gt;I built it for convenience, but privacy turned out to be the bigger deal. Think about what people upload to these converter sites: job applications, medical forms, family videos, unreleased work. All of it sitting on someone else's server, in a country you don't know, under terms you didn't read.&lt;/p&gt;

&lt;p&gt;An offline tool sidesteps the whole question. Your file never leaves your machine, so there's nothing to trust and nothing to leak.&lt;/p&gt;

&lt;p&gt;It's also faster in practice. No upload wait, no queue, no "your file is ready" email. The 2GB video compresses while you watch the progress bar, not while you watch an upload bar first.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it deliberately doesn't do
&lt;/h2&gt;

&lt;p&gt;It's not a timeline editor. If you want to cut together a short film with transitions and color grading, use DaVinci Resolve or CapCut. This toolkit is for the other kind of work: the single-purpose jobs. One file in, one job, done.&lt;/p&gt;

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

&lt;p&gt;I found that most of my actual media chores are like that. I don't need a timeline to compress a video for email. I need a button.&lt;/p&gt;

&lt;h2&gt;
  
  
  The details
&lt;/h2&gt;

&lt;p&gt;It's called KinoFlux Editor. Free, for Windows and macOS (Apple Silicon). Native app, no Electron, which is why it opens instantly instead of showing you a loading screen.&lt;/p&gt;

&lt;p&gt;If there's a file chore you do regularly that it doesn't cover yet, tell me. The toolkit grows based on what people actually ask for.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://ntxm.org/products/kinoflux/videoeditor/" rel="noopener noreferrer"&gt;https://ntxm.org/products/kinoflux/videoeditor/&lt;/a&gt;&lt;br&gt;
Also on the Microsoft Store: &lt;a href="https://apps.microsoft.com/detail/9nxkr2gv1wm7?hl=en-US&amp;amp;gl=EG" rel="noopener noreferrer"&gt;https://apps.microsoft.com/detail/9nxkr2gv1wm7?hl=en-US&amp;amp;gl=EG&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tools</category>
      <category>showdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I got tired of Selenium, so I made a browser you drive with HTTP requests</title>
      <dc:creator>Nitiksh </dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:31:12 +0000</pubDate>
      <link>https://dev.to/nitiksh/i-got-tired-of-selenium-so-i-made-a-browser-you-drive-with-http-requests-5239</link>
      <guid>https://dev.to/nitiksh/i-got-tired-of-selenium-so-i-made-a-browser-you-drive-with-http-requests-5239</guid>
      <description>&lt;p&gt;Every time I've needed to automate a browser, I've paid what I call the Selenium tax.&lt;/p&gt;

&lt;p&gt;You want to click a button on a page. Simple. But first: install the bindings, match the driver version to your browser version, watch it break after a browser update, add waits because everything is flaky, and write 40 lines of setup code before you do the one thing you actually wanted.&lt;/p&gt;

&lt;p&gt;For a lot of jobs, that's overkill. Sometimes you just want to tell a browser: go here, click this, give me that text. And you want to do it from a shell script, or from an AI agent, or from any language that can make an HTTP request, without installing a whole automation framework.&lt;/p&gt;

&lt;p&gt;So I built a small Chromium-based browser with a local REST API. You start it, and it listens on a port on your own machine. Everything the browser can do (navigate, click, type, read pages, pull out structured data) is an HTTP endpoint.&lt;/p&gt;

&lt;p&gt;Here's what driving it looks like. Create a session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST http://localhost:9090/v1/session
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Go somewhere:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST http://localhost:9090/v1/session/s_1/go &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"url": "https://example.com"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Click a button and read what's on the page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"http://localhost:9090/v1/act?session=s_1"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"do": [{"type": "click", "id": "submit-btn"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. No drivers. No bindings. No SDK. If your tool can make an HTTP request, it can drive a browser.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Why HTTP and not another library
&lt;/h2&gt;

&lt;p&gt;Two reasons.&lt;/p&gt;

&lt;p&gt;First, agents. I build AI agents, and agents are terrible at managing Selenium sessions: versions drift, processes leak, and the whole thing falls over at 2 AM. An HTTP API is something an agent can actually use reliably: stateless requests, JSON in, JSON out.&lt;/p&gt;

&lt;p&gt;Second, universality. Python, Node, Rust, bash, PowerShell: everything speaks HTTP. A library locks you into one ecosystem. An endpoint doesn't.&lt;/p&gt;

&lt;p&gt;The browser itself stays open with your tabs and your logged-in profile while you drive it. You're not automating a headless ghost. It's a real browser you can also just look at.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it's not
&lt;/h2&gt;

&lt;p&gt;It's not trying to replace Playwright. If you need cross-browser testing matrices, video recording, and a full test runner, use Playwright. It's excellent at that.&lt;/p&gt;

&lt;p&gt;This is for the other 80%: scraping a page, filling a form on a schedule, checking that a site still works, letting an agent do something in a browser without babysitting a driver. The jobs where Selenium felt like bringing a crane to hang a picture frame.&lt;/p&gt;

&lt;h2&gt;
  
  
  The details
&lt;/h2&gt;

&lt;p&gt;It's called NTXM Browser Mini. It's free, it's a Windows app, and the installer is on the download page. The code lives on GitHub if you want to look at how the API is put together.&lt;/p&gt;

&lt;p&gt;If you try it, I'd genuinely like to know what breaks. It's a young tool, and the fastest way it gets better is people using it for real jobs and telling me where it falls short.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://ntxm.org/products/techxcelerate/browser-mini/" rel="noopener noreferrer"&gt;https://ntxm.org/products/techxcelerate/browser-mini/&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/techxcelerate/browser-mini" rel="noopener noreferrer"&gt;https://github.com/techxcelerate/browser-mini&lt;/a&gt;&lt;/p&gt;

</description>
      <category>browserautomation</category>
      <category>selenium</category>
      <category>restapi</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Stop Practicing with Random Words: How to Set Up an Offline "Writing Dojo" with TypeMaster</title>
      <dc:creator>Nitiksh </dc:creator>
      <pubDate>Wed, 03 Dec 2025 05:38:28 +0000</pubDate>
      <link>https://dev.to/nitiksh/stop-practicing-with-random-words-how-to-set-up-an-offline-writing-dojo-with-typemaster-250l</link>
      <guid>https://dev.to/nitiksh/stop-practicing-with-random-words-how-to-set-up-an-offline-writing-dojo-with-typemaster-250l</guid>
      <description>&lt;p&gt;&lt;strong&gt;We obsess over our tools. Why ignore our input method?&lt;/strong&gt;&lt;br&gt;
As developers, we spend hours configuring our environments. We tweak our .vimrc, we hunt for the perfect mechanical keyboard switches, and we argue about which monospaced font has the best ligatures.&lt;/p&gt;

&lt;p&gt;But when it comes to actually practicing the physical skill of typing, most of us default to ad-bloated web apps that run slow JavaScript, track our data, and force us to type nonsense like "zebra jumping quickly" over and over.&lt;/p&gt;

&lt;p&gt;I wanted a tool that matched my dev environment: Offline. Minimalist. Fast.&lt;/p&gt;

&lt;p&gt;So I built TypeMaster. It’s a privacy-first typing tutor written in Rust, designed to help you get into a "flow state" before you start your daily stand-up.&lt;/p&gt;

&lt;p&gt;Here is how to download it and set up a distraction-free "Dojo" on your local machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem with Web-Based Typing Tests&lt;/strong&gt;&lt;br&gt;
If you are trying to improve your speed for coding or writing documentation, web apps have three major flaws:&lt;/p&gt;

&lt;p&gt;Latency: Browser-based inputs often have micro-stutters.&lt;/p&gt;

&lt;p&gt;Context Switching: Opening a browser tab invites distraction (Reddit/Twitter is just one click away).&lt;/p&gt;

&lt;p&gt;Telemetry: I don't like the idea of a third-party server analyzing my keystroke biometrics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Stack: Why Rust?&lt;/strong&gt;&lt;br&gt;
TypeMaster is a native desktop application. I chose Rust for the core engine because I wanted the input latency to be effectively zero. When you are pushing 100+ WPM, even a few milliseconds of lag feels "muddy." Rust’s memory safety and performance profile meant I could build something that launches instantly and uses negligible RAM.&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%2Fti6ahxtr3smr302fpp0i.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%2Fti6ahxtr3smr302fpp0i.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting Up Your Offline Dojo&lt;/strong&gt;&lt;br&gt;
Here is how to get it running on your rig. It’s free and doesn't require an account.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Download the Binary You don't need npm install for this. It's a compiled binary.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Official Site&lt;/em&gt;: &lt;a href="https://typemaster.ntxm.org/download/" rel="noopener noreferrer"&gt;typemaster.ntxm.org/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;SourceForge Mirro&lt;/em&gt;: &lt;a href="https://sourceforge.net/projects/typemaster-typing-practice/" rel="noopener noreferrer"&gt;sourceforge.net/projects/typemaster-typing-practice/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;UpToDown Mirro&lt;/em&gt;: &lt;a href="https://typemaster-typing-website-plus-software.en.uptodown.com/windows" rel="noopener noreferrer"&gt;https://typemaster-typing-website-plus-software.en.uptodown.com/windows&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Softpedia&lt;/em&gt;: &lt;a href="https://www.softpedia.com/get/Others/Home-Education/TypeMaster.shtml" rel="noopener noreferrer"&gt;https://www.softpedia.com/get/Others/Home-Education/TypeMaster.shtml&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Installation (Windows) Run the installer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Dev Note: Since this is an indie project, Windows SmartScreen might flag the binary as "unknown publisher." This is standard behavior for non-EV signed certs. You can safely click "Run Anyway."&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The "Pre-Code" Warmup Routine Instead of jumping straight into a complex refactor with cold hands&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Don't use the random word generator. Go to Story Mode.&lt;/p&gt;

&lt;p&gt;Why? Because writing code and documentation requires rhythm. Typing out full paragraphs from The Call of the Wild or Alice in Wonderland forces you to practice punctuation, capitalization, and flow control in a way that "random word" lists don't.&lt;/p&gt;

&lt;p&gt;Privacy &amp;amp; "Local-First" Philosophy&lt;br&gt;
TypeMaster is strictly local-first.&lt;/p&gt;

&lt;p&gt;No cloud saves.&lt;/p&gt;

&lt;p&gt;No tracking pixels.&lt;/p&gt;

&lt;p&gt;No "Sign in with Google."&lt;/p&gt;

&lt;p&gt;Your WPM stats and progress are stored in a local JSON/DB file on your machine. This means you can practice on a train, on a plane, or in a secure air-gapped environment without issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;
If you are looking to optimize your I/O (Input/Output) speed as a developer, stop training on web apps filled with ads. Treat your typing practice like the rest of your stack: keep it local, keep it fast, and keep it private.&lt;/p&gt;

&lt;p&gt;Download TypeMaster for Windows - &lt;a href="https://typemaster.ntxm.org/download/" rel="noopener noreferrer"&gt;https://typemaster.ntxm.org/download/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ntxm</category>
      <category>typemaster</category>
      <category>nitiksh</category>
      <category>rust</category>
    </item>
    <item>
      <title>I Got Tired of Typing Random Words, So I Built a Practice Tool That Tells You a Story</title>
      <dc:creator>Nitiksh </dc:creator>
      <pubDate>Tue, 28 Oct 2025 12:41:17 +0000</pubDate>
      <link>https://dev.to/nitiksh/i-got-tired-of-typing-random-words-so-i-built-a-practice-tool-that-tells-you-a-story-22p8</link>
      <guid>https://dev.to/nitiksh/i-got-tired-of-typing-random-words-so-i-built-a-practice-tool-that-tells-you-a-story-22p8</guid>
      <description>&lt;p&gt;As developers, our keyboards are pretty much an extension of our brains. We type all... day... long.&lt;/p&gt;

&lt;p&gt;Every once in a while, I get the itch to improve my typing speed. I'll fire up one of the popular typing tests and... immediately get bored.&lt;/p&gt;

&lt;p&gt;The problem? It's always a stream of random, disconnected words.&lt;/p&gt;

&lt;p&gt;world price market good because seem next&lt;/p&gt;

&lt;p&gt;It’s a decent way to measure raw WPM, but it feels like a total chore. You're not practicing writing, you're just practicing hitting keys in a specific sequence. There's no rhythm, no flow, and my brain just checks out.&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%2Fp63pmsy7487nmiy0h62e.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%2Fp63pmsy7487nmiy0h62e.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The "What If..." Moment&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This got me thinking: What if practice could actually be engaging? What if, instead of typing nonsense, I could practice by typing something... well, interesting?&lt;/p&gt;

&lt;p&gt;What if I could practice by typing an actual story?&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%2Fc345cf4k5eaayvw4ws4p.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%2Fc345cf4k5eaayvw4ws4p.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Build: Meet TypeMaster&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;So, I decided to build it. I've been hacking away at this side project for the last few weeks, and I'm calling it TypeMaster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://typemaster.ntxm.org" rel="noopener noreferrer"&gt;https://typemaster.ntxm.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal was to create something clean, fast, and 100% distraction-free.&lt;/p&gt;

&lt;p&gt;It has the standard speed tests, but the part I'm really excited about is the "Stories" mode:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://typemaster.ntxm.org/stories" rel="noopener noreferrer"&gt;https://typemaster.ntxm.org/stories&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of random words, it feeds you paragraphs from classic literature. You practice by typing out Alice in Wonderland or The Call of the Wild.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why It Feels Different&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The first time I used it, the difference was obvious. I wasn't just "grinding" for a high score. I was actually reading the narrative. I found myself focusing on the flow of the sentences, the punctuation, and the structure.&lt;/p&gt;

&lt;p&gt;It felt less like a test and more like a conversation. My goal shifted from "how fast can I type" to "how smoothly can I write this sentence."&lt;/p&gt;

&lt;p&gt;It's amazing how much more engaging practice is when your brain is actually involved.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;I'd Love Your Feedback&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I'm building this out in the open and it's still super early. The dev.to community is full of makers, and I'd be incredibly grateful for your feedback.&lt;/p&gt;

&lt;p&gt;Is this something you'd use?&lt;/p&gt;

&lt;p&gt;What features are obviously missing?&lt;/p&gt;

&lt;p&gt;What other stories or content (maybe code snippets?) would you want to type?&lt;/p&gt;

&lt;p&gt;It’s just a simple web app, but it’s a problem I wanted to solve for myself. Let me know what you think!&lt;/p&gt;

&lt;p&gt;Cheers, &lt;strong&gt;Nitiksh&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ntxm</category>
      <category>nitiksh</category>
      <category>typemaster</category>
      <category>react</category>
    </item>
  </channel>
</rss>
