<?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: RSTrstech</title>
    <description>The latest articles on DEV Community by RSTrstech (@rstrstech).</description>
    <link>https://dev.to/rstrstech</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%2F4008590%2F74be948c-b668-4237-8b4d-dd993f8b665e.png</url>
      <title>DEV Community: RSTrstech</title>
      <link>https://dev.to/rstrstech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rstrstech"/>
    <language>en</language>
    <item>
      <title>How We Built 130+ Browser-Based Tools With Zero Server Uploads</title>
      <dc:creator>RSTrstech</dc:creator>
      <pubDate>Mon, 29 Jun 2026 17:25:17 +0000</pubDate>
      <link>https://dev.to/rstrstech/how-we-built-130-browser-based-tools-with-zero-server-uploads-52lh</link>
      <guid>https://dev.to/rstrstech/how-we-built-130-browser-based-tools-with-zero-server-uploads-52lh</guid>
      <description>&lt;p&gt;We recently launched &lt;a href="https://filehubtools.com" rel="noopener noreferrer"&gt;FileHubTools&lt;/a&gt;, a suite of 130+ free tools for resizing photos, compressing PDFs, and formatting documents — all running entirely in the browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Indian government exam portals (SSC, UPSC, NEET) have strict photo upload requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exact pixel dimensions (e.g., 100×120px for SSC)&lt;/li&gt;
&lt;li&gt;Strict file size limits (e.g., 20-50KB)
&lt;/li&gt;
&lt;li&gt;Specific formats (JPG only)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Students typically use random online tools that upload sensitive documents (Aadhaar, PAN) to unknown servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Approach
&lt;/h2&gt;

&lt;p&gt;We built everything to run client-side:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Image processing&lt;/strong&gt;: Canvas API + quality binary search for exact KB targeting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF manipulation&lt;/strong&gt;: WebAssembly-compiled pdf-lib&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero network requests&lt;/strong&gt;: Files never leave the device&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How the KB Compression Works
&lt;/h2&gt;

&lt;p&gt;Most tools just reduce quality until the file is small enough. We use a binary search algorithm:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set quality range: 0.1 to 1.0&lt;/li&gt;
&lt;li&gt;Compress at midpoint quality&lt;/li&gt;
&lt;li&gt;Check resulting size vs target KB&lt;/li&gt;
&lt;li&gt;Narrow range and repeat&lt;/li&gt;
&lt;li&gt;Stop when within 1KB of target&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This gives exact results like "49.8KB for a 50KB target" without destroying image quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework&lt;/strong&gt;: Next.js 15 with App Router&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rendering&lt;/strong&gt;: Server-rendered SEO content + client-side tool logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF Engine&lt;/strong&gt;: pdf-lib compiled to WebAssembly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image Processing&lt;/strong&gt;: Native Canvas API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;15 exam presets&lt;/strong&gt;: Auto-configured dimensions &amp;amp; size limits&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tools We Built
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Photo&lt;/td&gt;
&lt;td&gt;40+&lt;/td&gt;
&lt;td&gt;Resize to KB, crop, rotate, background change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;15+&lt;/td&gt;
&lt;td&gt;Compress, merge, split, watermark, protect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signature&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Draw, crop, clean BG, resize, enhance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calculators&lt;/td&gt;
&lt;td&gt;20+&lt;/td&gt;
&lt;td&gt;EMI, SIP, BMI, age calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Converters&lt;/td&gt;
&lt;td&gt;15+&lt;/td&gt;
&lt;td&gt;HEIC→JPG, WebP→JPG, PDF→Image&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Privacy First
&lt;/h2&gt;

&lt;p&gt;Every tool runs 100% in the browser. We don't even have a file upload endpoint on our server. When a user processes their Aadhaar card photo, it never touches the network.&lt;/p&gt;

&lt;p&gt;Check it out at &lt;a href="https://filehubtools.com" rel="noopener noreferrer"&gt;filehubtools.com&lt;/a&gt; — feedback welcome!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
