Have you ever spent an hour filling out your details on a "free" resume builder, only to be hit with a $15 paywall or a massive, ugly watermark right when you click download?
As an indie developer, I found this practice incredibly frustrating. Beyond the hidden fees, there's a massive privacy concern: why should a random server store my phone number, address, and entire employment history just to generate a PDF?
So, I decided to build my own free alternative on Adawati.app: a fast, ATS-friendly CV builder that operates 100% on the client-side. No backend storage, no hidden fees.
Here is how I approached the technical challenges.
- The Core Architecture: Zero Backend The primary goal was privacy. By eliminating the backend from the PDF generation process, the user's sensitive data never leaves their browser.
Instead of sending JSON payloads to a Node.js or Python server to render a PDF using tools like Puppeteer or ReportLab, the entire heavy lifting is done in the DOM.
- The ATS (Applicant Tracking System) Challenge A major trap with client-side PDF generation is taking the easy route: converting a DOM element to an HTML canvas (e.g., using html2canvas) and then putting that image into a PDF.
Why is this bad? Because ATS bots cannot read images! If your resume is just a giant image inside a PDF wrapper, you will automatically be rejected by 75% of corporate filtering systems.
The Solution:
I had to ensure the output was a true vector PDF with selectable text. Using client-side libraries that construct the PDF document programmatically ensures that the text layer is preserved. The file remains lightweight, the text is razor-sharp (no pixelation on zoom), and most importantly, an ATS can easily parse the keywords, job titles, and dates.
Handling RTL (Right-to-Left) and Localization
Since the platform targets both Arabic and English speakers, the layout had to mirror perfectly without breaking the PDF generation flow.
Switching between languages triggers a state change that not only flips the CSS (direction: rtl) for the live preview but also maps to the corresponding coordinates and text alignments in the PDF generation logic.The Result
The final product allows users to:
Type their data and see a Live Preview.
Switch between English and Arabic seamlessly.
Download a clean, ATS-compliant PDF instantly.
You can try the live tool here: Adawati CV Builder. Turn off your Wi-Fi before clicking download if you want to test the "Client-Side only" claim! π
Whatβs Next?
Building tools that respect user privacy shouldn't be the exception; it should be the norm. My next challenge is optimizing the client-side PDF compression.
Have you worked with client-side PDF generation before? What libraries did you find most reliable for handling complex layouts and custom fonts? Let me know in the comments!
Top comments (0)