* feat: add OutOfDateDatesHelper, Shared invoice badge, etc * Introduced new markdown files for skills, covering typography, surfaces, animations, and performance to enhance interface design consistency. * feat: add isSharedInvoice prop to InvoiceForm for shared invoice indication * Introduced isSharedInvoice prop in InvoiceForm component to manage shared invoice state. * Updated UI to display tooltips for shared seller and buyer information, enhancing user awareness of shared invoices. * test: enhance invoice form tests with detailed validation for date fields and invoice number * fix: update label styling in UI component for improved visual consistency * Changed text class from text-balance to text-pretty in Label component to enhance design consistency across the application. * feat: enhance email visibility functionality in buyer and seller dialogs * Added email visibility toggle in BuyerDialog and SellerDialog components, allowing users to show or hide the email field in PDF outputs. * Updated related tests to ensure proper functionality of the email visibility feature. * Improved UI labels for required fields to enhance user experience and clarity. * feat: implement email visibility toggle in PDF for invoice templates * Added tests to verify email visibility toggles for both seller and buyer sections in the default and stripe invoice templates. * Included functionality to capture screenshots of PDFs with emails hidden and visible based on user selections. * Created new snapshot images for both email visibility states across different devices and browsers. * formatting * chore: update CI workflows to handle linting, type checking, and unit tests failures * Added to linting, type checking, and unit tests steps to prevent workflow failure on errors. * Modified email notification conditions to trigger only on failure of respective steps, improving error handling and notification accuracy. * refactor: update email visibility toggle tests to use role-based queries * refactor: simplify buyer and seller information forms by removing tooltip components and enhancing locked state visibility * Removed tooltip components from Buyer and Seller information sections, replacing them with a locked banner for better user guidance. * Updated input fields to reflect required status and improved accessibility by removing unnecessary aria attributes. * Enhanced the content of shared seller and buyer tooltips in the InvoiceForm for clarity. * refactor: remove isSharedInvoice prop and associated tooltips from Invoice components * Eliminated the isSharedInvoice prop from InvoiceForm and its usage in InvoiceClientPage. * Simplified the InvoicePageHeader content for shared invoices by replacing detailed tooltips with a concise message. * Streamlined the code for better readability and maintainability. * refactor: update locked banner visibility and improve invoice management UI * Enhanced visibility of locked banners in Buyer and Seller management forms, providing clearer guidance for modifying details. * Updated tests to verify the visibility and content of locked banners based on buyer and seller selection states. * Simplified the Invoice components by removing unnecessary props and improving layout consistency across the application. * refactor: improve error message layout and content in error handling components * Updated the Error component to separate error messages for better clarity and user guidance. * Enhanced the styling of the ErrorMessage component for improved readability and layout consistency. |
||
|---|---|---|
| .agents/skills | ||
| .cursor | ||
| .github | ||
| .husky | ||
| .vscode | ||
| e2e | ||
| messages | ||
| public | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| .prettierignore | ||
| .prettierrc.js | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| components.json | ||
| eslint.config.mjs | ||
| global.ts | ||
| knip.ts | ||
| LICENSE | ||
| lint-staged.config.js | ||
| next.config.mjs | ||
| package.json | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| postcss.config.mjs | ||
| README.md | ||
| sentry.client.config.ts | ||
| sentry.edge.config.ts | ||
| sentry.server.config.ts | ||
| skills-lock.json | ||
| tailwind.config.ts | ||
| TODO.md | ||
| tsconfig.json | ||
| vitest.config.ts | ||
EasyInvoicePDF
Free & Open-Source Invoice Generator
Create professional invoices instantly in your browser with Live Preview, Multiple Templates (including a Stripe-style design). No Sign-Up Required.
✨ Key Features of EasyInvoicePDF:
- ⭐ No Sign-Up Required: Start creating invoices immediately without any registration
- 📄 Instant PDF: One-click download ready for printing or sending
- ⚡ Live Preview: See changes in real-time as you type
- 🔗 Shareable Links: Send invoices directly to clients without attachments
- 🎨 Multiple Templates: Including modern Stripe-style design
- 📱 Browser Only: No server uploads, your data stays private
- 💰 Flexible Tax Support: VAT, GST, Sales Tax, and custom tax formats with automatic calculations
- 🌍 Multi-Language & Currency: Support for 10+ languages and 120+ currencies
- 📱 Mobile-Friendly: Create invoices on the go from any device
- 🏞️ QR Code Support: Add payment QR codes with any invoice-related information (payment links, UPI, contact details, custom data)
- 📑 Multi-Page PDFs: Seamless multi-page support with automatic pagination and page breaks
Learn more about features.
🎬 Invoice PDF Live Preview
See changes in real-time as you type
📥 Instant PDF Download
One-click PDF download ready for printing or sending
🔗 Shareable Links
Send invoices directly to clients without attachments
📲 QR Codes & Advanced Multi-Page PDF Support
Add payment QR codes with any invoice-related information (payment links, UPI, contact details, custom data) and seamless multi-page support with automatic pagination and page breaks for large invoices
🏷️ Customizable Tax Settings
Customize tax labels (VAT, Sales Tax, IVA, etc.)
🌍 Language & Currency
Switch between 10 languages and 120+ currencies instantly with live PDF preview updates
🎨 Professional Invoice Templates
Choose between multiple professional templates (Default and Stripe) to match your brand and style
| Default Invoice Template | Stripe Invoice Template |
|---|---|
![]() |
![]() |
🌟 Star History
📢 News & Updates
- Mar 10, 2026: Added QR code support, logo upload for the default template, searchable currency combobox, and improved multi-page PDF support. Release notes for v1.0.2
- Jan 11, 2026: Added customizable tax/VAT labels, improved internationalization (i18n) translations, enhanced overall performance, and fixed multiple bugs. Release notes for v1.0.1
- Nov 19, 2025: EasyInvoicePDF version 1.0.0 released! Create professional invoices in seconds. Welcome to try EasyInvoicePDF. Release notes for v1.0.0
🎥 Demo Video
Watch a quick demo of EasyInvoicePDF in action to see how easy it is to create professional invoices in seconds. The video demonstrates key features like Live Preview, Instant PDF Download, and Customization Options.
https://github.com/user-attachments/assets/d46c6e4e-b78a-4aa1-ab44-d20d6485b682
👨💻 Made By
Built by Vlad Sazonau
- 🐦 Twitter: @vladsazonau
- 💼 LinkedIn: Vlad Sazonau
- 🌐 Website: vladsazon.com
❤️ Support the Project
If you find EasyInvoicePDF useful, please consider:
- ⭐ Star this repository on GitHub to show your support
- ☕ Buy me a coffee to support the creator
Your support helps keep this project free and open-source 🙏
Join our community X.com
Tech Stack
Other Tools & Services
- Generate beautiful OG images: https://og.new
- Analytics: https://umami.is/
- typescript-plugin-directives
- Create Mockups with shots.so
Quick Start
- Run
pnpm i - Copy
.env.example to .env.local(cp .env.example .env.local) - Run
pnpm run dev
For the full app experience, you’ll need to obtain and set values from the following services:
License
This project is dual-licensed:
- AGPL-3.0 (for open-source or compliant use): GNU AGPL v3
- Commercial license (for proprietary use): contact vlad@mail.easyinvoicepdf.com
By using this software, you agree to the terms of the applicable license.
