Skip to content

Release history

reactive-resume releases

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

All releases

28 shown

No immediate action
v5.1.8 New feature

Icons, highlight colors, MCP PDF URLs

No immediate action
v5.1.7 Breaking risk

Custom Styles + sync + links

No immediate action
v5.1.6 Breaking risk

RTL PDFs + OAuth reconciliation + Agent thread fix

Config change
v5.1.5 Breaking risk
Auth

Hono server, self‑hosting changes, Agent restore

Config change
v5.1.4 Breaking risk
Auth Breaking upgrade

AI config & attachment requirements

No immediate action
v5.1.3 New feature

Scizor resume template

v5.1.2 New feature
⚠ Upgrade required
  • Docker image now uses `LOCAL_STORAGE_PATH=/app/data`; ensure the pointed directory is an absolute writable path
  • Startup validation fails early if the local storage directory lacks write permissions
  • Updated `.env.example`, Dockerfile, Compose configuration, and self‑hosting docs to reflect the new local storage path behavior
Notable features
  • AI Resume Assistant chat window with JSON Patch proposal generation, before/after previews, and accept/reject controls
  • Automatic CJK fallback font registration for correct Chinese/Japanese/Korean PDF rendering
Full changelog

Self-hosters using local storage: the official Docker image now sets LOCAL_STORAGE_PATH=/app/data and validates that the directory is writable at startup. If you override the container environment, keep LOCAL_STORAGE_PATH pointed at an absolute writable path.

Highlights

  • AI Resume Assistant. Added a chat window inside the resume builder for targeted resume edits. The assistant can draft JSON Patch proposals, show before/after previews, and lets you accept or reject each change before anything is applied. #3022
  • Better CJK PDF output. Added automatic CJK fallback font registration so Chinese, Japanese, and Korean text renders correctly in both the live PDF preview and exported PDFs. #3016

Resume Builder & Exports

  • Added a builder dock shortcut for the AI assistant, with a draggable and resizable desktop window plus a mobile sheet layout. #3022
  • Added review controls for AI-generated proposals, including proposal queues, raw JSON Patch inspection, accept/reject actions, and stale-proposal handling when the resume changes. #3022
  • Fixed rich text PDF rendering when text blocks contain top-level inline content around lists or paragraphs. 42e83cc6
  • Kept Latin-only PDF output unchanged while applying fallback fonts only when CJK glyphs are needed. #3016

Sharing & Imports

  • Fixed public resume URLs returning a server error when the owner-only dashboard title was redacted to an empty string for viewers. #3012
  • Improved v4 JSON imports so custom section content, hidden items, and skill/language levels migrate correctly into v5 resumes. #3013

Self-Hosting

  • Fixed Docker local-storage health checks by resolving the data directory through LOCAL_STORAGE_PATH instead of relying on the runtime working directory. #3004
  • Added startup validation for the local storage directory so misconfigured volume permissions fail early with a clearer error. #3004
  • Updated .env.example, the Dockerfile, Compose configuration, and Docker self-hosting docs for the new local storage path behavior. #3004

Maintenance & Localization

  • Synced translation catalogs from Crowdin. #3005
  • Updated dependencies and lockfile entries needed for the AI assistant, PDF rich text normalization, and related test coverage.

Full Changelog: v5.1.1...v5.1.2

v5.1.1 Breaking risk
Notable features
  • Free‑form resume page format preserving A4 width while allowing unlimited vertical content
  • Authenticated `GET /resumes/{id}/pdf` endpoint for direct PDF downloads (OpenAPI updated)
Full changelog

Highlights

  • Free-form resume pages. Added a new Free-form page format for resumes that should keep A4 width while allowing content to flow beyond a fixed page height. This is useful for long-form web-style resumes while preserving predictable export sizing. #2991
  • PDF downloads through the API. Added an authenticated GET /resumes/{id}/pdf endpoint so API clients can generate and download a resume PDF directly. The OpenAPI spec has been updated with the new route. 5042ad9d

Resume Builder & Exports

  • Fixed nested lists in PDF rendering so rich text with sub-lists exports correctly. #2993
  • Fixed inline item links in exported PDFs and made resume links consistently underlined. #2978
  • Added italic font registration for PDF generation and falls back to IBM Plex Serif when a selected font is unavailable. 6d54ffa8, 4c771307
  • Improved header name line height across templates for cleaner PDF output. #2976
  • Added prose styles to the rich text editor so formatted content is easier to read while editing. #2984
  • Added a preview control to toggle page stacking and adjusted the default preview zoom for a better builder canvas experience.

Fixes

  • Fixed a runtime error when enabling two-factor authentication. #2981
  • Fixed excessive re-renders in the Experience section when editing role progression. #2983
  • Removed route preloading to avoid unwanted route work while navigating the app. #2949
  • Relaxed resume data parsing to accept compatible objects with additional fields. #2793
  • Updated dialog layout behavior so tall dialogs scroll correctly on smaller screens.
  • Updated the sample resume picture URL to point to a valid bundled image.

Self-Hosting

  • Automatically loads .env from the workspace root for server-side code, improving local and self-hosted configuration behavior. #2987
  • Restored the local storage path to /app/data in the official container image and clarified the Docker storage documentation. #2990

Maintenance & Localization

  • Synced translation catalogs from Crowdin. #2995, #2997
  • Removed unused dependencies, stale generated cache artifacts, and obsolete tests from the repository.

Full Changelog: v5.1.0...v5.1.1

v5.1.0 Breaking risk
⚠ Upgrade required
  • Update healthcheck script: replace `curl` with the provided Node.js fetch check.
  • Back up your PostgreSQL database before upgrading due to schema migrations that run automatically on container start.
  • Self‑hosted Compose files no longer require a `printer:` service block; minimum stack is Reactive Resume + PostgreSQL (optional S3/SMTP).
Breaking changes
  • Browserless / Chromium dependency removed; PDF generation now occurs entirely in the browser via @react-pdf/renderer.
  • `BROWSERLESS_TOKEN`, `PRINTER_ENDPOINT`, `PRINTER_APP_URL`, and `FLAG_DEBUG_PRINTER` environment variables are no longer read or supported.
  • Custom CSS option removed from the resume builder because raw CSS no longer applies to exported PDFs.
Notable features
  • PDF generation moved fully client‑side using @react-pdf/renderer; live preview rendered with pdfjs for pixel‑accurate fidelity.
  • All resume templates (Azurill, Bronzor, Chikorita, … Rhyhorn) re‑implemented on the new renderer with section‑by‑section parity.
Full changelog

Self-hosters, please read before upgrading.

  • No more Browserless / Chromium dependency. From v5.1.0 onwards, you do not need to run a printer, Browserless, or headless Chrome service alongside Reactive Resume. PDF generation is now performed entirely in your browser via @react-pdf/renderer. The BROWSERLESS_TOKEN, PRINTER_ENDPOINT, PRINTER_APP_URL, and FLAG_DEBUG_PRINTER environment variables are no longer read and can be removed from your .env.
  • Update healthcheck script: curl has been removed from the base image, so please update to using the new health check script.
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3000/api/health').then((r) => { if (!r.ok) process.exit(1); }).catch(() => process.exit(1));"]
  • Database migrations. This release ships several new schema migrations to bring the resume model up to date. They run automatically on container start, but you should back up your PostgreSQL database before upgrading in case rollback is needed.
  • Custom CSS has been removed. Because the resume PDF is no longer produced by a headless browser, raw CSS no longer applies to the exported document. A first-class template-customization story is on the roadmap for a future release.

Highlights

  • PDF generation moved fully client-side. @react-pdf/renderer now produces the exported PDF directly in your browser, and the in-builder live preview is rendered with pdfjs, so what you see in the preview is exactly what you'll download.
  • All resume templates re-ported. Azurill, Bronzor, Chikorita, Ditgar, Ditto, Gengar, Glalie, Kakuna, Lapras, Leafish, Meowth, Onyx, Pikachu, and Rhyhorn have all been re-implemented on the new renderer with section-by-section parity.

Resume Builder

  • Pixel-accurate live preview. The builder preview is now rendered with pdfjs against the same document tree used for export, eliminating the long-standing "looks fine in the preview but breaks in the PDF" class of bugs.
  • TanStack Form everywhere. All 35 form-bearing surfaces in the app — login, register, forgot-password, resume sections, settings, and dialogs — have been migrated to TanStack Form. react-hook-form and @hookform/* packages have been removed.
  • TanStack Query is the single source of truth for resume state. The previous standalone Zustand resume store has been retired; optimistic updates, refetching, and error recovery now flow through one cache, behaving consistently across tabs and reloads.
  • Native page format and margins. Page size and margin controls are now expressed directly to @react-pdf/renderer, replacing the Puppeteer-specific printMarginTemplates workaround.

Self-Hosting

  • One-service deployment. Self-hosted Compose files no longer need a printer: service block. The minimum stack is now just Reactive Resume + PostgreSQL (with optional S3-compatible storage and SMTP).
  • /api/health simplified. The health endpoint now reports database and storage only, returning HTTP 503 if either dependency is unhealthy. There is no longer a printer field to monitor.
  • Updated documentation. The Self-Hosting, Quickstart, Development, Architecture, and Legal pages have all been refreshed to describe the simplified single-service deployment.

Authentication & AI

  • Better Auth retained end-to-end with all nine plugins — passkeys, two-factor authentication, OAuth (Google / GitHub / LinkedIn / custom), API keys, dynamic OAuth client registration, dashboard, sentinel, and admin. Existing sessions and logins carry over after the upgrade.
  • AI features carry over (Resume Analysis, AI Chat with JSON Patch tool calls, PDF / DOCX import) with the same provider matrix (OpenAI, Google Gemini, Anthropic, Ollama, OpenRouter). The AI router and service layer have been cleanly decoupled from the jobs / tailor flow for a more modular surface.

Removed

  • Custom CSS option in the resume builder. With rendering bound to @react-pdf/renderer, raw CSS no longer applies to the exported PDF. A structured customization API will return in a future release.
  • PRINTER_* and BROWSERLESS_* environment variables, the printer/{resumeId} route, the getByIdForPrinter server function, and the printer-token signing code are all gone.

Maintenance

  • Removed dead printer-token utilities and the legacy public RPC surface for printer-only resume reads.
  • Tightened the boundary between server-only and client-only code: server modules (database, storage, auth) are lazy-imported so they no longer leak into the client bundle.
  • Reverse-proxy timeout guidance in the nginx example has been simplified now that no long-running PDF generation request flows through the proxy.

Full Changelog: v5.0.20...v5.1.0

v5.0.20 Mixed
Notable features
  • New Meowth resume template with compact ATS-friendly layout
  • Custom icon color support on section items
  • Settings consolidation into unified Integrations page
Full changelog

Features & Improvements

  • Added the new Meowth resume template (compact ATS-friendly layout with an inline three-column entry header), thanks to @JamesGoslings. #2923
  • Added support for custom icon colors on section items, thanks to @Ruzenie. #2928
  • Improved account-related email UX with better templates for password reset and email verification. b87f2007
  • Consolidated separate settings pages into a single Integrations page for a more streamlined configuration flow. 5d8126d4

Fixes

  • Added a targeted Chinese localization fix for the Skills section title (zh-CN). #2931
  • Allowed MCP localhost loopback only for local MCP clients, improving local integration behavior while keeping external access restrictions intact. 623ca5c6

Maintenance & Localization

  • Updated dependencies and lockfile, including cleanup of unused exports (Knip). e1bccbcc
  • Synced translation catalogs from Crowdin. #2922, #2925, #2926, #2932, #2934, #2935
  • Updated docs to list Meowth alongside existing templates. #2929

New Contributors

  • @Ruzenie made their first contribution in https://github.com/amruthpillai/reactive-resume/pull/2928

Full Changelog: https://github.com/amruthpillai/reactive-resume/compare/v5.0.19...v5.0.20

v5.0.19 Mixed
Security fixes
  • Hardened authentication and OAuth systems
  • Enhanced AI URL validation and printer/export endpoint security
  • Improved resume access controls and Browserless configuration hardening
Notable features
  • OpenRouter integration for AI-powered features
  • Text color support in rich text editor with DOCX export
  • Chinese font options
Full changelog

Highlights

  • Added OpenRouter as an AI provider, thanks to @iagodemacedo. #2906
  • Added Chinese font options, thanks to @Platinum1154. #2905
  • Added text color support to the rich text editor, including DOCX export handling for colored text, thanks to @Platinum1154. #2903
  • Fixed MCP tool names for Claude Desktop compatibility. #2885
  • Improved Docker-based local development support and refreshed self-hosting setup guidance. 849aad64, c0387298

Fixes & Security

  • Thank you to @shaxbozaka for running a security audit on Reactive Resume and helping make the app more secure.
  • Hardened auth, OAuth, AI URL validation, printer/export endpoints, resume access controls, Browserless configuration, and public route exposure. a42dbcd4
  • Corrected Computer Modern Sans italic font file mappings, thanks to @russellbrenner. #2881
  • Improved email handling and user lookup in OAuth configuration, thanks to @VedantBhawsar. #2874
  • Aligned role period text in experience items, thanks to @JamesGoslings. #2908
  • Reduced resume preview wheel zoom sensitivity, thanks to @GoldenSection0618. #2911
  • Prevented orphaned section headings at page breaks, thanks to @5queezer. #2851
  • Added top margin handling for subsequent PDF pages, based on feedback from @trigger-xyz. bbc38d2f

Maintenance & Localization

  • Updated dependencies and lockfile, including security-focused package pins and Vite+ version pins. c6e8df0a, 847d69b6, 9b3916d4
  • Added SECURITY.md. 9e1e593d
  • Added focused tests for auth, printer/export, URL validation, form edge cases, rich text DOCX output, font handling, and CSS sanitization hardening. d0af9f4b
  • Synced translation catalogs from Crowdin and moved syncing to GitHub Actions. #2886, #2918

New Contributors

Full Changelog: v5.0.17...v5.0.19

v5.0.17 New feature
Notable features
  • Resume Analysis with AI scoring (0–100), dimension scorecard, strengths, and prioritized suggestions saved per resume
  • Graceful fallback notice with link to AI Settings when AI features are disabled
  • Enhanced MCP server with updated tools, resources, prompts, and new server card at /.well-known/mcp/server-card.json
v5.0.16 New feature
Notable features
  • Printer pages now include resume owner's name in document title for clearer PDF metadata
  • Shared resume sections have improved alignment and spacing
v5.0.15 New feature
Security fixes
  • Increased minimum password length to 8 characters
  • Hardened token signing and verification paths
Notable features
  • LinkedIn sign-in for self-hosted
  • Improved autosave with persistent warnings
  • Hardened authentication defaults
v5.0.14 Bug fix

Minor patch syncing translations from Crowdin, fixing sidebar width slider UI interaction, and adding OAuth 2.1 support for Claude.ai MCP connector integration.

v5.0.13 New feature
Breaking changes
  • Toolchain migration from Biome to Oxlint may affect build configurations
Notable features
  • AI-powered resume tailoring for job postings
  • Job listing search with filters
  • DOCX resume export
v5.0.12 Maintenance
Breaking changes
  • Component refactor to @base-ui/react may affect custom component implementations
v5.0.6 New feature
Breaking changes
  • PUT /resume/{id} now returns updated resume object instead of void
Notable features
  • Embedding links in section titles
  • Atomic resume patching API
  • Text overflow handling in layout
v5.0.5 New feature
Notable features
  • Form blocker hook for unsaved changes
  • Summary custom section type
  • Cover letter support
v5.0.4 New feature
Notable features
  • Free-form page formats for PDFs
  • Undo/Redo functionality restored
  • Section-aware sidebar arrangement
v5.0.3 New feature
Notable features
  • Universal AI endpoint override
  • Enhanced chip input for keywords
  • Improved RTL support
v5.0.1 New feature
Notable features
  • 12 resume templates
  • Integrated AI support
  • 2FA and Passkey authentication
v5.0.0 New feature
Notable features
  • 12 resume templates
  • Integrated AI capabilities
  • 2FA/Passkey security

Beta — feedback welcome: [email protected]