Invoify is a web-based invoice generator application built with Next.js 13, TypeScript, React, and the Shadcn UI library. It provides an easy way to create and manage professional invoices.
- Next.js: React framework for SSR and client-side navigation.
- TypeScript: JavaScript superset with static typing.
- Shadcn-UI: UI library for enhanced visuals.
- Tailwind: Utility-first CSS framework.
- React Hook Form: Form management for React.
- Zod: TypeScript-first schema validation.
- Puppeteer: PDF generation with headless browsers.
- Nodemailer: Node.js module for sending emails.
- Lucide Icons: Collection of customizable SVG icons.
- Easily Create Invoices: Utilize a simple form to quickly generate invoices.
- Save for Future Access: Store your invoices directly in your browser for easy retrieval.
- Retrieve Invoices Effortlessly: Load and access invoices seamlessly from your saved list.
- Flexible Download Options: Download invoices directly or send them via email in PDF format.
- Template Variety: Choose from multiple (currently 2) invoice templates.
- Live Preview: Edit the form and see changes in real-time with the live preview feature.
- Export in Various Formats: Export invoices in different formats, including JSON, XLSX, CSV, and XML.
- I18N Support: i18n support with multiple languages for UI and templates.
- Themeable Templates: Select a theme color for the invoice
- Custom Inputs: Define your own inputs that are missing from the default invoice builder. (Ex: VAT number)
- Individual Tax for Line Items: Add tax details for a specific line item other than the general tax
Note
Please be advised that there are currently issues when using this application in the Mozilla Firefox browser. For more information, refer to Issue #11.
Visit the live demo to see Invoify in action.
Follow these instructions to get Invoify up and running on your local machine.
- Node.js and npm installed on your system.
-
Clone the repository:
git clone https://github.com/aliabb01/invoify.git cd invoify
-
Install dependencies
npm install
-
Create an .env.local file with this content (This step is for sending pdf to email feature):
NODEMAILER_EMAIL=your_email@example.com NODEMAILER_PW=your_email_password
-
Start development server
npm run dev
-
Open your web browser and access the application at http://localhost:3000
Distributed under the MIT License. See LICENSE.txt
for more information.