Letβs be real for a second. Every time you or a family member needs to merge, split, or compress a PDF, what do you do? You Google "Free PDF Editor," click the first result, and upload your highly sensitive document (like a bank statement, resume, or legal contract) to a random server halfway across the world.
Then you just hope they actually delete it like their privacy policy claims.
As a web developer, I found this absurd. Today's browsers are incredibly powerful, so why are we still relying on backend servers to do basic file manipulation?
To solve this, I built the Adawati PDF Editor β a completely free, zero-latency, and 100% client-side PDF toolkit.
Here is how I bypassed the backend and built this entirely in the browser using JavaScript. π οΈ
π§ The Magic of ArrayBuffer and Blob
The traditional way of handling files on the web is grabbing a file input, attaching it to a FormData object, and POSTing it to an API.
But with a client-side approach, we don't do that. Instead, when a user selects a PDF, the app uses the FileReader API to read the file directly into the browser's memory as an ArrayBuffer.
By treating the PDF as raw binary data (Uint8Array), the JavaScript engine can parse the document's structure. Whether the user wants to merge two documents, extract specific pages, or compress the file, the app mutates the binary data directly in the browser's memory.
π Zero Latency & No Progress Bars
Because nothing is being uploaded or downloaded from a remote server, the speed is mind-blowing.
Editing a PDF is constrained only by the user's CPU, not their internet connection. There are no "uploading..." spinners or timeout errors for large files.
π₯ Downloading Without a Server
How do you serve the modified file back to the user if there is no backend to generate a download link?
You create a Blob!
Once the binary manipulation is complete, the app packages the new Uint8Array into a PDF Blob. Using URL.createObjectURL(), it generates a temporary local URL, attaches it to a hidden tag, and triggers a programmatic click.
The file saves instantly to the user's local machine.
π Privacy by Design
The biggest win here isn't just speedβitβs absolute security. Because the architecture lacks a backend to process the files, it is physically impossible for the documents to be intercepted, stored, or leaked by the platform. You can literally load the page, turn off your Wi-Fi, and edit your PDFs offline.
Try it out!
I built this as part of a larger suite of privacy-first tools for students and professionals. You can test the PDF editor (Merge, Split, Compress, etc.) live here:
π Adawati PDF Editor
Question for the dev community: Have you ever had to work with PDFs in your projects? What libraries or approaches did you use? Let me know in the comments! π
Top comments (1)
Most of this functionality is already in modern browsers - has been for some time