mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-14 14:57:00 +10:00
62f8270b3e
commit b2b0470a1d9267d042ec0ac66523c6635bf5b199
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 13:13:38 2026 +0200
chore: update .gitignore to include .vite-hooks and modify pnpm-lock.yaml for dependencies
commit d28fadb5cd8706c874e616102878b4a394ec84c1
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 13:08:04 2026 +0200
fix: remove timestamp conflict guard
commit c6998d9dbab19d09d3c8054feef1d2e4117555eb
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 12:11:51 2026 +0200
chore(release): v5.1.5
commit f33d168711804880e1f12e88d24290aae16cc258
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 11:58:35 2026 +0200
revert: compose.yml
commit d961e6535811a10c335525fb33a08d03e737278d
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 11:58:08 2026 +0200
refactor(agent): replace 'revert' terminology with 'restore' for clarity, resolves #3086
commit 17f351171be218e33f01c469d95e4164d4c8dc57
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 11:10:41 2026 +0200
refactor(pdf): simplify sidebar section filtering and update summary feature logic
commit d55179b9d76879e3204de185e8b53fadd0a107ed
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 09:53:37 2026 +0200
chore: update pnpm-lock.yaml and turbo.json
commit 7cade6980e1a04352536bd44ef773f338c4ef599
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 09:38:30 2026 +0200
fix(polyfill): add tested polyfill for Map Upsert methods
commit 26d175bb9c53d93225d1e907678445252c13d660
Merge: 1cf33dc6c 5b1297fa2
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 09:23:29 2026 +0200
Merge remote-tracking branch 'origin/main' into feat/explore-hono-orpc-migration
# Conflicts:
# packages/api/src/services/agent-url.ts
# packages/runtime-externals/package.json
commit 1cf33dc6c9d81735730ad656e16dab6501c6d6a1
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Tue May 19 09:22:12 2026 +0200
chore: preserve branch changes before main sync
commit b380a4b00fdbcdd81ff4f8ef72b330fd027ccda5
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Mon May 18 07:50:28 2026 +0200
chore: lot of fixes for monorepo migration
commit 8fcf0ec64e1c29572ebaff494338368bfcf75760
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 13:57:17 2026 +0200
chore: update knip version and refine web app routing with new SEO endpoints
commit 234e68086ff15610a93877354c98e2c020364533
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 12:10:06 2026 +0200
refactor(auth): update OAuth routes to include API prefix and remove unused schema endpoint
commit 91c84b9a8496b0ce21d71cae9f8b2a027638c9ac
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 11:54:29 2026 +0200
chore: update dependencies and enhance PWA metadata in web app
commit 150117d4a5a9dd6cd92c64891aad8cae90f6a7af
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 11:12:35 2026 +0200
docs: revise manifest-only pwa testing scope
commit 6b939a55661aec9dd8122b184e4b60a5c7325fb5
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 11:11:33 2026 +0200
docs: add manifest-only pwa design
commit 1422e1fc96c400948b273210a1067251087d15d4
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 11:05:04 2026 +0200
chore(dev): simplify server proxy config
commit bc2ff5a9f6fda41e6c40333c8f163aa23a6c5e48
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 11:04:50 2026 +0200
docs: add unsafe oauth redirect plan
commit 445359ebe9b96c1515bf1c4c3f73ba8a8448ec12
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 11:04:34 2026 +0200
feat(auth): add unsafe oauth redirect flag
commit 73fffdd24598e56b2793f7657919bc794835892e
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 10:55:02 2026 +0200
docs: design unsafe oauth redirect flag
commit c0066aa19c15fc8a4c8e5179ed49889c117519f4
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 10:22:04 2026 +0200
chore: update translation source paths
commit 9033da082418d252aafd6c2eed72f71f014be3d9
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 10:09:25 2026 +0200
refactor(arch): react spa + hono migration
commit 6f27936c11bda895977dc63ee550c3346d4ce24b
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Fri May 15 01:10:47 2026 +0200
docs: add docker nightly tagging design
commit ecc1fd9a88a0ee1dca2f1977dfc17f74527fe1da
Author: Amruth Pillai <im.amruth@gmail.com>
Date: Thu May 14 20:05:44 2026 +0200
feat: migrate to hono spa server
252 lines
10 KiB
Markdown
252 lines
10 KiB
Markdown
<div align="center">
|
|
<a href="https://rxresu.me">
|
|
<img src="apps/web/public/opengraph/banner.jpg" alt="Reactive Resume" />
|
|
</a>
|
|
|
|
<h1>Reactive Resume</h1>
|
|
|
|
<p>Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.</p>
|
|
|
|
<p>
|
|
<a href="https://rxresu.me"><strong>Get Started</strong></a>
|
|
·
|
|
<a href="https://docs.rxresu.me"><strong>Learn More</strong></a>
|
|
</p>
|
|
|
|
<p>
|
|
<img src="https://img.shields.io/github/package-json/v/amruthpillai/reactive-resume?style=flat-square" alt="Reactive Resume Version">
|
|
<img src="https://img.shields.io/github/stars/amruthpillai/Reactive-Resume?style=flat-square" alt="GitHub Stars">
|
|
<img src="https://img.shields.io/github/license/amruthpillai/Reactive-Resume?style=flat-square" alt="License" />
|
|
<img src="https://img.shields.io/docker/pulls/amruthpillai/reactive-resume?style=flat-square" alt="Docker Pulls" />
|
|
<a href="https://discord.gg/aSyA5ZSxpb"><img src="https://img.shields.io/discord/1173518977851473940?style=flat-square&label=discord" alt="Discord" /></a>
|
|
<a href="https://crowdin.com/project/reactive-resume"><img src="https://badges.crowdin.net/reactive-resume/localized.svg?style=flat-square" alt="Crowdin" /></a>
|
|
<a href="https://github.com/sponsors/AmruthPillai"><img src="https://img.shields.io/github/sponsors/AmruthPillai?style=flat-square&label=sponsors" alt="Sponsors" /></a>
|
|
<a href="https://opencollective.com/reactive-resume/donate"><img src="https://img.shields.io/opencollective/backers/reactive-resume?style=flat-square&label=donations" alt="Donations" /></a>
|
|
</p>
|
|
</div>
|
|
|
|
---
|
|
|
|
Reactive Resume makes building resumes straightforward. Pick a template, fill in your details, and export to PDF—no account required for basic use. For those who want more control, the entire application can be self-hosted on your own infrastructure.
|
|
|
|
Built with privacy as a core principle, Reactive Resume gives you complete ownership of your data. The codebase is fully open-source under the MIT license, with no tracking, no ads, and no hidden costs.
|
|
|
|
## Features
|
|
|
|
**Resume Building**
|
|
|
|
- Real-time preview as you type
|
|
- Multiple export formats (PDF, JSON, DOCX)
|
|
- Drag-and-drop section ordering
|
|
- Custom sections for any content type
|
|
- Rich text editor with formatting support
|
|
|
|
**Templates**
|
|
|
|
- Professionally designed templates
|
|
- A4 and Letter size support
|
|
- Customizable colors, fonts, and spacing
|
|
- Custom CSS for advanced 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 support
|
|
- Passkey and two-factor authentication
|
|
|
|
## Templates
|
|
|
|
<table>
|
|
<tr>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/azurill.jpg" alt="Azurill" width="150" />
|
|
<br /><sub><b>Azurill</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/bronzor.jpg" alt="Bronzor" width="150" />
|
|
<br /><sub><b>Bronzor</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/chikorita.jpg" alt="Chikorita" width="150" />
|
|
<br /><sub><b>Chikorita</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/ditto.jpg" alt="Ditto" width="150" />
|
|
<br /><sub><b>Ditto</b></sub>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/gengar.jpg" alt="Gengar" width="150" />
|
|
<br /><sub><b>Gengar</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/glalie.jpg" alt="Glalie" width="150" />
|
|
<br /><sub><b>Glalie</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/kakuna.jpg" alt="Kakuna" width="150" />
|
|
<br /><sub><b>Kakuna</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/lapras.jpg" alt="Lapras" width="150" />
|
|
<br /><sub><b>Lapras</b></sub>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/leafish.jpg" alt="Leafish" width="150" />
|
|
<br /><sub><b>Leafish</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/onyx.jpg" alt="Onyx" width="150" />
|
|
<br /><sub><b>Onyx</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/pikachu.jpg" alt="Pikachu" width="150" />
|
|
<br /><sub><b>Pikachu</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/rhyhorn.jpg" alt="Rhyhorn" width="150" />
|
|
<br /><sub><b>Rhyhorn</b></sub>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/ditgar.jpg" alt="Ditgar" width="150" />
|
|
<br /><sub><b>Ditgar</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/meowth.jpg" alt="Meowth" width="150" />
|
|
<br /><sub><b>Meowth</b></sub>
|
|
</td>
|
|
<td align="center">
|
|
<img src="apps/web/public/templates/jpg/scizor.jpg" alt="Scizor" width="150" />
|
|
<br /><sub><b>Scizor</b></sub>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
## Quick Start
|
|
|
|
The quickest way to run Reactive Resume locally:
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/amruthpillai/reactive-resume.git
|
|
cd reactive-resume
|
|
|
|
# Start all services
|
|
docker compose up -d
|
|
|
|
# Access the app
|
|
open http://localhost:3000
|
|
```
|
|
|
|
[](https://app.ona.com/#https://github.com/amruthpillai/reactive-resume)
|
|
|
|
For detailed setup instructions, environment configuration, and self-hosting guides, see the [documentation](https://docs.rxresu.me).
|
|
|
|
## Tech Stack
|
|
|
|
| Category | Technology |
|
|
| ---------------- | ------------------------------- |
|
|
| Framework | TanStack Start (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
|
|
|
|
Comprehensive guides are available at [docs.rxresu.me](https://docs.rxresu.me):
|
|
|
|
| Guide | Description |
|
|
| ---------------------------------------------------------------------------- | -------------------------------- |
|
|
| [Getting Started](https://docs.rxresu.me/getting-started) | First-time setup and basic usage |
|
|
| [Self-Hosting](https://docs.rxresu.me/self-hosting/docker) | Deploy on your own server |
|
|
| [Development Setup](https://docs.rxresu.me/contributing/development) | Local development environment |
|
|
| [Project Architecture](https://docs.rxresu.me/contributing/architecture) | Codebase structure and patterns |
|
|
| [Exporting Your Resume](https://docs.rxresu.me/guides/exporting-your-resume) | PDF and JSON export options |
|
|
|
|
## Self-Hosting
|
|
|
|
Reactive Resume can be self-hosted using 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 now runs entirely client-side via `@react-pdf/renderer`. New deployments no longer require Browserless, Chromium, or any external print service as a dependency. 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:
|
|
|
|
```bash
|
|
# Docker Hub
|
|
docker pull amruthpillai/reactive-resume:latest
|
|
|
|
# GitHub Container Registry
|
|
docker pull ghcr.io/amruthpillai/reactive-resume:latest
|
|
```
|
|
|
|
See the [self-hosting guide](https://docs.rxresu.me/self-hosting/docker) 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:
|
|
|
|
<p>
|
|
<a href="https://github.com/sponsors/AmruthPillai">
|
|
<img src="https://img.shields.io/badge/GitHub%20Sponsors-Support-ea4aaa?style=flat-square&logo=github-sponsors" alt="GitHub Sponsors" />
|
|
</a>
|
|
<a href="https://opencollective.com/reactive-resume/donate">
|
|
<img src="https://img.shields.io/badge/Open%20Collective-Contribute-7FADF2?style=flat-square&logo=open-collective" alt="Open Collective" />
|
|
</a>
|
|
</p>
|
|
|
|
Other ways to support:
|
|
|
|
- Star this repository
|
|
- Report bugs and suggest features
|
|
- Improve documentation
|
|
- Help with translations
|
|
|
|
## Star History
|
|
|
|
<a href="https://www.star-history.com/#amruthpillai/reactive-resume&type=date&legend=top-left">
|
|
<picture>
|
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=amruthpillai/reactive-resume&type=date&theme=dark&legend=top-left" />
|
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=amruthpillai/reactive-resume&type=date&legend=top-left" />
|
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=amruthpillai/reactive-resume&type=date&legend=top-left" />
|
|
</picture>
|
|
</a>
|
|
|
|
## Contributing
|
|
|
|
Contributions make open-source thrive. Whether fixing a typo or adding a feature, all contributions are welcome.
|
|
|
|
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](https://docs.rxresu.me/contributing/development) for detailed instructions on how to set up the project locally.
|
|
|
|
## License
|
|
|
|
[MIT](./LICENSE) — do whatever you want with it.
|