Amruth Pillai c8df749258 feat(web): one sheet for sharing, downloads and version history
Share & export is one 440px sheet (a full-height bottom sheet on phones)
with Link, Download and History tabs. Share opens Link, the ▾ beside
Download PDF opens Download, the clock opens History, and ⌘⇧S / ⌘⇧E open
their tabs. On desktop the page moves 120px aside so it stays visible.

- Link: the public switch card; the address with a live check (300 ms),
  the reason it can't be used and a suggestion, saved only once valid, so
  the old address stays live; Copy ("Copied" for 2 s); visitor downloads;
  the password (Q3a); Open public page; a QR code; Share via… where the
  platform offers it; and views, downloads and time since the last view
  over 30 days with a daily chart, or the explanation while the link is
  off.
- Download: format cards explained by when to use them, Resume or Cover
  letter (with the resume header option) when the resume has a letter,
  the file name recruiters see (First-Last-Resume by default, unsafe
  characters stripped), a non-blocking note about open Check issues, and
  progress inside the button; a failure offers Try again and PDF.
- History: name the current state; a timeline of Now, sessions, named
  versions, restores and where the document came from. Picking a version
  shows it on the page, read-only and outlined, with its banner; Restore
  saves "Before restore" first. Named versions can be renamed or deleted.

Also:
- Autosaves send this visit's session id, and naming or restoring a
  version saves pending edits first.
- The one-click PDF and every export use the First-Last-Resume name.
- Resume dialogs stop asking for a slug (it's edited in Share), which also
  stops Rename from overwriting a custom slug with one made from the name.
- The public route redirects a renamed resume's old address.
- Removed: the download dialog, the version-history menu and the sharing,
  statistics and export sections.
2026-09-28 19:48:08 +02:00
2026-07-04 19:06:31 +02:00
2026-05-07 15:12:33 +02:00
2026-08-13 22:43:53 +02:00
2026-08-24 21:44:16 +02:00
2026-01-21 23:44:48 +01:00
2026-09-19 22:05:55 +02:00
2026-04-25 11:29:27 +02:00
2026-08-24 21:44:16 +02:00
2026-08-24 21:44:16 +02:00
2026-08-24 21:44:16 +02:00

Important

Repository moved: Reactive Resume now lives at reactive-resume/reactive-resume on GitHub. Docker Hub stays at amruthpillai/reactive-resume. GHCR builds now publish to ghcr.io/reactive-resume/reactive-resume. Verified image tags: latest, v5, v5.3, and v5.3.0 (AMD64 and ARM64). The current version was rebuilt and production redeployed for this rename; no new GitHub release or version bump was made. See migration details. GitHub Sponsors and Open Collective funding links remain unchanged.

Reactive Resume

Reactive Resume

Reactive Resume is a free and open-source resume builder that makes it easy to create, update, and share your resume.

Get Started · Learn More

Reactive Resume Version GitHub Stars License Docker Pulls Discord Crowdin Sponsors Donations


Pick a template, fill in your details, and export to PDF. Basic use needs no account. If you want more control, you can run the whole application on your own infrastructure.

You own your data. The codebase is open source under the MIT license, with no tracking, no ads, and no hidden costs.

Features

Resume Building

  • Live preview as you type
  • Multiple export formats (PDF, JSON, DOCX)
  • Drag-and-drop section ordering
  • Custom sections for any content type
  • Rich text editor

Templates

  • 15 templates to choose from
  • A4 and Letter page sizes
  • Customizable colors, fonts, and spacing
  • Structured Style Rules for section and text styling

Privacy & Control

  • Self-host on your own infrastructure
  • No tracking or analytics by default
  • Full data export at any time
  • Delete your data permanently with one click

Extras

  • AI integration (OpenAI, Google Gemini, Anthropic Claude)
  • Multi-language support
  • Share resumes via unique links
  • Import from JSON Resume format
  • Dark mode
  • Passkey and two-factor authentication

Templates

Azurill
Azurill
Bronzor
Bronzor
Chikorita
Chikorita
Ditto
Ditto
Gengar
Gengar
Glalie
Glalie
Kakuna
Kakuna
Lapras
Lapras
Leafish
Leafish
Onyx
Onyx
Pikachu
Pikachu
Rhyhorn
Rhyhorn
Ditgar
Ditgar
Meowth
Meowth
Scizor
Scizor

Quick Start

The quickest way to run Reactive Resume locally:

# Clone the repository
git clone --depth=1  https://github.com/reactive-resume/reactive-resume.git reactive-resume
cd reactive-resume

# Start all services
docker compose up -d

# Access the app
open http://localhost:3000

For detailed setup instructions, environment configuration, and self-hosting guides, see the documentation.

Tech Stack

Category Technology
Framework TanStack Router (React 19, Vite)
Runtime Node.js
Language TypeScript
Database PostgreSQL with Drizzle ORM
API ORPC (Type-safe RPC)
Auth Better Auth
Styling Tailwind CSS
UI Components Base UI + shadcn-style package
State Management Zustand + TanStack Query

Documentation

The full documentation lives at docs.rxresu.me:

Guide Description
Getting Started First-time setup and basic usage
Self-Hosting Deploy on your own server
Development setup Local development environment
Project architecture Codebase structure and patterns
Exporting Your Resume PDF and JSON export options

Self-Hosting

Reactive Resume supports Docker and Vercel Hobby.

Deploy with Vercel

Vercel provisions Neon PostgreSQL, private Blob storage, and Upstash Redis through its deployment wizard. Supply two persistent secrets, then deploy. See the Vercel guide for setup, limits, and optional SMTP/OAuth configuration.

For Docker, the stack includes:

  • PostgreSQL — Database for storing user data and resumes
  • SeaweedFS (optional) — S3-compatible storage for file uploads

From v5.1.0 onwards — PDF generation runs entirely client-side via @react-pdf/renderer. New deployments no longer need Browserless, Chromium, or any external print service. The PRINTER_* and BROWSERLESS_* environment variables are no longer read and can be removed from your .env.

Pull the latest image from Docker Hub or GitHub Container Registry:

# Docker Hub
docker pull amruthpillai/reactive-resume:latest

# GitHub Container Registry
docker pull ghcr.io/reactive-resume/reactive-resume:latest

See the self-hosting guide for complete instructions.

Support

Reactive Resume is and always will be free and open source. If it has helped you land a job or saved you time, please consider supporting continued development:

GitHub Sponsors Open Collective

Other ways to support:

  • Star this repository
  • Report reproducible bugs and suggest actionable features
  • Help other users in GitHub Discussions
  • Improve documentation
  • Help with translations
powered-by-blacksmith

Star History

Star History Chart

Contributing

Every contribution helps, whether it is a typo fix or a new feature.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See the development setup guide for how to run the project locally.

Maintainers review the status: needs triage queue weekly. Triaged bugs become status: confirmed; feature proposals become status: accepted; reports that need details become status: needs info.

License

MIT — do whatever you want with it.

S
Description
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!
Readme MIT
457 MiB
Languages
TypeScript 99.5%
CSS 0.3%
JavaScript 0.1%