PERSONAL PRODUCT · DOCUMENT EDITOR

Folio CV Studio

A resume builder that keeps the document on your device and lets the finished PDF take shape as you edit.

RoleProduct & Engineering
StackReact / TypeScript
Privacy modelDevice-local
Open the live app ↗View source on GitHub ↗

Product context

Build a CV without handing your personal details to a service.

Local by design

Folio stores the working CV in browser storage on the current device. It has no account flow, backend, or upload requirement. Users can export a versioned JSON backup before moving browsers or clearing site data.

Edit the story, not a rigid template

Contact details and CV sections are edited in a dedicated workspace. Sections can be added, hidden, reordered by drag-and-drop or keyboard, and populated with multiple entries. The design panel controls paper size, typography, spacing, margins, accent treatments, contact icons, and footer details. All 24 font families are bundled locally with their licenses, so the editor doesn’t rely on a live font service.

Preview and export use the same document

The live preview and PDF download are generated from one React PDF document. Updates are debounced and serialized, and the exported text stays selectable with clickable links—rather than producing a screenshot-like PDF. The same generated PDF blob feeds both preview and download.

Product modules

A focused editor for shaping and carrying your CV.

Folio keeps editing, page design, preview, and backup in one browser workspace.

01 / CONTENT

Structured CV sections

Personal details, profile, experience, education, projects, skills, certifications, and languages are separate editable sections. Add multiple entries, hide sections from the exported CV, and rearrange the order to fit the role.

02 / DESIGN

Document controls

Choose classic or modern layout, A4 or US Letter, from bundled font families, accent colors, target areas for the accent, font size, line spacing, page margins, contact icons, and optional page footers.

03 / PREVIEW

Live PDF rendering

The preview refreshes after edits and supports zoom controls, page count, a larger preview dialog, and responsive mobile edit/preview modes. Generation is debounced and serialized to avoid stacking concurrent PDF renders.

04 / PORTABILITY

Backup and restore

Export the editable document—including section order, visibility, and design settings—as versioned JSON. Import validates the backup with a schema before asking to replace the current CV. A blank document and example CV are available as reset starting points.

05 / IMPLEMENTATION

Type-safe data, local persistence

React Hook Form controllers edit validated fields, Zod checks document and backup structure, and Zustand owns the current CV. Versioned local storage migrates older settings with schema defaults. The PDF generator registers local bundled fonts, so it does not need to contact a font service while users work.

  • React + TypeScriptComponent-based editor with typed CV structure.
  • Zustand + local storageDevice-local state with versioned restoration and migration.
  • React PDF + PDF.jsShared generated document for preview and download.

System concerns

React, TypeScript, Zustand, React Hook Form, Zod, dnd-kit, React PDF, PDF.js — private local editing, accessible document controls, portable backups, and selectable PDF output.

PERSONAL PRODUCT

Folio keeps resume data in the user’s browser and makes portability explicit through a validated backup format.