<?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: Sikandar Bro</title>
    <description>The latest articles on DEV Community by Sikandar Bro (@sikandar_bro_0db8c99c4a7c).</description>
    <link>https://dev.to/sikandar_bro_0db8c99c4a7c</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%2F4233790%2Fe48d08b0-43af-49a5-ab41-861e80f83279.jpg</url>
      <title>DEV Community: Sikandar Bro</title>
      <link>https://dev.to/sikandar_bro_0db8c99c4a7c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sikandar_bro_0db8c99c4a7c"/>
    <language>en</language>
    <item>
      <title>I built 14 free online tools that process your files in the browser (no uploads, no signup)</title>
      <dc:creator>Sikandar Bro</dc:creator>
      <pubDate>Sun, 08 Nov 2026 16:12:50 +0000</pubDate>
      <link>https://dev.to/sikandar_bro_0db8c99c4a7c/i-built-14-free-online-tools-that-process-your-files-in-the-browser-no-uploads-no-signup-1meg</link>
      <guid>https://dev.to/sikandar_bro_0db8c99c4a7c/i-built-14-free-online-tools-that-process-your-files-in-the-browser-no-uploads-no-signup-1meg</guid>
      <description>&lt;p&gt;Most "free" online tools work the same way: you upload your file to someone's server, wait, and then hit a signup wall or a watermark after the second use. For things like CNIC/passport photos, CVs and scanned documents, uploading to a random server also isn't great for privacy.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;&lt;a href="https://14freetools.com" rel="noopener noreferrer"&gt;14FreeTools&lt;/a&gt;&lt;/strong&gt; — a set of 14 small tools where the processing happens &lt;strong&gt;inside your browser&lt;/strong&gt;. Your images and documents are never sent to my server.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tools
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Image&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://14freetools.com/remove-background" rel="noopener noreferrer"&gt;AI Background Remover&lt;/a&gt; — transparent PNG or plain white background&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://14freetools.com/image-compressor" rel="noopener noreferrer"&gt;Image Compressor&lt;/a&gt; — plus exact-size targets like &lt;a href="https://14freetools.com/compress-image-to-20kb" rel="noopener noreferrer"&gt;compress to 20KB&lt;/a&gt; and &lt;a href="https://14freetools.com/compress-image-to-50kb" rel="noopener noreferrer"&gt;50KB&lt;/a&gt; for job and admission forms&lt;/li&gt;
&lt;li&gt;&lt;a href="https://14freetools.com/image-resizer" rel="noopener noreferrer"&gt;Image Resizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://14freetools.com/image-to-pdf" rel="noopener noreferrer"&gt;Image to PDF&lt;/a&gt; — JPG, PNG, WebP, TIFF and iPhone HEIC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;PDF&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://14freetools.com/pdf-to-jpg" rel="noopener noreferrer"&gt;PDF to JPG&lt;/a&gt;, &lt;a href="https://14freetools.com/word-to-pdf" rel="noopener noreferrer"&gt;Word to PDF&lt;/a&gt;, &lt;a href="https://14freetools.com/pdf-to-word" rel="noopener noreferrer"&gt;PDF to Word&lt;/a&gt;, &lt;a href="https://14freetools.com/merge-pdf" rel="noopener noreferrer"&gt;Merge PDF&lt;/a&gt;, &lt;a href="https://14freetools.com/split-pdf" rel="noopener noreferrer"&gt;Split PDF&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Text &amp;amp; other&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://14freetools.com/translator" rel="noopener noreferrer"&gt;Translator&lt;/a&gt; (50+ languages), &lt;a href="https://14freetools.com/word-counter" rel="noopener noreferrer"&gt;Word Counter&lt;/a&gt;, Case Converter, Password Generator, Age Calculator&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works (no backend for files)
&lt;/h2&gt;

&lt;p&gt;The whole site is static HTML/CSS/JS. Each tool loads the library it needs from a CDN and does the work on the user's device:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PDF rendering&lt;/strong&gt; (PDF → JPG): &lt;code&gt;pdf.js&lt;/code&gt; renders each page to a canvas, then the canvas is exported as JPG.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merge / split PDF&lt;/strong&gt;: &lt;code&gt;pdf-lib&lt;/code&gt; copies pages between documents entirely in memory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image → PDF&lt;/strong&gt;: &lt;code&gt;jsPDF&lt;/code&gt;, with &lt;code&gt;heic2any&lt;/code&gt; for iPhone HEIC and &lt;code&gt;UTIF&lt;/code&gt; for TIFF files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Word ↔ PDF&lt;/strong&gt;: &lt;code&gt;mammoth&lt;/code&gt; converts .docx to HTML, then &lt;code&gt;html2pdf.js&lt;/code&gt; turns it into a PDF; the reverse direction uses the &lt;code&gt;docx&lt;/code&gt; package.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compress to an exact size&lt;/strong&gt;: a binary search over JPEG quality (and dimensions if needed) using &lt;code&gt;canvas.toBlob()&lt;/code&gt; until the file is just under the target, e.g. 20 KB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background removal&lt;/strong&gt;: &lt;code&gt;transformers.js&lt;/code&gt; runs a segmentation model (ORMBG, Apache-2.0) with ONNX Runtime on &lt;strong&gt;WebAssembly&lt;/strong&gt;. The model downloads once and is cached by the browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The one exception is the translator: translating text needs a translation service, so the text you type is sent to the MyMemory API. Files are never uploaded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;WebGPU isn't always ready.&lt;/strong&gt; My first version of the background remover used WebGPU and crashed on some machines with an unsupported &lt;code&gt;ceil()&lt;/code&gt; in a MaxPool shape. Forcing the WASM backend was slower but worked everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load scripts in the right order.&lt;/strong&gt; Inline tool scripts were running before my shared helper file loaded. Moving the helper into the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; fixed it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One page per search intent.&lt;/strong&gt; People don't search "image compressor", they search "compress image to 20kb for PPSC form". Separate landing pages for those exact needs made the site much more useful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile performance matters.&lt;/strong&gt; Removing heavy hero animations and using &lt;code&gt;font-display: optional&lt;/code&gt; fixed most of my mobile Lighthouse issues.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try it and tell me what's broken
&lt;/h2&gt;

&lt;p&gt;It's free, there's no account, and there's no watermark: &lt;strong&gt;&lt;a href="https://14freetools.com" rel="noopener noreferrer"&gt;https://14freetools.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd love feedback from other devs — what tool would you add next, and does anything break on your browser or phone?&lt;/p&gt;

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