Skip to content

angkasa27/resume-editor

Repository files navigation

Resume Editor

A free, no-login resume editor built with Next.js. Write your resume as structured data, preview it live, switch layouts without losing content, and export it as PDF or JSON.

Features

  • Structured resume draft with typed sections for profile, summary, experience, projects, education, skills, and more
  • Live preview with switchable layouts and presentation settings
  • JSON import/export for portable resume data
  • Client-side draft persistence with localStorage
  • Server-side PDF export powered by Puppeteer locally and Cloudflare Browser Run in production

Tech Stack

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Zustand
  • React Hook Form + Zod
  • TipTap
  • Vitest

Getting Started

pnpm install
pnpm dev

Open http://localhost:3000.

Available Scripts

pnpm dev
pnpm build
pnpm start
pnpm lint
pnpm test
pnpm test:watch
pnpm typecheck

How It Works

  • The main editor lives at /
  • The PDF render target lives at /resume-pdf
  • PDF export is handled by POST /api/export-pdf
  • Resume drafts are stored locally in the browser and can be exported/imported as JSON

Environment

Optional:

PDF_EXPORT_PROVIDER=auto
CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_BROWSER_RUN_API_TOKEN=
CLOUDFLARE_BROWSER_RUN_KEEP_ALIVE_MS=60000
PDF_EXPORT_TRUSTED_ORIGINS=https://example.com,https://admin.example.com

PDF export uses local Puppeteer in development by default. In production, set PDF_EXPORT_PROVIDER=cloudflare-browser-run or leave auto and provide the Cloudflare Browser Run credentials above. Same-origin requests are allowed automatically; use PDF_EXPORT_TRUSTED_ORIGINS only for intentional cross-origin callers.

Project Structure

src/
  app/                      # Route entrypoints and route handlers
  components/ui/            # Shared UI primitives
  hooks/                    # Reusable app-level hooks
  lib/                      # App-wide utilities
  test/                     # Test setup
  features/resume-editor/
    domain/                 # Draft model, schema, presentation, rich text, section metadata
    editor/                 # Editor UI, section panels, shell, controller hooks
    forms/                  # Shared form helpers and schema adapters
    preview/                # Layouts, live preview, PDF-facing rendering
    server/                 # Server-only PDF generation
    state/                  # Zustand store and draft state helpers

About

A resume editor that doesn't trap your data, swappable layouts, local-only, exports clean PDF and JSON

Topics

Resources

Stars

Watchers

Forks

Contributors