Skip to content
AA.

01 / CASE STUDY

TruepageCv

Truepage (truepagecv.com) is a product I built end to end for people who need a clean resume and a matching letter without fighting layout tools. Content is structured once, templates are just renderers, and the PDF is the same HTML as the live preview. Cover letters are first-class documents, optionally fed by a resume and a job description. I treated it as a real system: auth, editors, a PDF worker, AI on the server, and a VPS deploy behind Cloudflare.

Role
Full-Stack Engineer
Year
2026
Client
Product
Stack
Next.js · NestJS · TypeORM
TruepageCv cover

Key features

  • Email/password auth and Google OAuth with httpOnly JWT cookies
  • Independent resumes and cover letters, with optional resume linking for AI
  • Form editor with live A4 preview, autosave and three ATS-safe templates
  • PDF export that matches the on-screen preview
  • Server-side cover letter generation from a job description (Gemini, local fallback)
  • Production stack on Docker Compose, host nginx and Cloudflare Full (strict)

Challenge

Editor, API, AI output and PDF had to share one document model or templates and downloads would drift. Chromium is too heavy for the API process. Production needed HTTPS, Google OAuth on an API subdomain and secrets kept out of git on a single 8 GB VPS.

Solution

I defined resume and letter content as Zod schemas in a shared package, stored as Postgres JSONB, and rendered templates from that data. PDF jobs go through BullMQ to a dedicated Puppeteer worker. NestJS and TypeORM own the API; Next.js and Redux Toolkit own the editor. Docker Compose, host nginx and Cloudflare Origin certificates take it to production with per-app env files so local and live OAuth never mix.

TruepageCv interface
TruepageCv interface