Create stunning invoices with a design system inspired by Vercel.
This tool focuses purely on aesthetics and simplicity. It is not an accounting system; it takes your data and renders a crisp, minimalist PDF ready to send.
- ✨ Minimalist: High contrast, clean typography.
- 🚀 Fast: Generates lightweight PDFs instantly.
- 🎨 Customizable: Easy to adapt the data structure.
- 🔓 Open Source: Apache License 2.
- 🌐 Cross-browser: Server-side PDF generation with Playwright (no Safari issues!)
- 📱 Responsive: Works perfectly on all devices.
This project uses Playwright + Chromium for server-side PDF generation, ensuring consistent results across all browsers and devices.
- ✅ Consistent PDFs on all platforms (iOS, Android, Safari, Chrome)
- ✅ Perfect print quality with full CSS support
- ✅ No client-side dependencies
- ✅ Complete control over format and margins
- Install dependencies:
pnpm install- Install Chromium (development only):
npx playwright install chromium- Run the development server:
pnpm dev- Test PDF generation:
- Open http://localhost:3000/invoice
- Click "Descargar PDF"
- 📄 PDF Generation Guide - Complete setup and deployment guide
- 🚀 Advanced Usage - Database integration, caching, optimization
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS + shadcn/ui
- PDF Generation: Playwright + Chromium
- Language: TypeScript
- Package Manager: pnpm
This project is configured for Railway and Dokploy with automatic Chromium installation via nixpacks.toml.
The nixpacks.toml configuration will automatically install Chromium during deployment.
NEXT_PUBLIC_APP_URL=https://your-app.comsrc/
├── app/
│ ├── invoice/
│ │ ├── page.tsx # Main invoice editor
│ │ └── print/[id]/page.tsx # Print-friendly version
│ └── api/
│ └── invoice/[id]/pdf/route.ts # PDF generation API
├── components/
│ └── invoice/
│ ├── invoice-download-button.tsx
│ └── ...
├── lib/
│ └── playwright-config.ts # Playwright settings
└── types/
└── invoice.ts