<?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: Saeid</title>
    <description>The latest articles on DEV Community by Saeid (@saeiddrv).</description>
    <link>https://dev.to/saeiddrv</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%2F3862284%2F580f6040-ebcb-4d6d-b6a9-49c719b6fa8e.webp</url>
      <title>DEV Community: Saeid</title>
      <link>https://dev.to/saeiddrv</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saeiddrv"/>
    <language>en</language>
    <item>
      <title>I Built 44 Free Browser Tools (and Didn't Upload a Single File to My Server)</title>
      <dc:creator>Saeid</dc:creator>
      <pubDate>Sun, 05 Apr 2026 13:21:27 +0000</pubDate>
      <link>https://dev.to/saeiddrv/i-built-44-free-browser-tools-and-didnt-upload-a-single-file-to-my-server-4plm</link>
      <guid>https://dev.to/saeiddrv/i-built-44-free-browser-tools-and-didnt-upload-a-single-file-to-my-server-4plm</guid>
      <description>&lt;p&gt;You know that moment when you need to quickly compress an image,&lt;br&gt;
convert a PNG to JPG, or generate a secure password —&lt;br&gt;
and every tool you find either wants you to create an account,&lt;br&gt;
slaps a watermark on your file, or just feels... sketchy?&lt;/p&gt;

&lt;p&gt;Yeah. I got tired of that too.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;&lt;a href="https://plix.tools" rel="noopener noreferrer"&gt;Plix.Tools&lt;/a&gt;&lt;/strong&gt; — a collection of&lt;br&gt;
44 free browser-based tools and games where &lt;strong&gt;nothing ever leaves&lt;br&gt;
your device&lt;/strong&gt;. No upload. No account. No watermarks. No "free trial&lt;br&gt;
— upgrade to remove limits." Just tools that work.&lt;/p&gt;




&lt;h2&gt;
  
  
  How it works (the nerdy part)
&lt;/h2&gt;

&lt;p&gt;Everything runs client-side in vanilla JavaScript. When you compress&lt;br&gt;
an image, the Canvas API does the work entirely in your browser.&lt;br&gt;
When you generate a SHA-256 hash, the Web Crypto API handles it&lt;br&gt;
locally. When you format JSON, it's just &lt;code&gt;JSON.parse()&lt;/code&gt; and&lt;br&gt;
&lt;code&gt;JSON.stringify()&lt;/code&gt; — no server involved at all.&lt;/p&gt;

&lt;p&gt;The architecture is embarrassingly simple: pure HTML, CSS, and JS&lt;br&gt;
hosted on Cloudflare Pages. Zero backend. Zero database. Zero&lt;br&gt;
server costs.&lt;/p&gt;

&lt;p&gt;This means two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your data never goes anywhere&lt;/strong&gt; (seriously — open DevTools,
check the Network tab)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's fast&lt;/strong&gt; — no round-trips to a server means results are
instant&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's in there?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖼️ Image &amp;amp; PDF Tools
&lt;/h3&gt;

&lt;p&gt;Compress, resize, convert between PNG/JPG/WebP, embed images as&lt;br&gt;
Base64, merge images to PDF. All canvas-based, all local.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧮 Calculators
&lt;/h3&gt;

&lt;p&gt;Tip &amp;amp; bill splitter, loan &amp;amp; mortgage calculator with full&lt;br&gt;
amortisation schedule, BMI, age calculator (down to the second),&lt;br&gt;
percentage, unit converter, and a currency converter with live&lt;br&gt;
exchange rates.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Developer Tools
&lt;/h3&gt;

&lt;p&gt;JSON formatter with tree view, SHA-256/MD5/SHA-512 hash generator,&lt;br&gt;
AES-256 encrypt/decrypt, Unix timestamp converter, IP &amp;amp; subnet&lt;br&gt;
calculator, binary/hex/octal converter, URL encoder/decoder, regex&lt;br&gt;
tester with live highlighting... the usual developer toolkit, just&lt;br&gt;
without the annoying ads and account walls.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✍️ Productivity
&lt;/h3&gt;

&lt;p&gt;Word &amp;amp; character counter (yes, it correctly handles standalone&lt;br&gt;
punctuation — &lt;code&gt;.&lt;/code&gt; doesn't count as a word), text case converter&lt;br&gt;
(camelCase, snake_case, kebab-case and 12 more), Pomodoro timer&lt;br&gt;
with task tracking, and a WPM typing speed test.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🎮 Games — yes, actual games&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is the part I'm most proud of and least expected to ship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://plix.tools/tools/wordle/" rel="noopener noreferrer"&gt;Wordle&lt;/a&gt;&lt;/strong&gt; — Unlimited rounds,&lt;br&gt;
no daily limit, 500+ word pool, full on-screen keyboard. The&lt;br&gt;
original only gives you one word per day. Mine gives you as many&lt;br&gt;
as you want. Fight me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://plix.tools/tools/2048/" rel="noopener noreferrer"&gt;2048&lt;/a&gt;&lt;/strong&gt; — The classic sliding&lt;br&gt;
tile puzzle. Arrow keys on desktop, swipe on mobile. Best score&lt;br&gt;
saved locally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://plix.tools/tools/minesweeper/" rel="noopener noreferrer"&gt;Minesweeper&lt;/a&gt;&lt;/strong&gt; — Easy&lt;br&gt;
(9×9), Medium (16×16), Hard (16×30). First click is always safe.&lt;br&gt;
Mine icons rendered as SVG — no emoji policy on the site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://plix.tools/tools/reaction-time/" rel="noopener noreferrer"&gt;Reaction Time Test&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
— Click when the screen turns green. Measures your reaction time&lt;br&gt;
in milliseconds. Anti-cheat: clicking early resets the test. My&lt;br&gt;
personal best is 187ms. I'm convinced I can get under 150ms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://plix.tools/tools/sudoku/" rel="noopener noreferrer"&gt;Sudoku&lt;/a&gt;&lt;/strong&gt; — Easy, Medium,&lt;br&gt;
Hard. Pencil notes mode, undo, hints, pauseable timer, 3-mistake&lt;br&gt;
limit. The puzzle generator uses backtracking to build a valid&lt;br&gt;
solved board then removes cells — every puzzle has exactly one&lt;br&gt;
solution.&lt;/p&gt;




&lt;h2&gt;
  
  
  The technical bits I'm actually happy with
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dark mode&lt;/strong&gt; that actually works. Every single component — tool&lt;br&gt;
boxes, game boards, buttons, input fields, accordion FAQs — has&lt;br&gt;
proper dark mode CSS. No more white-flashing tool boxes at 2am.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schema.org on everything.&lt;/strong&gt; Each tool has &lt;code&gt;WebApplication&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;HowTo&lt;/code&gt; (3 steps), &lt;code&gt;FAQPage&lt;/code&gt; (7 questions), &lt;code&gt;BreadcrumbList&lt;/code&gt;,&lt;br&gt;
and &lt;code&gt;Organization&lt;/code&gt; schemas. Probably overkill. Definitely fun to&lt;br&gt;
implement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Category hub pages.&lt;/strong&gt; &lt;code&gt;/tools/developer/&lt;/code&gt;, &lt;code&gt;/tools/games/&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;/tools/calculators/&lt;/code&gt; etc. — each is a proper landing page for&lt;br&gt;
the category, not just a filtered list. Good for SEO, good for&lt;br&gt;
users landing from "free developer tools online" searches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Sudoku generator&lt;/strong&gt; was genuinely tricky. Filling diagonal&lt;br&gt;
3×3 boxes first, then backtracking to solve the rest, then&lt;br&gt;
randomly removing cells. The shuffle inside the solver gives&lt;br&gt;
you a different valid solution path each time.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'd do differently
&lt;/h2&gt;

&lt;p&gt;Honestly? I'd start with &lt;strong&gt;three&lt;/strong&gt; tools instead of trying to&lt;br&gt;
build everything at once. The codebase is clean but maintaining&lt;br&gt;
44 separate tool interfaces consistently (dark mode, responsive&lt;br&gt;
layout, structured data, correct validation...) takes real effort.&lt;/p&gt;

&lt;p&gt;Also: the Emoji Picker is 110KB of HTML because I embedded 3,000+&lt;br&gt;
emoji directly in the page. I regret nothing. It's instant.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://plix.tools" rel="noopener noreferrer"&gt;plix.tools&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Everything is free, forever. No account needed. If you find a bug,&lt;br&gt;
the contact page works — it goes straight to me.&lt;/p&gt;

&lt;p&gt;If you're a developer and you bookmark one tool, I'd bet it's&lt;br&gt;
either the &lt;strong&gt;&lt;a href="https://plix.tools/tools/regex-tester/" rel="noopener noreferrer"&gt;Regex Tester&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
or the &lt;strong&gt;&lt;a href="https://plix.tools/tools/json-formatter/" rel="noopener noreferrer"&gt;JSON Formatter&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
The regex tester has live highlighting, capture group display, and&lt;br&gt;
a replace mode with &lt;code&gt;$1&lt;/code&gt;/&lt;code&gt;$2&lt;/code&gt; backreference support. The JSON&lt;br&gt;
formatter has tree view.&lt;/p&gt;

&lt;p&gt;Built with zero frameworks, zero dependencies, and a stubborn&lt;br&gt;
refusal to upload anyone's files to a server.&lt;/p&gt;

&lt;p&gt;— Saeid&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>tools</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
