SkillAgentSearch skills...

Invoice Builder

Invoice and quotation builder desktop app with PDF export, designed for small businesses and freelancers. Create, manage, and export invoices and quotes easily using a local database in an Electron-based app.

Install / Use

npx skills add piratuks/invoice-builder

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Invoice Builder

License Downloads Latest Release Windows Linux macOS Docker GHCR Buy Me a Coffee

Offline invoicing with full data ownership.

Invoice Builder is an offline-first, open-source invoicing and quoting application for freelancers and small businesses who want full control over their data.

No accounts. No cloud. No subscriptions.
Your data stays on your machine in a database file you own.

📸 Screenshots

Invoice Form Invoice PDF Preview Quote PDF Preview

❓ Why Invoice Builder?

Invoice Builder is designed for freelancers, contractors, and small businesses who want:

  • Full ownership of their data - no cloud lock‑in
  • Offline access - works anywhere, anytime
  • A predictable, transparent tool - no subscriptions, no hidden sync
  • Cross-platform support - macOS, Windows & Linux
  • Import/export freedom - JSON, XLSX, full database backups
  • Highly customizable PDFs - branding, layout, colors, typography
  • UBL & Peppol BIS 3.0 support – generate invoices that are compliant with European e-invoicing standards for automatic submission to buyers and public administrations

If you value privacy, portability, and control, this app is built for you.

✨ Key Features

Core

  • Create and manage Invoices and Quotes
  • Offline-first: works without internet
  • Database-file based (create or open a database anywhere)
  • Automatic snapshotting of business, bank, style profile, client, item, and currency data per invoice/quote
  • Multi-currency support: choose the currency for each invoice/quote individually
  • Responsive layout - usable on small and large screens, resizable windows supported
  • Invoice/Quote translations – select a language per document, independent of app settings
  • Export invoices in UBL 2.1 / Peppol BIS Billing 3.0 XML format, fully compliant for automated e-invoicing
  • Export invoices in XRechnung (UBL 2.1) XML format, fully compliant for automated e-invoicing

Business Data Management

  • Banks, Businesses, Clients, Items, Categories, Units, Currencies
  • Persistent search, persistent sort, persistent filter, archive (non-destructive)
  • XLSX import/export for most entities
  • Automatic creation of missing units/categories on item import

Financial Flexibility

  • Fixed or percentage discounts
  • Shipping fees
  • Tax:
    • inclusive or exclusive
    • per-item or on total
    • deducted tax
  • Partial payments, balance due tracking
  • Invoice states: unpaid, partially paid, paid, closed
  • Quote states: open, closed

PDF Generation & Customization

  • Live PDF preview
  • A4 / Letter formats
  • Layout presets
  • Color, font size, font family (Supported fonts: Helvetica, Times-Roman, Courier, Roboto, Inter), logo size customization
  • Table header & row styles
  • Uppercase label toggle
  • Quote & invoice watermarks (including paid watermark)
  • Attachments: include images in PDFs
  • Signature support: upload or hand-draw signatures and apply them to PDFs
  • Style profiles are now available for invoices and quotes, enabling quick, consistent theming
  • Show quantity, unit, and row number in the PDF item table
  • Custom header sections and custom values in the PDF item table
  • Ability to reorder all columns/headers in the PDF item table
  • Ability to include QR codes for payment into PDF
  • Ability to customize invoice / quote labels to custom text

Reports

  • Aggregated data
  • Charts and summaries

Import, Export & Backup

  • Full database backup & restore
  • Export all data to JSON and import back
  • Export to XLSX for most entities
  • Invoices and quotes support export (historical documents remain immutable)

Settings & Customization

  • Language selection: currently French, German, English and Lithuanian
  • Number & date formatting (e.g. 1,234.10 vs 1.234,10)
  • Invoice/quote number prefix & suffix
  • Leading-zero invoice/quote numbering is preserved across auto-increment (for consistent alphabetical file sorting)
  • File name customization for exported PDFs
  • Light & dark mode
  • Enable/disable UBL 2.1 Peppol BIS Billing 3.0, reports, style profiles, presets and quotes
  • Check for updates via GitHub releases
  • Presets: Predefine default Invoice/Quote data (e.g., business, client, currency, bank, style profile, notes, language, signature) to streamline document creation

🖥️ Supported Platforms

  • Windows: 10 or newer, 64-bit
  • Linux: any modern distribution (Ubuntu, Debian, Linux Mint, etc.) supporting .deb packages
  • macOS: 11.0 (Big Sur) or newer, Apple Silicon (M1/M2/M3/M4), 64-bit, .dmg installer available
  • Memory: 2 GB RAM minimum (1 GB may work for very small datasets)
  • Disk space: ~200 MB for the installer; ~550mb for the app; additional space needed for database files

🐘 PostgreSQL Support

Invoice Builder now supports two database backends:

| Storage Type | Description | Best For | | ----------------------- | --------------------------------------------------------------------- | -------------------------------------------------- | | SQLite (local file) | Simple, portable, zero‑configuration database stored as a single file | Solo users, offline use, desktop mode | | PostgreSQL (server) | Network‑accessible database server with concurrency and robustness | Multi‑user setups, Docker deployments, NAS/servers |

Users can now choose between:

  • Creating or opening a local SQLite database file, or
  • Connecting to a PostgreSQL server by entering host, port, username, password, and database name.

This makes Invoice Builder flexible for both lightweight personal use and more advanced multi‑device or multi‑user environments.

🧑‍💻 Self-Hosting (Docker)

Invoice Builder can also be self-hosted using Docker for users who prefer running it on their own server or NAS.

This option is ideal if you want:

  • Centralized access from multiple machines
  • Easy backups via mounted volumes

Docker Image

A pre-built image is published automatically to GitHub Container Registry on every push to main and on every version tag:

ghcr.io/piratuks/invoice-builder:latest

Pull it at any time with:

docker pull ghcr.io/piratuks/invoice-builder:latest

ℹ️ VITE_API_URL is no longer needed for Docker deployments. The Docker image now uses nginx as the frontend server. Nginx proxies all /api/* requests to the backend internally, so the frontend never needs to know the backend's external address. VITE_API_URL is only needed when running the web server outside Docker (e.g. npm run dev:react, npm run dev:webserver).

If you build the image yourself for non-Docker use, you can still pass it:

docker build --build-arg VITE_API_URL=http://your-host:3000 -t invoice-builder .

But for all standard Docker deployments you can omit it entirely.


Option A – Two containers (recommended)

The default setup runs backend and frontend as separate containers from the same image.

docker compose pull
docker compose up -d

| Container | Port | Role | | ---------- | ---- | ---------------------------- | | backend | 3000 | Node.js REST API + SQLite/PG | | frontend | 3001 | Static SPA served by serve |


Option B – Single container

Run both backend and frontend in one container using SERVICE=all:

docker compose -f docker-compose.standalone.yml up -d

| Port | Role | | ---- | ---------------------------- | | 3000 | Node.js REST API + SQLite/PG | | 3001 | Static SPA served by serve |


Building locally instead of pulling

If you prefer to build the image from source:

# Two-container build
docker compose up -d --build
docker compose up -d

# Or single container
docker build -t invoice-builder .
docker compose -f docker-compose.standalone.yml up -d

📦 Installation

Download the latest release from the GitHub Releases page:

➡️ Download Latest Release

No account required.

⚠️ Browser download warning

When downloading the app, your browser may show a message like:

  • “This file is from an unknown source”
  • “This file is rarely downloaded”

This is normal for newly published apps and does not indicate a security issue.
Simply choose Keep anyway / Save anyway to proceed with the download. 🐧 Linux package warning

On some Linux distributions (Ubuntu, Linux Mint, etc.), you may see messages such as:

  • “This package is provided by a third party”
  • “Installing software from outside the official repositories may be unsafe”

This warning appears because the app is not distributed via the default system repositories.
If you downloaded the package directly from the official G

Related Skills

View on GitHub
GitHub Stars463
CategoryData
Updated3h ago
Forks51

Languages

TypeScript

Security Score

95/100

Audited on Aug 8, 2026

No findings