I built 14 free online tools that process your files in the browser (no uploads, no signup)
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. So I built 14FreeTools — a set of 14 small tools where the processing happens inside your browser. Your images and documents are never sent to my server. The tools Image AI Background Remover — transparent PNG or plain white background Image Compressor — plus exact-size targets like compress to 20KB and 50KB for job and admission forms Image Resizer Image to PDF — JPG, PNG, WebP, TIFF and iPhone HEIC PDF PDF to JPG, Word to PDF, PDF to Word, Merge PDF, Split PDF Text & other Translator (50+ languages), Word Counter, Case Converter, Password Generator, Age Calculator How it works (no backend for files) 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: PDF rendering (PDF → JPG): pdf.js renders each page to a canvas, then the canvas is exported as JPG. Merge / split PDF: pdf-lib copies pages between documents entirely in memory. Image → PDF: jsPDF, with heic2any for iPhone HEIC and UTIF for TIFF files. Word ↔ PDF: mammoth converts .docx to HTML, then html2pdf.js turns it into a PDF; the reverse direction uses the docx package. Compress to an exact size: a binary search over JPEG quality (and dimensions if needed) using canvas.toBlob() until the file is just under the target, e.g. 20 KB. Background removal: transformers.js runs a segmentation model (ORMBG, Apache-2.0) with ONNX Runtime on WebAssembly. The model downloads once and is cached by the browser. 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. Lessons learned WebGPU isn't always ready. My first version of the background remover used WebGPU and crashed on some machines with an unsupported ceil() in a MaxPool shape. Forcing the WASM backend was slower but worked everywhere. Load scripts in the right order. Inline tool scripts were running before my shared helper file loaded. Moving the helper into the fixed it. One page per search intent. 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. Mobile performance matters. Removing heavy hero animations and using font-display: optional fixed most of my mobile Lighthouse issues. Try it and tell me what's broken It's free, there's no account, and there's no watermark: https://14freetools.com I'd love feedback from other devs — what tool would you add next, and does anything break on your browser or phone?
This is a summary aggregated from Dev.to. Read the complete article on the original site:
Read full article at Dev.to