Urgent.News

What's breaking now, across thousands of outlets.

Tech

I built a free PDF tool that processes files 100% in your browser (0 server uploads)

Most free online PDF tools store your files on their backend. HandleMyFile runs 100% inside your browser via WebAssembly: ๐Ÿ”’ Zero uploads (processed in RAM) โšก Instant speed (no upload waiting) โœˆ๏ธ Works 100% offline ๐ŸŒ Free & supports 30 languages

Many free online image compressors transmit files to a server for processing, which stores a copy on their machine and may impose bandwidth or CPU limits. This results in daily restrictions or watermarks. Compressly offers a browser-based alternative, compressing, resizing, converting, removing backgrounds, upscaling, and handling PDF and Word files without any server involvement.

Users can compress to an exact file size, shrinking pixel dimensions if necessary. The canvas API encodes JPEG and WebP at a set quality level, but Compressly uses binary search to achieve the desired target size. Encoding occurs in a Web Worker using OffscreenCanvas.convertToBlob(), allowing multiple iterations without freezing the browser.

Smaller PNGs retain transparency through median-cut quantisation and optional Floydโ€“Steinberg dithering. AI background removal utilizes the ormbg segmentation model in Transformers.js, providing an AI mode for complex backgrounds and a non-AI mode for logos and signatures. PDF and Word tools manually write PDF 1.4, embedding fonts, images, and text, with DOCX files unzipped using DecompressionStream and DOMParser.

The editor allows converting between PDF and DOCX formats. Feedback is invited on the target size algorithm and background removal speed and quality.

Written by urgent.news from Dev.to's reporting โ€” not their text. Machine-written โ€” may contain errors; check the original before relying on it.

This story

This is one outlet's version. Read the fullest account.

Read the original at dev.to โ†’

More in Tech

Cursor: fix 'Waiting for extension host' hang

Cursor stuck on "Waiting for extension host"? Extensions dead, AI panel spinning, Git features gone? Work through this list top to bottom. The first step fixes most cases in under a minute. 1.

  • Users encounter "Waiting for extension host" issue in Cursor
  • Restart extension host process to resolve transient failures
  • Identify problematic extensions by disabling one-by-one

A 200 OK can still belong to the wrong input

A request succeeds. The JSON is valid. The interface shows the wrong result anyway. One way this happens has nothing to do with the server: Someone submits input A.

  • A 200 OK response may not reflect current client input
  • Revision numbers needed for each form input
  • Invalidate previous state when updating inputs

More from Friday 25 September โ†’