All posts

CV Studio — A Free, Private Resume Builder

By Abdul Manan - 2026-09-10 - 4 min read - #javascript #tools #career #privacy #open-source
CV Studio — A Free, Private Resume Builder

The online CV builder script is always the same. You fill in everything, you get a nice preview, you click Download — and there's the paywall. You've just typed your full employment history, address and phone number into a database to get nothing back.

CV Studio is my answer: a free, fast, 100% client-side CV / resume builder. No accounts, no server, and your data never leaves your browser. MIT licensed.

12 templates that cover real formats

Classic, Horizon, Minimal, Executive, Bold, Tech, Timeline, Swiss, Gradient, Compact, Paper and Onyx — spanning ATS-friendly single-column, sidebar layouts, timelines, dark, serif and dense formats.

The ATS-friendly ones matter more than they look. A lot of applications go through an applicant tracking system before a human sees them, and a two-column design with text in boxes can come out scrambled. Having both kinds in one tool means you can keep a plain version for the robots and a designed version for the human.

The pagination engine was the hard part

A CV is a paged document, and the web has no native concept of one. The preview renders real A4 or US Letter pages, and content flows across them automatically — which means measuring rendered blocks and deciding where each one is allowed to break.

On top of that sits Fit to 1 / 2 / 3 pages, which auto-shrinks type, spacing and margins until the content lands on the target page count. Everyone's real constraint is "it must be one page", so the tool solves for that directly instead of leaving you to nudge a font-size slider twenty times.

Everything is adjustable, live

Colour, font and spacing changes render while you drag, because a preview that updates on blur makes you guess.

Ten section types, plus your own

Experience, education, skills, languages, projects, certifications, awards, interests, references — and unlimited custom sections, because someone always needs "Publications" or "Volunteering" and a fixed schema always loses.

Losing work is the real failure mode

For a tool with no accounts, "my browser crashed" cannot mean "start again". So:

PDF export without a server

Export uses html2canvas + jsPDF, loaded from a CDN only when you click download, with a print fallback when you're offline. Ctrl+P → Save as PDF gives you a vector-quality copy that is often better than the rasterised one, and it works with nothing loaded at all.

That's the general rule in this app: the primary path can use a library, but there always has to be a path that works with nothing.

The stack

Vanilla JavaScript, hand-written CSS, canvas-based image editing and a custom pagination engine. No framework and no build step — open index.html and it runs.

Every form control is hand-built too: dropdowns, month/year picker, sliders, colour picker and toggles. Native browser popups look wrong inside a designed app and behave differently on every OS, so they're gone.

It also ships with full SEO wiring — meta tags, Open Graph, JSON-LD (WebApplication + FAQ + author), robots.txt, sitemap.xml, an llms.txt for AI crawlers, and a PWA manifest — the same checklist I wrote about in SEO for Developers.

Use it or fork it

git clone https://github.com/abdulmanan69/cv-maker.git
# then just open index.html

Deploying your own copy is Settings → Pages → main / root. Search-and-replace the site URL in index.html, robots.txt and sitemap.xml once and you're live.

Code and issues: github.com/abdulmanan69/cv-maker. Building something similar and want a hand? Say hi.

Share: X LinkedIn WhatsApp Facebook