1

Klaro

A management and invoicing SaaS for French sole traders: quotes, invoices, VAT and tax-deadline alerts. TypeScript monorepo built on DDD + Clean Architecture, NestJS/Fastify API, Nuxt frontend, mobile app — self-hosted on a Raspberry Pi running Kubernetes with ArgoCD GitOps.

Klaro - Invoicing for sole traders, ready for 2026

Klaro is a management assistant for French sole traders (auto-entrepreneurs). It absorbs the administrative burden — legal numbering, mandatory notices, VAT regimes, tax deadlines — so independents never have to think about it.

The product anticipates a major regulatory deadline: from September 2026, every French company must receive its invoices through a state-approved platform.

What the product does

  • Quotes converted into invoices in one click, with legally compliant sequential numbering and PDF generation
  • Expense tracking
  • VAT summary: collected, owed, and handling of the base exemption (article 293 B)
  • Email alerts before every tax deadline — URSSAF, VAT, income tax — with follow-ups until confirmed
  • Optional SEO public page for the business

Architecture

It is a pnpm monorepo, TypeScript from frontend to infrastructure, structured around DDD and Clean Architecture. The domain language is entirely French and documented in a glossary: the same words — devis, franchise en base, échéance — appear identically in the domain layer, the API contracts and the UI.

  • API: NestJS on Fastify, documented with OpenAPI/Swagger
  • Frontend: Nuxt (Vue) deployed on Vercel
  • Mobile: dedicated application
  • Shared packages: domain (framework-free business core), contracts, sdk (typed client) and a replayable demo dataset

Self-hosted infrastructure

The part I find most interesting: everything runs on my own hardware, with no cloud bill.

  • Raspberry Pi in production, running Docker Compose with systemd timers driving automatic updates, plus a separate pre-production environment
  • Kubernetes (kind cluster): deployments, services, HPA, ingress, all through Kustomize
  • GitOps with ArgoCD — cluster state is reconciled straight from the repository
  • AWS stack simulated locally via LocalStack (S3, SES, SQS, CloudWatch) and provisioned with AWS CDK, which makes it possible to build and test every cloud integration offline
  • Exposed through a Cloudflare Tunnel, without opening a single port on the home network
  • Observability: Prometheus and Grafana

All of it is covered by unit and end-to-end tests, and architectural decisions are recorded as ADRs.

Klaro grew out of a need I know from the inside: I have been invoicing my own clients as a sole trader for over five years.


Available at klaro.alexandre-devaux.com.