Skip to content

Invoice templates

nullish comes with a clean default template in English, German, French and Italian. When you want invoices that look like you, design your own: the whole page is yours, not just a logo and a line of text.

Templates are made with the nullish templates project. It shows a live preview of your invoice with sample data, so you see every change right away. You can let an AI do the work or edit the template yourself.

  1. Fork usenullish/templates on GitHub if you want to keep your templates in your own repository, then clone it:

    Terminal window
    git clone https://github.com/usenullish/templates.git
    cd templates
    npm install
  2. Start the preview and open localhost:4321:

    Terminal window
    npm run dev

Open the project in a coding assistant such as Claude Code, Cursor or Copilot, and describe what you want:

  • "Use my logo from logo.svg in the top left corner and our brand color #1d4ed8 for the headings."
  • "Put our address in the footer and the bank details next to the totals."
  • "Make it look more like this PDF" (with an old invoice attached).

The project describes every piece of invoice data, so the assistant knows what it can use. Keep the preview open next to it and ask for adjustments until it looks right.

The invoice template lives in src/templates/invoices/:

  • Invoice.astro is the layout: what appears on the page, and where.
  • i18n.json holds the texts in English, French, German and Italian.

Style it with plain CSS or Tailwind classes. Sizes are in millimeters, like on paper. The project's README lists all the invoice data and the template syntax.

  1. Build the template:

    Terminal window
    npm run build

    You get one file per language in templates/invoices/: en.html, fr.html, de.html and it.html.

  2. In nullish, go to Settings → Billing → Document templates and create a template. Give it a Name.

  3. Choose Add content for each language you invoice in: pick the Language and upload the matching file, e.g. fr.html for French.

When you generate an invoice PDF, pick your template under Document template. You can keep several, for example one per brand.