2026 · SaaS · the Netherlands
A multi-tenant SaaS for Dutch funeral directors
Four modules: case management, suppliers and products, invoicing, and members and policies. Each meant to be complete rather than minimal. Built with a partner who brings the domain knowledge and handles the commercial side; all of the code is mine.
This project has not launched yet. Until release, expected around November 2026, it is described anonymously: no product name, no domain, no customers. The engineering below describes how it was built, not who it is.
Multi-tenant, with the separation in the database
One application and one database for all customers, with a subdomain per customer. Explicitly not a server per customer.
Row-level security on every table, with FORCE and a RESTRICTIVE role lock, so a query that forgets its tenant filter returns nothing rather than another customer’s data. Platform administration lives in a separate /platform area.
The law in the database
Dutch funeral law is encoded in the database rather than in application code: the 36-hour and sixth-working-day terms from the Wet op de lijkbezorging, leave rules, the article 59 term for ashes, VAT rules, and invoice locking.
An append-only audit log records old and new values. That same log powers the undo feature: a customer’s mistake can be rolled back from the log.
Four dependencies
In production it runs on next, react, react-dom and postgres. No ORM, no CSS framework, no authentication library. Nothing is added without a reason.
Scale at the September 2026 handover
Approximately 19,300 lines of code, 29 SQL migrations, 46 tables and 119 SQL tests.
Twenty-four screens, including a case file with seven tabs (overview, planning, care, tasks, documents, financial, communication), a week calendar, transport with gap detection across the location chain, a funeral-day run sheet, purchasing with automatic order forms, time tracking, reporting, custom fields, draft case files, allowance tables and member pricing.
What is deliberately not in it
No commission on insurance products, because of the provisieverbod, BGfo article 86c. No margin on disbursements passed through to the family. No paid visibility for suppliers in the directory.
These exclusions are part of the story, not a gap in the functionality.
Still to build
Passkey authentication, invoice PDF generation, postcode lookup via PDOK, document templates with digital signing, an accounting integration (Exact Online first, UBL before API), Peppol, and payment via Mollie.