{"id":14957292,"url":"https://github.com/amruthpillai/reactive-resume","last_synced_at":"2026-04-27T15:00:52.827Z","repository":{"id":37034582,"uuid":"249995750","full_name":"amruthpillai/reactive-resume","owner":"amruthpillai","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!","archived":false,"fork":false,"pushed_at":"2026-04-23T12:21:19.000Z","size":137818,"stargazers_count":36408,"open_issues_count":69,"forks_count":4052,"subscribers_count":117,"default_branch":"main","last_synced_at":"2026-04-23T14:25:53.967Z","etag":null,"topics":["better-auth","hacktoberfest","react","resume","resume-builder","self-hosted","tailwindcss","tanstack-start"],"latest_commit_sha":null,"homepage":"https://rxresu.me","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amruthpillai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing/architecture.mdx","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"AmruthPillai","open_collective":"reactive-resume"}},"created_at":"2020-03-25T14:08:22.000Z","updated_at":"2026-04-23T13:18:48.000Z","dependencies_parsed_at":"2023-12-21T01:57:07.742Z","dependency_job_id":"a83a310c-a0fb-45f9-9e32-71b035080b1a","html_url":"https://github.com/amruthpillai/reactive-resume","commit_stats":{"total_commits":3974,"total_committers":143,"mean_commits":27.79020979020979,"dds":"0.15072974333165579","last_synced_commit":"1bed63a4af591182295eca311e41dac34a283b8c"},"previous_names":[],"tags_count":117,"template":false,"template_full_name":null,"purl":"pkg:github/amruthpillai/reactive-resume","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amruthpillai%2Freactive-resume","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amruthpillai%2Freactive-resume/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amruthpillai%2Freactive-resume/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amruthpillai%2Freactive-resume/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amruthpillai","download_url":"https://codeload.github.com/amruthpillai/reactive-resume/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amruthpillai%2Freactive-resume/sbom","scorecard":{"id":12827,"data":{"date":"2025-08-11","repo":{"name":"github.com/AmruthPillai/Reactive-Resume","commit":"b995a6b6c0e518f7841d16ce171aee750ce31981"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Maintained","score":4,"reason":"5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/lint-test-build.yml:1","Warn: no topLevel permission defined: .github/workflows/publish-docker-image.yml:1","Warn: no topLevel permission defined: .github/workflows/sync-crowdin-translations.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":3,"reason":"Found 6/18 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/publish-docker-image.yml:17"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-test-build.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/lint-test-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint-test-build.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/lint-test-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-test-build.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/lint-test-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:120: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:127: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:131: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-docker-image.yml:159: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/publish-docker-image.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sync-crowdin-translations.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/sync-crowdin-translations.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sync-crowdin-translations.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/AmruthPillai/Reactive-Resume/sync-crowdin-translations.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:4","Warn: containerImage not pinned by hash: Dockerfile:15","Warn: containerImage not pinned by hash: Dockerfile:29","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  14 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":2,"reason":"SAST tool is not run on all commits -- score normalized to 2","details":["Warn: 4 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"33 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-cj7v-w2c7-cp7c","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-593f-38f6-jp5m","Warn: Project is vulnerable to: GHSA-x2rg-q646-7m2v","Warn: Project is vulnerable to: GHSA-jgmv-j7ww-jx2x","Warn: Project is vulnerable to: GHSA-95jq-xph2-cx9h","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-44fp-w29j-9vj5","Warn: Project is vulnerable to: GHSA-4pg4-qvpc-4q3h","Warn: Project is vulnerable to: GHSA-g5hg-p3ph-g8qg","Warn: Project is vulnerable to: GHSA-fjgf-rc76-4x9p","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-x7hr-w5r2-h6wg","Warn: Project is vulnerable to: GHSA-cpj6-fhp6-mr6j","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3","Warn: Project is vulnerable to: GHSA-g3ch-rx76-35fx","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T14:59:30.259Z","repository_id":37034582,"created_at":"2025-08-14T14:59:30.259Z","updated_at":"2025-08-14T14:59:30.259Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32341455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["better-auth","hacktoberfest","react","resume","resume-builder","self-hosted","tailwindcss","tanstack-start"],"created_at":"2024-09-24T13:14:34.638Z","updated_at":"2026-04-27T15:00:52.822Z","avatar_url":"https://github.com/amruthpillai.png","language":"TypeScript","funding_links":["https://github.com/sponsors/AmruthPillai","https://opencollective.com/reactive-resume"],"categories":["TypeScript","hacktoberfest","🌐 Web Development - Frontend"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://rxresu.me\"\u003e\n    \u003cimg src=\"public/opengraph/banner.jpg\" alt=\"Reactive Resume\" /\u003e\n  \u003c/a\u003e\n\n  \u003ch1\u003eReactive Resume\u003c/h1\u003e\n\n  \u003cp\u003eReactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.\u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://rxresu.me\"\u003e\u003cstrong\u003eGet Started\u003c/strong\u003e\u003c/a\u003e\n    ·\n    \u003ca href=\"https://docs.rxresu.me\"\u003e\u003cstrong\u003eLearn More\u003c/strong\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/github/package-json/v/amruthpillai/reactive-resume?style=flat-square\" alt=\"Reactive Resume version\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/amruthpillai/Reactive-Resume?style=flat-square\" alt=\"GitHub Stars\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/amruthpillai/Reactive-Resume?style=flat-square\" alt=\"License\" /\u003e\n    \u003cimg src=\"https://img.shields.io/docker/pulls/amruthpillai/reactive-resume?style=flat-square\" alt=\"Docker Pulls\" /\u003e\n    \u003ca href=\"https://discord.gg/aSyA5ZSxpb\"\u003e\u003cimg src=\"https://img.shields.io/discord/1173518977851473940?style=flat-square\u0026label=discord\" alt=\"Discord\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://crowdin.com/project/reactive-resume\"\u003e\u003cimg src=\"https://badges.crowdin.net/reactive-resume/localized.svg?style=flat-square\" alt=\"Crowdin\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/sponsors/AmruthPillai\"\u003e\u003cimg src=\"https://img.shields.io/github/sponsors/AmruthPillai?style=flat-square\u0026label=sponsors\" alt=\"Sponsors\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://opencollective.com/reactive-resume\"\u003e\u003cimg src=\"https://img.shields.io/opencollective/backers/reactive-resume?style=flat-square\u0026label=donations\" alt=\"Donations\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n---\n\nReactive 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.\n\nBuilt 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.\n\n## Features\n\n**Resume Building**\n\n- Real-time preview as you type\n- Multiple export formats (PDF, JSON)\n- Drag-and-drop section ordering\n- Custom sections for any content type\n- Rich text editor with formatting support\n\n**Templates**\n\n- Professionally designed templates\n- A4 and Letter size support\n- Customizable colors, fonts, and spacing\n- Custom CSS for advanced styling\n\n**Privacy \u0026 Control**\n\n- Self-host on your own infrastructure\n- No tracking or analytics by default\n- Full data export at any time\n- Delete your data permanently with one click\n\n**Extras**\n\n- AI integration (OpenAI, Google Gemini, Anthropic Claude)\n- Multi-language support\n- Share resumes via unique links\n- Import from JSON Resume format\n- Dark mode support\n- Passkey and two-factor authentication\n\n## Templates\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/azurill.jpg\" alt=\"Azurill\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eAzurill\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/bronzor.jpg\" alt=\"Bronzor\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eBronzor\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/chikorita.jpg\" alt=\"Chikorita\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eChikorita\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/ditto.jpg\" alt=\"Ditto\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eDitto\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/gengar.jpg\" alt=\"Gengar\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eGengar\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/glalie.jpg\" alt=\"Glalie\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eGlalie\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/kakuna.jpg\" alt=\"Kakuna\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eKakuna\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/lapras.jpg\" alt=\"Lapras\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eLapras\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/leafish.jpg\" alt=\"Leafish\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eLeafish\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/onyx.jpg\" alt=\"Onyx\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eOnyx\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/pikachu.jpg\" alt=\"Pikachu\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003ePikachu\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/rhyhorn.jpg\" alt=\"Rhyhorn\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eRhyhorn\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/ditgar.jpg\" alt=\"Ditgar\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eDitgar\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"public/templates/jpg/meowth.jpg\" alt=\"Meowth\" width=\"150\" /\u003e\n      \u003cbr /\u003e\u003csub\u003e\u003cb\u003eMeowth\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Quick Start\n\nThe quickest way to run Reactive Resume locally:\n\n```bash\n# Clone the repository\ngit clone https://github.com/amruthpillai/reactive-resume.git\ncd reactive-resume\n\n# Start all services\ndocker compose up -d\n\n# Access the app\nopen http://localhost:3000\n```\n\n[![Build with Ona](https://ona.com/build-with-ona.svg)](https://app.ona.com/#https://github.com/amruthpillai/reactive-resume)\n\nFor detailed setup instructions, environment configuration, and self-hosting guides, see the [documentation](https://docs.rxresu.me).\n\n## Tech Stack\n\n| Category         | Technology                      |\n| ---------------- | ------------------------------- |\n| Framework        | TanStack Start (React 19, Vite) |\n| Runtime          | Node.js                         |\n| Language         | TypeScript                      |\n| Database         | PostgreSQL with Drizzle ORM     |\n| API              | ORPC (Type-safe RPC)            |\n| Auth             | Better Auth                     |\n| Styling          | Tailwind CSS                    |\n| UI Components    | Radix UI                        |\n| State Management | Zustand + TanStack Query        |\n\n## Documentation\n\nComprehensive guides are available at [docs.rxresu.me](https://docs.rxresu.me):\n\n| Guide                                                                        | Description                      |\n| ---------------------------------------------------------------------------- | -------------------------------- |\n| [Getting Started](https://docs.rxresu.me/getting-started)                    | First-time setup and basic usage |\n| [Self-Hosting](https://docs.rxresu.me/self-hosting/docker)                   | Deploy on your own server        |\n| [Development Setup](https://docs.rxresu.me/contributing/development)         | Local development environment    |\n| [Project Architecture](https://docs.rxresu.me/contributing/architecture)     | Codebase structure and patterns  |\n| [Exporting Your Resume](https://docs.rxresu.me/guides/exporting-your-resume) | PDF and JSON export options      |\n\n## Self-Hosting\n\nReactive Resume can be self-hosted using Docker. The stack includes:\n\n- **PostgreSQL** — Database for storing user data and resumes\n- **Printer** — Headless Chromium service for PDF and screenshot generation\n- **SeaweedFS** (optional) — S3-compatible storage for file uploads\n\nPull the latest image from Docker Hub or GitHub Container Registry:\n\n```bash\n# Docker Hub\ndocker pull amruthpillai/reactive-resume:latest\n\n# GitHub Container Registry\ndocker pull ghcr.io/amruthpillai/reactive-resume:latest\n```\n\nSee the [self-hosting guide](https://docs.rxresu.me/self-hosting/docker) for complete instructions.\n\n## Support\n\nReactive 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:\n\n\u003cp\u003e\n  \u003ca href=\"https://github.com/sponsors/AmruthPillai\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/GitHub%20Sponsors-Support-ea4aaa?style=flat-square\u0026logo=github-sponsors\" alt=\"GitHub Sponsors\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/reactive-resume\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Open%20Collective-Contribute-7FADF2?style=flat-square\u0026logo=open-collective\" alt=\"Open Collective\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nOther ways to support:\n\n- Star this repository\n- Report bugs and suggest features\n- Improve documentation\n- Help with translations\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/#amruthpillai/reactive-resume\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=amruthpillai/reactive-resume\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=amruthpillai/reactive-resume\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=amruthpillai/reactive-resume\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## Contributing\n\nContributions make open-source thrive. Whether fixing a typo or adding a feature, all contributions are welcome.\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nSee the [development setup guide](https://docs.rxresu.me/contributing/development) for detailed instructions on how to set up the project locally.\n\n## License\n\n[MIT](./LICENSE) — do whatever you want with it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famruthpillai%2Freactive-resume","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famruthpillai%2Freactive-resume","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famruthpillai%2Freactive-resume/lists"}