Zero-knowledge encrypted pastebin with post-quantum cryptography.
- Post-quantum encryption - CRYSTALS-Kyber (ML-KEM-768) + AES-256-GCM
- Syntax highlighting - 300+ programming languages via Prism.js
- Zero-knowledge - Server never sees your unencrypted content
- Auto-delete - Configurable expiry (10 min to 7 days)
- Password protection - Optional additional layer of security
- QR code sharing - Generate QR codes with encrypted short links
- No signup required - Just paste and share
- Frontend: React 19, Vite 7, Tailwind CSS 4, Framer Motion
- Backend: Cloudflare Workers
- Database: Turso (SQLite)
- Encryption: @noble/post-quantum, Web Crypto API
- Node.js 20+
- npm or pnpm
# Install dependencies
npm install
# Start development server
npm run devCopy .env.example to .env and configure:
VITE_API_URL=http://localhost:8787/apiThe API is a Cloudflare Worker located in the /api folder.
cd api
npm install
npm run devSee /api/README.md for API documentation.
npm run build
wrangler pages deploy dist --project-name=voider-pastecd api
wrangler deployAll encryption happens client-side:
- Generate Kyber-768 keypair (post-quantum resistant)
- Encapsulate to create shared secret
- Use shared secret as AES-256-GCM key
- Encrypt content with AES-GCM
- Secret key goes in URL fragment (never sent to server)
MIT License - See LICENSE file
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request