← all projectsOpen source

InvoiceShelf

Self-hosted invoicing for individuals and small businesses.

Status
active
Role
maintainer
Year
2024
Stars
★ 1,844
InvoiceShelf dashboard showing amount due, sales and expenses over the year, receipts, and net income.

Context

InvoiceShelf brings invoices, estimates, expenses, payments, recurring billing, and customer access into one open-source application that teams can run on their own infrastructure.

InvoiceShelf is a self-hosted invoicing application for individuals and small businesses. I maintain the project, with work spanning application architecture, company access, and security.

Company access

The tenancy work covers scoped roles, invitations, and company data isolation. In an invoicing application, the access model has to carry through to the records people view, the files they handle, and the documents they generate.

Modernization

My work on the v3 modernization includes applying Domain-Driven Design (DDD) to organize the Laravel backend as a modular monolith, alongside a Vue 3 frontend with TypeScript.

Business contexts such as Sales, Receivables, and Purchases own their models, application services, authorization policies, and HTTP interfaces. Workflows between contexts use explicit contracts, while shared capabilities such as PDF generation, storage, and mail live in a separate platform layer.

Architecture tests check domain boundaries and compatibility, including existing API routes and middleware. The architecture decision record describes the structure and migration rules. These changes belong to the v3 modernization; consult the repository’s releases for availability in a particular version.

Security work

The documented scope includes hardening PDF generation, file handling, and API authorization. Those areas connect everyday invoicing features to the application’s access boundaries and handling of untrusted input.

Delivered scope

  1. Multi-company tenancy with scoped roles, invitations, and data isolation
  2. DDD modernization into a Laravel modular monolith, with a Vue 3 + TypeScript frontend
  3. Security hardening across PDF generation, file handling, and API authorization

Technology

LaravelVueTypeScriptTailwind CSSMySQLDocker
next →
Smetko
A modular ERP ecosystem spanning web, desktop POS, and industry-specific workflows.