If you have ever used iLovePDF, Smallpdf, or Sejda to merge or compress a PDF, your file was uploaded to a remote server you know nothing about. Most people do not realise this is happening. The tools work so smoothly that the upload is invisible.
I realised this one day when I uploaded a contract to compress it before sending. It worked fine. Then I thought about what had actually happened — I had just sent a sensitive legal document to a server I had never heard of, in a location I did not know, to be processed by software I could not inspect.
That bothered me enough to build something different.
What I Built
I built Aservus — a free online toolkit available at https://aservus.com with 23 tools for working with PDF files and documents.
The core idea: process as much as possible locally in the browser so files never leave the user's device.
The Technical Architecture
Aservus uses a privacy-first hybrid model. Here is how it breaks down honestly:
Local processing (WebAssembly in the browser):
Most PDF editing operations run entirely client-side using WebAssembly compiled libraries. This includes merge, split, compress, protect, watermark, rotate, and repair. When a user merges PDFs on Aservus, the processing happens on their own machine using their own CPU. The file never touches a server.
Server processing (secure, with immediate deletion):
Complex format conversions like PDF to Word, Word to PDF, PDF to Excel, and HTML to PDF require server-side processing. The technical reason is that accurate layout analysis and format reconstruction at this level of fidelity is not yet feasible to run entirely client-side. For these operations, files are uploaded to a secure server, processed, and deleted immediately after the user downloads the result.
I want to be transparent about this distinction because I think users deserve to know exactly what happens to their files. Hiding server processing behind vague privacy policies is exactly the problem I was trying to solve.
The Tech Stack
The frontend is pure HTML, CSS, and vanilla JavaScript. No frameworks. The backend is Node.js and Express with LibreOffice, Ghostscript, and wkhtmltopdf for server-side processing. Most client-side PDF operations use PDF-lib and pdf.js compiled to WebAssembly. The site is a PWA with a service worker and is hosted on shared hosting.
I deliberately avoided heavy frameworks because I wanted the tool pages to load instantly. When someone needs to merge a PDF they want to do it in 10 seconds, not wait for a React bundle to hydrate.
What Aservus Includes
PDF tools: merge, split, compress, protect, sign, watermark, rotate, repair
Converter tools: PDF to Word, Word to PDF, PDF to Excel, Excel to PDF, Image to PDF, PDF to JPG, HTML to PDF, PDF to HTML
Utility tools: AI Paraphraser, QR Code Generator, Word Counter, Email Extractor, Age Calculator, YouTube Analytics Tracker
Everything is free. No account required. No watermarks. No daily limits.
What I Learned Building This
Privacy is a design decision, not a feature. Every technical choice either respects user privacy or compromises it. Choosing to use WebAssembly for PDF editing instead of server processing was a privacy decision before it was a technical one.
Transparency builds more trust than perfection. I could have claimed everything runs locally and most users would never know the difference. Instead I built a clear indication on each tool page showing whether it processes locally or requires a server. Users respond well to honesty.
Vanilla JS is underrated. The site is fast, the tools load instantly, and there is zero dependency hell. For a tool-focused site where performance directly affects user experience, avoiding frameworks was the right call.
Try It
Aservus is live at https://aservus.com and completely free. I would genuinely love feedback from developers — especially on the WebAssembly implementation, the hybrid model approach, and what tools are missing.
What would make you switch from whatever PDF tool you are currently using?

For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)