A resume builder with a real exit path
Reactive Resume combines the convenience of a hosted visual builder with two protections against lock-in: the entire application can be self-hosted under MIT, and resume data can be exported in structured JSON. A user picks one of 15 templates, fills in career information, rearranges sections, changes colors and fonts, watches a live preview, and exports PDF, JSON, or DOCX. Basic use on the hosted site does not require an account.
That is a strong consumer proposition. Many resume services reveal their real cost only after a user has entered sensitive employment history and tries to download. Reactive Resume says it has no ads, tracking, or hidden charges, and the source is available for inspection. Sharing links, dark mode, custom sections, rich text, two-factor authentication, passkeys, and multilingual support make it feel like a finished product rather than a template demo.
The privacy claim still needs ordinary nuance. A public share is public to whoever has the link. A hosted account stores data on someone else's service. Optional OpenAI, Gemini, and Claude integrations send selected content to those providers. Self-hosting changes who operates the application; it does not make every enabled integration local.
Editing depth is the main advantage
Templates cover conservative single-column layouts, denser sidebars, and more visual designs in both A4 and Letter sizes. Users can control section order, page spacing, fonts, colors, and structured style rules. Custom sections make the schema usable for publications, volunteering, awards, projects, or fields outside a conventional employment timeline.
The live preview is fast feedback, but the exported document is the product. Reactive Resume moved PDF generation entirely into the browser through @react-pdf/renderer in v5.1. New self-hosted installations no longer need Browserless, Chromium, or external print infrastructure. This reduces memory use, deployment pieces, and server-side exposure of document content. It also creates a separate rendering path whose font and layout behavior must match the editor.
Current issues show where that match can fail. Users report bold text disappearing with Open Sans, extra overlapping characters in exported files, missing punctuation glyphs, vertically misaligned fonts, and all-black previews or PDFs. Several have focused fixes in progress. These are not universal failures, but a resume cannot tolerate a subtle export defect. Always download, reopen, zoom, copy text, and print-test the final file.
Language support is broad but uneven
The project uses Crowdin and maintains dozens of locale catalogs. The interface can serve an international audience, and paper sizes cover common regional standards. Translation of buttons and fields is not the same as correct document typography.
Issue 3275 reports Arabic resumes rendering incorrectly in both the editor and generated PDF, including text direction, character shaping, alignment, and section layout. Users of right-to-left scripts should treat that as a current blocker unless their exact template passes testing. Missing-glyph problems can also affect punctuation even in Latin text when a selected web font lacks a character and the PDF renderer has no fallback. A pull request adds Noto punctuation fallback for one such case.
Applicant tracking systems introduce another distinction. A clean visual layout does not guarantee that automated hiring software reads sections, dates, links, and text in the intended order. An August 2026 feature request proposes a deterministic ATS check that would inspect structure without an AI provider. Since that is a request, not a shipped feature, users should test text extraction and follow the target employer's format guidance rather than trusting an “ATS-friendly” assumption.
Self-hosting is easier, not effortless
The quick start clones the repository and runs Docker Compose, exposing the app on port 3000. The production stack uses a TypeScript application, PostgreSQL through Drizzle, authentication, and optional SeaweedFS for S3-compatible file uploads. Documentation covers Docker deployment, environment settings, development, architecture, and exports.
A durable installation needs persistent volumes and coordinated backups for database records and uploaded assets. The public application URL must match reverse-proxy and authentication expectations. Email-based flows need a mail service. AI, saved providers, and MCP-related paths may require Redis according to current development documentation. A pull request from August fixes MCP bearer-token verification when a public APP_URL does not resolve from inside a container, a common reverse-proxy topology. Test that path before advertising agent access.
Upgrades deserve staging because the styling system is moving. Version 5.2.5 introduced semantic CSS stylesheets and fixed a pasted page margin that could crash the app. Open reports say activating converted styles can fail parity checks for one template and that some custom styling no longer affects expected sections. Keep JSON exports of important resumes before a major migration.
Health and the decision
Version 5.2.5 shipped on July 30, 2026, and the repository was pushed on August 11. The 117 open issues and pull requests include PDF fixes, accessibility behavior, MCP work, translations, import errors, locale handling, and new career-data ideas. The queue is active and detailed rather than neglected.
Documentation is excellent for both ordinary users and operators. The move away from headless-browser PDF generation shows a willingness to remove operational burden, while structured export keeps user data portable.
Reactive Resume is easy to recommend for creating and maintaining a resume, especially when privacy, customization, and migration matter. Its weak point is the final mile where browser styling becomes a PDF consumed by fonts, printers, recruiters, and automated systems. Treat every export as a proof, not a promise. With that check, the project offers more control and fewer traps than most commercial resume sites.