Search iThub

Search tools, categories and collections. Type at least two characters.

Explore all tools
↑ ↓ to explore resultsEnter to open · Esc to close

Simple Invoice

Invoice generator where your data and designs live in TypeScript

Visit website Save

Simple Invoice is a small Next.js invoice generator: you define clients, quotes, invoices, credit notes and receipts in TypeScript and render them as PDFs.

Deployment
Self-hosted
4stars3forks
2views
Updated

What is Simple Invoice?

Simple Invoice is a small invoice generator published on GitHub by RobinMalfait. Its README calls it a simple invoice generator tool in which the data is in the code. Instead of typing records into a hosted service, you describe your account, clients, suppliers, quotes, invoices, credit notes and receipts in a TypeScript data file, and the app renders them. The repository was created in December 2024 and is built with TypeScript, Next.js 15, React 19 and Tailwind CSS.

Each environment is a pair of files: a data file under src/data and an invoice design under src/ui/invoice/designs, selected with the NEXT_PUBLIC_ENVIRONMENT variable or overridden with NEXT_PUBLIC_DATA_SOURCE_FILE and NEXT_PUBLIC_DESIGN_SOURCE_FILE. Only the example environment is visible to Git, so your real data files are ignored by default. The example configuration sets incrementing invoice and quote numbers, a default payment term of 30 days after the issue date, quotes that expire 15 days after the quote date, PDF filename templates and markdown mail templates for sending documents to clients.

You run it yourself from a clone of the repository: install dependencies with npm install, copy .env.example to .env and start it with npm run dev. A classified mode, also called streamer mode, blurs all numbers and personal identifiable information. The GitHub API reports no licence for the repository.

Key capabilities

  • Business documents Domain modules for quotes, invoices, credit notes and receipts, with incrementing number strategies for quotes and invoices.
  • PDF output Documents render to PDF with filename templates such as invoice-{{number}}.pdf, and backups store the PDFs in folders built from status and issue date.
  • Mail templates Markdown email templates with placeholders for client contacts, invoice number, total amount and due date.
  • Clients and suppliers Builders for your account, clients and suppliers, plus transaction records with an import parser.
  • Classified mode The CLASSIFIED_MODE setting blurs all numbers and personal identifiable information.
  • Custom invoice designs Each environment gets its own invoice.tsx design file.
Advertisements

Where Simple Invoice fits

  • Data as code All application data sits in a TypeScript file per environment, with no separate data entry service.
  • Payment terms Default net strategies set the due date 30 days after the issue date and quote expiry 15 days after the quote date.
  • Taxes, discounts and currencies The example data uses modules for tax, discount, currency, language and payment method.
  • Environment isolation Only the example environment is tracked in Git, and NEXT_PUBLIC_DATA_SOURCE_FILE and NEXT_PUBLIC_DESIGN_SOURCE_FILE can point to other files.
  • Tech stack Next.js, React, Tailwind CSS, Puppeteer, exceljs, csv-parse and Recharts, with tests run by Vitest in the Europe/Brussels time zone.

Reviews of Simple Invoice

No reviews yet

Be the first to share your experience with Simple Invoice.

Loading review form…

Alternatives to Simple Invoice

Compare Simple Invoice with these tools →