Local-first résumé builder · Personal product · build and ship
Resume Creator
A résumé preview is only useful if the exported document keeps the same line breaks, page breaks and readable text. Different renderers can turn a carefully edited page into a different document.
Open Resume Creator (opens in a new tab)↗Source on GitHub (opens in a new tab)↗

Project overview
I built Resume Creator as a local-first résumé editor: users can work without signing up, check the document as they write, and export it without sending résumé content to a server.
One layout engine for preview and PDF
The core is a framework-free layout engine. A composer turns structured résumé content into blocks and drawing operations; the paginator distributes those blocks across pages. The SVG preview, PDF and print use that shared layout rather than independently guessing line and page breaks.
Headings stay with their following content, and short entries can be kept together. This makes pagination an explicit part of the product instead of a last-minute browser-print adjustment.
Portable documents, with practical limits
The same résumé data can produce a vector PDF, an editable Word file, plain text, responsive HTML and a JSON backup. Browser autosave and undo/redo support editing; the backup gives users a way to move their work between devices.
The templates favour selectable text and a single reading order. Those choices support parsing, but the product does not guarantee an ATS score or an interview. The live site documents that distinction alongside its templates and résumé guides.
What I built
- A local-first React and TypeScript résumé builder with eight templates, a live preview and no account requirement.
- A shared layout engine for the SVG preview, vector PDF and print, with pagination that keeps headings with their entries.
- Exports for Word, plain text, responsive HTML and JSON backup, alongside browser autosave and undo/redo.
- Field validation and a résumé health check that flags missing details, inverted dates and weak bullets.
- Keeping layout decisions consistent across preview and export. The composer produces draw operations that the preview and PDF consume instead of asking separate layout systems to agree.
Sources and live demo
Stack
- React
- TypeScript
- Vite
- jsPDF
- Zod