Skip to content

hdcodedev/resume256

Repository files navigation

Resume256

License: MIT Next.js React Security: AES-256-GCM

Resume256 is a fully functional resume builder designed with privacy as a primary constraint.

Resume content is encrypted in the browser before it is stored. The server persists encrypted data and metadata, but does not require routine access to raw resume content.

The project is designed to be self-hosted, auditable, and adaptable, without relying on opaque third-party resume platforms.


Resume256 preview

Screenshot 2026-01-04 at 18 50 49

Screenshot 2026-01-04 at 18 49 43

Screenshot 2026-01-04 at 18 50 22

Motivation: Privacy by Design

Resumes routinely contain sensitive personal and career-related information. In many online resume builders, this data is uploaded and stored in raw form, placing long-term trust in a service operator and its infrastructure.

Resume256 exists to make a different default viable:

  • Resume content is encrypted client-side before storage
  • The backend stores ciphertext rather than readable resume data
  • Sharing and PDF export are implemented without turning the server into a permanent raw data processor

Privacy is treated as a system-level design constraint, not as an optional feature.


Features

Core Functionality

  • Full resume builder (create, edit, delete)
  • Resume versioning
  • Template-based rendering (20+ templates)
  • Real-time preview and layout customization
  • Automated WCAG color contrast validation for template themes
  • Profile photo upload with drag-and-drop support

Privacy & Security

  • Client-side encryption using Web Crypto (AES-256-GCM)
  • Web Worker-based cryptography for non-blocking operations
  • Zero-knowledge-style storage of resume content
  • Key derivation using PBKDF2
  • Local encryption key management interface

Sharing & Export

  • Public share links with controlled access
  • PDF export pipeline using Puppeteer

User Experience

  • Structured editing with section reordering
  • Sortable experience, education, and project sections
  • Typography customization via Google Fonts
  • Template previews with demo data
  • Progress indicators during resume creation
  • Built-in user feedback system

Infrastructure

  • Self-hostable Next.js (App Router) architecture
  • Deployed on Vercel with serverless functions
  • PostgreSQL-backed persistence via Neon
  • Rate-limited public endpoints
  • Authentication via Stack Auth
  • Email notifications via Resend
  • Optional analytics integration
  • Alpha access and waitlist support

Getting Started

Want to run Resume256 locally or contribute? See CONTRIBUTING.md for setup instructions.

Quick start:

# Fork the repository first, then clone your fork:
git clone https://github.com/YOUR-USERNAME/resume256.git
cd resume256
npm install
cp .env.example .env.local  # See CONTRIBUTING.md for environment setup
npm run dev

Deployment

Resume256 is deployed on Vercel with the following stack:

  • Hosting: Vercel (Next.js App Router with serverless functions)
  • Database: Neon PostgreSQL
  • Authentication: Stack Auth
  • Email: Resend
  • Rate Limiting: Upstash Redis

Deploy Your Own

You can deploy your own instance of Resume256 to Vercel:

Deploy with Vercel

After deployment, you'll need to configure the environment variables listed in .env.example.


Support the Project

If you find this project useful, please consider giving it a star! ⭐


License

This project is licensed under the MIT License - see the LICENSE file for details.

About

πŸ” Resume256 is a privacy-first resume builder.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages