The problem
Since 2025 every business in Germany has to be able to receive e-invoices, and sending them becomes mandatory step by step. Many small businesses still write invoices in Word or Excel. Faktigo is meant to make the switch easy, without anyone having to understand XML.
What I built
- XRechnung and ZUGFeRD (EN 16931) generated from a normal invoice form
- Validation of the generated files with the KoSIT validator, running as its own service in the cluster
- Quotes, orders, recurring invoices and dunning
- Bank reconciliation via FinTS, SEPA direct debit (pain.008) and GiroCode
- Receipt capture, time tracking and a roles and permissions system
Architecture
The front end is an Angular 20 application with NgRx Signals and components from my own library elementar-rt. The API runs on NestJS 11 with Fastify, MongoDB and Redis. The marketing site faktigo.de is a separate Astro project.
Jenkins builds everything, pushes the images to my own container registry and Helm rolls them out to the Kubernetes cluster I also run my other projects on.
My role
All of it: product idea, data model, front end, API, deployment and operations, plus the legal pages such as privacy policy and data processing agreement.