Skip to content

Repository files navigation

900Invoice

Enterprise-Grade Invoicing for Developing Economies

Free. Offline. Yours.

WebsiteFeaturesInstallationDocumentationContributing



License Tauri Rust Platform CI

The Problem

A startup in Lagos pays the same $50/seat/month for invoicing software as a startup in San Francisco — but operates in an economy where the average monthly salary is $150. Every existing open-source invoicing tool requires a server, constant internet, and has zero mobile money integration. None support African fiscal compliance systems.

Freelancers in Nairobi create invoices in Word. Consultants in Accra calculate VAT on paper. Small businesses in Mumbai lose track of who owes what because a $30/month subscription is a genuine financial burden. This is not a niche problem — this is how the majority of the world's businesses operate.

The Solution

900Invoice is a desktop invoicing application that works completely offline. It runs on the hardware you already own. No subscriptions. No cloud dependencies. No internet required after the first download.

Built by 900 Labs — building enterprise-grade open source tools for the 900 million+ people in developing economies who are priced out of the software that modern businesses depend on.

Features

Invoice Management

  • Create, edit, duplicate, and void invoices
  • Full lifecycle: Draft → Finalized → Sent → Paid → Void
  • Customizable invoice number sequences (INV-2026-0001)
  • Professional native PDF export
  • Live invoice preview

Multi-Currency Support

  • 11 currencies: KES, NGN, ZAR, INR, TZS, UGX, GHS, XOF, XAF, USD, EUR
  • Exchange rate caching for offline use
  • Rate snapshot on each invoice for audit trail

Tax Engine

  • Country-specific tax rates (VAT, GST, WHT, NHIL, GETFund)
  • Tax-exclusive and tax-inclusive pricing
  • Withholding tax support
  • Pre-configured rates for Kenya, Nigeria, South Africa, India, Ghana, Tanzania, Uganda, Senegal

Client & Product Management

  • Client database with billing details and tax IDs
  • Product/service catalog for quick invoicing
  • CSV import/export

Recurring Invoices

  • Weekly, monthly, quarterly, and annual schedules
  • Auto-generation with missed-job recovery
  • Template-based creation

Reports & Analytics

  • Revenue reports by period, client, and currency
  • Tax summary reports for filing
  • Aging reports (30/60/90 days overdue)
  • Dashboard with real-time metrics

Payment Tracking

  • Record partial and full payments
  • Multiple payment methods: cash, bank transfer, mobile money, cheque
  • Payment history per invoice

Internationalization

  • 6 languages: English, French, Spanish, Arabic (RTL), Swahili, Hindi
  • 300+ translation keys
  • RTL layout support for Arabic
  • Locale-aware date and number formatting

Tech Stack

Component Technology Why
Desktop Shell Tauri v2 Small native shell, system WebView, fast startup
Frontend Svelte 5 Smallest bundle, reactive with Runes
Backend Rust Memory-safe, native performance
Database SQLite (rusqlite) Zero-config, single-file, offline
PDF Engine Rust PDF/HTML renderer Native PDF export plus live invoice preview
Scheduler Rust due-date scheduler Recurring invoice automation

Why Tauri v2?

Metric Tauri v2 Electron Advantage
Bundle model Uses the system WebView Bundles Chromium Smaller platform packages
RAM profile Native shell + system WebView Bundled Chromium process Lower idle memory profile
Startup profile Native shell startup Chromium startup Faster startup profile

On a 4-year-old laptop with 4 GB of RAM running three browser tabs, this difference is everything.

Installation

Releases

Tagged releases are published on the releases page when available. The current release workflow publishes source archives and checksums. Signed Windows, macOS, and Linux installers are tracked as future release hardening. Until platform binaries are published, build from source.

Build from Source

Prerequisites:

Linux (Ubuntu/Debian):

sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev librsvg2-dev

Build and run:

# Clone the repository
git clone https://github.com/900Labs/900Invoice.git
cd 900Invoice

# Install frontend dependencies
npm install

# Run in development mode (hot-reload)
cargo tauri dev

# Build for production
cargo tauri build

Production app bundles and installers are written under src-tauri/target/release/bundle/.

Project Structure

900Invoice/
├── src/                    # Svelte 5 frontend
│   ├── components/         # UI components by feature
│   │   ├── invoices/       # Invoice form, list, preview
│   │   ├── clients/        # Client management
│   │   ├── products/       # Product catalog
│   │   ├── payments/       # Payment recording
│   │   ├── reports/        # Report views
│   │   └── settings/       # App settings
│   ├── stores/             # Svelte 5 Runes state stores
│   ├── i18n/               # Translation files (6 languages)
│   ├── utils/              # Currency, date, validation utilities
│   └── lib/                # Tauri IPC wrappers
├── src-tauri/              # Rust backend
│   └── src/
│       ├── commands/       # 63 Tauri commands (IPC handlers)
│       ├── models/         # Data structures (Invoice, Client, etc.)
│       ├── db/             # SQLite schema, migrations, queries
│       ├── services/       # Tax calc, PDF engine, numbering
│       └── sync/           # Changelog for future sync
├── docs/                   # Documentation
│   └── adr/                # Architecture Decision Records
└── .github/                # CI/CD workflows and templates

Data Storage

All data is stored locally in a single SQLite file. No cloud. No server.

  • Location: {APP_DATA_DIR}/900invoice.db
  • Money: Stored as integers (minor units) — no floating point
  • Tax rates: Stored in basis points (1600 = 16.00%)
  • IDs: UUID v4 for offline-safe creation

Your data never leaves your machine unless you explicitly export it.

Documentation

Build and use

Product and architecture

Maintainers and contributors

Contributing

We welcome contributions from developers worldwide — especially those in the regions 900Invoice serves. Every line of code from a developer in Lagos, Nairobi, Accra, or Mumbai makes this tool better for the people it's built for.

See CONTRIBUTING.md for setup instructions, coding standards, sprint rules, and the PR process.

Quick contribution ideas:

  • Add your country's default tax rates in src-tauri/src/db/migrations.rs
  • Add a translation for your language to src/i18n/
  • Report bugs in your operating environment
  • Improve documentation clarity

License

Apache License 2.0 — see LICENSE for details.

You are free to use, modify, and distribute this software — including commercially. You do not owe us anything.

Security

To report a vulnerability, email security@900labs.com. See SECURITY.md for the full process.

Part of the 900 Labs Ecosystem

900Invoice is the third tool in the 900 Labs open-source portfolio:

Tool Description Repository
900PDF PDF editor and toolkit 900-labs/900pdf
900CRM Customer relationship management 900-labs/900crm
900Invoice Invoicing and billing 900Labs/900Invoice ← you are here

All tools are built on the same Tauri v2 + Rust + Svelte 5 stack. They share conventions, libraries, and the same commitment: free forever, offline-first, open source.

Learn more at 900labs.com/open-source.


If we build it, you own it.
900labs.com

About

Enterprise-Grade Invoicing for Developing Economies

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages