Vibecode Invoice Ninja

track this build8 phases, 16 steps, beginner friendly
YES · one-shottable
price $14/moyou'd save $168/yrbuild time weekendcategory 🧾 finance & accountingreplaced by 0 people

Invoice Ninja is open source, so the hosted subscription can be replaced by self-hosting if you can handle ops, updates, payment config, and backups.

the project pack5 files · written for this build, step by step
README.md
# Invoice Ninja · indie build

A small invoicing app for one freelancer: clients, invoices with line items and tax, numbers that never repeat, a snapshot frozen at send time so a sent invoice can never silently change, a clean PDF, email delivery, optional Stripe payment links, and a CSV your accountant can use. If you want the whole platform, Invoice Ninja itself is open source; this is the lighter option.

Estimated effort: **weekend**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | Node 22 with Express and better-sqlite3 | forms, PDFs, mail: the framework earns its place |
| Money | Integer cents | an invoice that rounds differently from your books is a conversation you do not want |
| PDF | Puppeteer rendering an HTML template | your own template, exact layout; a full browser is the cost |
| Hosting | localhost, or a VPS behind Caddy | invoices are private; localhost is enough for one person |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Node.js 22 or newer** · free
  - Why: Everything in this build runs on it: the server, the scripts, the tests.
  - Get it: Download the LTS installer from nodejs.org, or install with your package manager (brew install node, or nvm install 22). Restart the terminal afterwards.
  - Verify: node --version prints v22 or higher
- [ ] **A terminal and a code editor** · free
  - Why: Every step below is a command you type or a file you edit.
  - Get it: VS Code (code.visualstudio.com), Cursor or Zed. Open a folder for the project and use the editor's built-in terminal.
  - Verify: You can open a folder and run a command in its terminal
- [ ] **Git** · free
  - Why: History for your code, and the way most hosts deploy.
  - Get it: Install from git-scm.com or with your package manager, then run git init in the project folder once it exists.
  - Verify: git --version prints a version
- [ ] **Your business details and a logo** · free
  - Why: Every PDF carries them: legal name, address, tax id if any, bank or payment details, payment terms, and a logo file.
  - Get it: Write them into config/business.json; a PNG or SVG logo at least 400px wide.
- [ ] **Puppeteer's Chromium download (about 170 MB)** · free, 170 MB of disk
  - Why: PDF rendering needs a browser. npm install puppeteer downloads it; on a small server you may need extra system libraries.
  - Get it: npm install puppeteer downloads Chromium. On Ubuntu servers install the libraries Puppeteer's troubleshooting page lists.
  - Verify: node -e "require('puppeteer').launch().then(b=>b.close())" exits without error
- [ ] **SMTP credentials to send invoices** · free tiers exist
  - Why: Phase 5 emails the PDF to clients.
  - Get it: Fastmail, Postmark or your mail host: host, port, user, password as an app password.
- [ ] **A Stripe account for payment links (optional)** (optional) · free; fees per payment
  - Why: Phase 6 puts a pay-online link on each invoice.
  - Get it: dashboard.stripe.com > Developers > API keys. Use test mode until the flow works.
- [ ] **Your tax rates and numbering rule** · free
  - Why: This app does arithmetic on rates you type in; it does not know your jurisdiction. Decide the rates and the invoice number format now.
  - Get it: Write down the VAT or sales tax rates you charge and the prefix format, e.g. INV-2026-001.

## Quick start

```sh
mkdir invoices && cd invoices && git init && npm init -y && npm pkg set type=module
npm install express@4 better-sqlite3@13
mkdir -p data/pdf config && cp .env.example .env
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Quotes, expenses, multi-user, a client portal: that is the platform, free to self-host.
- Automatic payment reconciliation.
- Tax compliance. This does arithmetic on rates you type; it is not e-invoicing compliant anywhere.
- managed hosting
- upgrades
- backups
- support
- payment setup convenience
- reduced ops risk

If one of those is essential to you, that is the reason to keep paying for Invoice Ninja, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

They pay because billing software is boring and should not break on invoice day.

what you lose

xmanaged hosting

xupgrades

xbackups

xsupport

xpayment setup convenience

xreduced ops risk

share on X ↗"I just replaced Invoice Ninja ($14/mo) with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

ERPNextQuotes, invoices, payments, expenses and a portal inside a much larger ERP than anyone ordered.38kaug 2026open sourceInvoiceShelfInvoices, estimates, expenses, payments and a client portal; the bill arrives as Docker maintenance instead.1.8kjul 2026open sourceInvoice Ninja self-hostedThe same invoicing stack on your own server; billing is free, the license is source-available, and removing its branding costs extra.$0free

all 4 free alternatives to Invoice Ninja →· no votes, no pay-to-list · just what's real

the numbers

Invoice Ninja pricing

planmonthlyannual (per mo)what you get
free$0/workspace$0/workspaceUp to 5 clients, unlimited invoices and 4 invoice templates.
ninja pro$14/workspace$11.67/workspaceUnlimited clients/invoices, 11 templates and up to 10 interlinked companies per login.
enterprise$18/workspace$15/workspace1–2 users at the starting price; scales to 51–100 users at $300/month or $250/month annual equivalent; 250 PEPPOL credits included.
premium business$23.33/workspaceUp to 100 users plus migration, custom reports and developer concierge.

free tier5 clients, unlimited invoices and 4 invoice templates.

billingmonthly + annual (2 months free); annual charged as one yearly payment; 30-day money-back promise

hidden costsPayment-gateway processing fees are separate. Enterprise prices rise with user count, from $18/month for 1–2 users to $300/month for 51–100; only 250 PEPPOL credits are included and extra-credit pricing was not public.

verified 2026-08-11 · source ↗

questions
Is Invoice Ninja free?

The free plan covers up to 5 clients with unlimited invoicing. Paid is Pro at $14/mo (checked 2026-08-07).

Vibecode Invoice Ninja

Yes. A competent AI coding agent (Claude Code, Codex, Cursor) can build a usable personal Invoice Ninja replacement in one session with the prompt on this page. It runs on your own machine or server with no subscription.

How much does Invoice Ninja cost?

Invoice Ninja costs about $14/month (Pro, checked 2026-08-07), which is $168 per year. That's what you save by replacing it with one prompt.

What do I lose by replacing Invoice Ninja?

Honestly: managed hosting; upgrades; backups; support; payment setup convenience; reduced ops risk. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Invoice Ninja?

Yes: ERPNext (Quotes, invoices, payments, expenses and a portal inside a much larger ERP than anyone ordered.) InvoiceShelf (Invoices, estimates, expenses, payments and a client portal; the bill arrives as Docker maintenance instead.) Invoice Ninja self-hosted (The same invoicing stack on your own server; billing is free, the license is source-available, and removing its branding costs extra.) All 4 curated free alternatives are at vibecodeit.com/invoice-ninja/alternatives. The prompt is for when you want it exactly your way.