Now-Next

Case · booxx

A complete Dutch bookkeeping engine, from scratch.

booxx is a bookkeeping platform for entrepreneurs in the Netherlands — with its own double-entry engine on RGS 3.8, VAT filing via Digipoort, bank feeds and XAF. Not a shell around an existing package: the engine itself.

  • 5 languages
  • 3,983 automated tests
  • RGS 3.8 chart of accounts
  • XAF 4.0 import & export

Visit booxx.nl

The problem

An accountancy firm with many Polish, Hungarian and Romanian entrepreneurs as clients runs into two things at once. The software is in Dutch, and the client is not. And every integration with an external accounting package costs money per client and time per change.

So the question was not 'build a nicer shell', but 'build the bookkeeping itself, and make it multilingual'.

What was built

A double-entry engine on the Dutch RGS 3.8 chart, with journals, periods, numbering and reversals. Sales invoices with PDF, UBL and dunning. Bank feeds with reconciliation and SEPA batches, with MT940 and CAMT as fallback. Reports, XAF import and export, general journal, opening balance, fixed assets and year-end close.

Alongside that, VAT filing via SBR and Digipoort, Chamber of Commerce lookup, AI extraction of purchase invoices, and a chat assistant that can explain your own books. All in five languages, with the tax content written separately per language rather than translated.

Why this is not an ordinary app

Bookkeeping is what Google calls a YMYL subject: money and taxes. A mistake is not a bug but a wrong tax return. So the weight is not in the screens but in the invariants — an entry must balance, a tenant must never see another tenant's data, and an amount must not lose a cent along the way.

That is enforced at two layers at once: in the application and in the database, with row-level security on both tenant and accountancy firm. And it is covered by nearly four thousand automated tests, most of them about money and isolation.

What it demonstrates

That AI-driven development also works where the bar is high. Not because the agents are smarter than an accountant, but because the rules an accountant keeps in their head can be written down as tests — and an agent that has to keep thousands of tests green is a strict colleague.

And that multilingual is a product decision, not a translation job. The Polish pages are not a translation of the Dutch ones; they answer different questions.

Stack

  • Laravel 13 · PHP 8.3
  • Inertia · React
  • PostgreSQL · RLS
  • RGS 3.8
  • SBR · Digipoort
  • Salt Edge
  • XAF 4.0

Let's talk

What are we building?

One conversation is enough to know whether we fit. Tell us what you have in mind — we will tell you how fast it can happen, and whether we are the right people for it.

Start the conversation