2025 — present · Web
Essentio
An EU-compliant invoicing SaaS: invoices, pro formas, credit notes, client ledgers and multi-tenant e-mail.
Client project
- PHP
- Laravel
- Vue
- Inertia
- PostgreSQL
- Redis
- Docker
Problem
Invoicing looks simple until the arithmetic has to satisfy the European e-invoicing standard, numbering must never skip, and a sent invoice must never change.
Architecture
- Laravel 12 with Inertia and Vue; PostgreSQL and a Redis-backed queue.
- Money in ISO minor units with half-away-from-zero rounding and VAT grouped by category, following EN 16931; amounts frozen once an invoice is sent.
- Deep modules with narrow interfaces — invoice arithmetic, numbering, lifecycle, pro forma conversion, client ledger, tenant mail — each covered by tests at its seam, with decisions recorded as ADRs.
- Caddy (TLS, HTTP/3) in front of PHP-FPM and a queue worker, deployed with Docker to a Hetzner server.
- Production observability built in, EU-hosted and privacy-first: Sentry for server and browser errors with personal data scrubbed and replays masked, cookieless PostHog analytics, Healthchecks.io heartbeats for the queue, scheduler and backups, and in-app feedback filed straight into GitHub issues.
- GDPR by design: members can download their data, a business can export its whole archive, and deleted data is erased after thirty days.
Result
- Deployed for the client; built test-first with a local CI gate that includes visual regression.