Fifteen templates now sit beside cover letters and application tracking
Reactive Resume starts with a familiar loop: choose from 15 templates, type beside a live preview, rearrange sections, then export PDF, JSON, or DOCX. Basic use on the hosted site needs no account. Accounts add saved resumes and public links, while v5.3.0 also has a cover-letter library and an application tracker. That makes it closer to a personal job-search workspace than a disposable PDF form.
That polished surface sits on a sizeable codebase. The commit we measured contained 1,478 files and about 121,893 lines of source in a 43.1 MB checkout. It is a TypeScript monorepo with separate web, server, database, PDF, DOCX, authentication, and MCP packages. A developer can change almost any layer, but a small template tweak still enters a system with several moving parts.
Self-hosting requires an app container and separate PostgreSQL service
The smallest supported deployment is one application container plus a separate PostgreSQL service. You must set the public URL, database connection, and authentication secret. Email can fall back to server logs, and uploads can live on a mounted local directory instead of S3. Redis and an encryption secret enter the picture only for the AI agent workspace and saved AI providers. The self-hosting guide explicitly says an image with an embedded database is not planned.
Source development is heavier than pulling that application image. Our pnpm install added 1,259 packages in 63 seconds and occupied 1,489 MB on disk, more than 34 times the checked-out repository size. The current contributor guide asks for Node 24, pnpm 11.21.0, Docker, and Compose. We measured commit 3221afd under Node 22, so use the current documented runtime rather than treating our older sandbox image as a setup prescription.
What happened when we ran it
Our sandbox installed Reactive Resume in 63 seconds, built it in 36 seconds, and completed its tests successfully in 136 seconds. The run used commit 3221afd from August 23, 2026 inside an unprivileged Debian container with 3 CPUs and 8 GB of RAM. We supplied no secrets. Those results cover repository setup and its own checks, not a live account flow or PDF comparison across browsers.
The checkout had 6 CI workflow files, a Dockerfile, a Compose file, a tests directory, and pnpm workspaces. Nothing in the supplied run log failed, so there is no hidden error to explain away. The useful warning is scale: a 43.1 MB clone became a 1,489 MB installed workspace before PostgreSQL data, uploaded files, or container images. Budget for that if you plan to fork the product rather than simply run its published image.
Client-side PDF export removes a service but still depends on readable input
Since v5.1.0, PDF generation runs in the browser through @react-pdf/renderer. New installations no longer need Browserless, Chromium, or a print service. That simplifies the server stack and makes the 2-service application-plus-PostgreSQL example credible. The editor still owns template layout, custom fonts, rich text, photos, A4 or Letter sizing, and the final file a job applicant will send, so check your chosen template with real content before relying on it.
Import has a firm boundary. Version 5.3.0 can extract readable text from a PDF locally without an AI provider, but scanned PDFs without readable text stop with an error. The 36-second build and 136-second successful test run do not turn that boundary into OCR. If your source resumes are scans or photos, plan a separate recognition step. JSON Resume is the cleaner import route when you already control structured data.
Version 5.3.0 added MCP consent and kept accessibility work visible
The September 6 release repaired MCP OAuth registration and added an explicit Allow or Deny consent screen. Previously registered clients must reconnect to establish the new resource grants. The same release improved heading levels and semantic rich text for screen-reader users inside resume previews, while its notes say public-viewer and exported-document accessibility remain separate work. Those details show careful maintenance without pretending every output path is finished.
GitHub recorded the last push on September 12, 2026, and issue activity continued through September 16. The repository showed 42,998 stars and 50 combined issues and pull requests when fetched. Our inspected commit also had 6 CI workflow files and a passing 136-second test step. Recent reports and fixes cover templates, authentication, self-hosting, accessibility, and MCP, which is healthier evidence than the star count alone.
Use it when browser accounts matter more than a text-file workflow
Reactive Resume earns its weight when one place must hold resumes, cover letters, applications, public links, and user accounts. Its 15 templates give non-designers useful room without exposing raw layout code. OpenResume is a better fit for a browser-local document with fewer server concerns. RenderCV suits engineers who want YAML in version control, while JSON Resume is the stronger choice when the data format must travel between tools.
For most individuals, the hosted editor is the sensible first test because it asks for no account and avoids the 1,259-package workspace. A school, household, or team may value a private instance enough to accept PostgreSQL, persistent uploads, upgrades, and backups. The deciding fact is simple: our build and tests passed, but the development install still consumed 1,489 MB before your first resume or database row existed.

