DEV Community

RSTrstech
RSTrstech

Posted on

How We Built 130+ Browser-Based Tools With Zero Server Uploads

We recently launched FileHubTools, a suite of 130+ free tools for resizing photos, compressing PDFs, and formatting documents — all running entirely in the browser.

The Problem

Indian government exam portals (SSC, UPSC, NEET) have strict photo upload requirements:

  • Exact pixel dimensions (e.g., 100×120px for SSC)
  • Strict file size limits (e.g., 20-50KB)
  • Specific formats (JPG only)

Students typically use random online tools that upload sensitive documents (Aadhaar, PAN) to unknown servers.

Our Approach

We built everything to run client-side:

  • Image processing: Canvas API + quality binary search for exact KB targeting
  • PDF manipulation: WebAssembly-compiled pdf-lib
  • Zero network requests: Files never leave the device

How the KB Compression Works

Most tools just reduce quality until the file is small enough. We use a binary search algorithm:

  1. Set quality range: 0.1 to 1.0
  2. Compress at midpoint quality
  3. Check resulting size vs target KB
  4. Narrow range and repeat
  5. Stop when within 1KB of target

This gives exact results like "49.8KB for a 50KB target" without destroying image quality.

Architecture

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

Tools We Built

Category Count Examples
Photo 40+ Resize to KB, crop, rotate, background change
PDF 15+ Compress, merge, split, watermark, protect
Signature 6 Draw, crop, clean BG, resize, enhance
Calculators 20+ EMI, SIP, BMI, age calculator
Converters 15+ HEIC→JPG, WebP→JPG, PDF→Image

Privacy First

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.

Check it out at filehubtools.com — feedback welcome!

Top comments (0)