No login, beautifully crafted online resume builder — Data stored locally only, zero leak risk, export anytime
简体中文 | English
- Multi-dimensional layout control: Freely adjust margins, section spacing, and line height with sliders — no more Word formatting nightmares.
- Multiple classic templates: 4+ carefully curated industry-standard templates (including ATS-friendly styles, single-column corporate layouts, etc.) with seamless one-click switching.
- Theme color customization: 8+ meticulously crafted preset color themes to match the visual tone of different industries.
- Smart auto-pagination: Automatic visual page breaks when content exceeds A4 boundaries, with a modern floating page indicator.
- WYSIWYG editing: Sidebar drawer-style form editing with real-time preview on the main canvas.
- Privacy protection mode: One-click redaction mode that automatically masks name, phone, email, and other sensitive info — perfect for sharing resumes in communities for review.
- Smooth drag & drop sorting: Powered by
@dnd-kit, entries within work experience, project descriptions, and other sections can be freely reordered via drag and drop. - Rich text & smart calculation: Tiptap-based rich text editor supports bold, lists, and links; the system also auto-calculates age and years of experience from birthday and start date.
- No login, zero upload: All data is stored exclusively in the browser's
localStorage— no backend, no database, your privacy is fully in your hands. - JSON import/export: One-click export of your complete resume configuration as a JSON file for backup, migration, or cross-device use; import existing configurations to restore instantly.
- Native PDF export: Uses the browser's native
window.print()for high-fidelity export, with selectable text and ATS-friendly output.
- Node.js >= 18
- npm >= 8
# 1. Clone the repository
git clone https://github.com/oopooa/opresume.git
cd opresume
# 2. Install dependencies
npm install
# 3. Start the dev server
npm run devOpen http://localhost:5173 in your browser and start crafting your perfect resume.
# Build for production
npm run build
# Preview the build
npm run preview| Category | Choice |
|---|---|
| Core Framework | React 18 + Vite 5 + TS 5 |
| UI & Styling | Tailwind CSS 3 + shadcn/ui |
| State Management | Zustand 5 |
| Rich Text Editing | Tiptap 3 |
| Drag & Drop | @dnd-kit |
| Internationalization | react-i18next |
- Resume JSON import/export
- Rich text editor
- Drag & drop module sorting
- Two-column layout with section drag & drop
- Template switching
- Custom typography settings
- Smart pagination (single-column templates)
- Privacy redaction mode
- Internationalization (i18n) support
- AI-powered resume import
- AI resume scoring & analysis
- Multiple resume management
- Smart fit-to-page
- More templates
src/
├── components/
│ ├── Resume/ # Core resume rendering engine
│ │ ├── templates/ # 🌟 Multiple templates (auto-registered)
│ │ └── modules/ # Base module renderers (experience, education, skills, etc.)
│ ├── Editor/ # Sidebar drawer & dynamic forms
│ ├── Toolbar/ # Top toolbar (appearance controls / export)
│ └── ui/ # shadcn/ui base component library
├── store/ # Zustand state slices
├── services/ # Pure local IO operations (load / save / migrate data)
├── hooks/ # Custom hooks (pagination, redaction logic, etc.)
└── types/ # Global TypeScript type definitions
This project is open-sourced under the MIT License. Feel free to fork, submit PRs, or open issues!