In short
- The question
- Facilitators of gatherings for inner work need one place for their offer, sign-ups, payments and invoices, and participants need one place to find them.
- Approach
- I define the product, the audience and the requirements, choose between design directions and build it with agentic coding, on a multi-tenant foundation of my own.
- Delivered
- A platform running on a test environment: calendar, offer builder, sign-up and payment through Mollie Connect, Belgian invoicing, sign-in without a password and self-service privacy, in five languages.
What it will be
Innerveld (a working title) is to become the place where people in Flanders find facilitated gatherings for inner work: family constellations, breathwork, sound baths, silence, retreats. For the facilitators, called guides on the platform, it is to become the place where their practice is in order online: their offer, sign-ups, payments, invoices and a website of their own. Publish once, and it appears on the central calendar and on their own site.
Today the platform runs on a test environment, with made-up demo practices. The pilot with a first guide is being prepared, and the name is still a working title.
A foundation for several platforms
Innerveld is the first product on a foundation I am building for platforms on which many organisations work at the same time (multi-tenant). The shared building blocks are separate from the product: sign-in, practices and their domains, payments, invoicing, privacy, languages, AI, background jobs, email and storage, each as its own package in one monorepo (pnpm, Turborepo, TypeScript strict). A next platform does not have to start from zero.
At its heart is the separation between practices. Every row in the database belongs to one practice, and PostgreSQL itself enforces that a practice only sees its own rows (row-level security). The application never connects as the owner of the database but as a restricted role, and tests run as that role to prove that reading or changing across the boundary fails. A leak would take a bug in the application and in the database rules at once.
A calendar that reads like a programme
For participants, the calendar is the front door. It reads like a printed programme: seasons and months, series with their evenings, how many places are left, and in between, blocks that explain what a way of working is or how prices work. Filters on way of working, region, price and language narrow it down.
The image of the platform is a field of grasses and flowers drawn in code, which takes on the colour of the hour of the day and the season. Everything exists in five languages, with translated addresses and the right signals for search engines.
The offer in plain words
The hardest question was in the data model. A guide gives a one-off evening, a retreat over several days, a series you sign up for in one go, open sessions, or a series you can still join later. I modelled that as offer, edition and gathering, with forms in everyday words. Every configuration produces one sentence the participant reads, such as “You sign up for the whole series”; a configuration that produces no sentence is invalid.
In the workbench of an edition, the guide sets gatherings, price levels, choice questions and locations, next to a preview that updates along. Capacity applies per gathering, per price level and per choice, and stays right when two people take the last place at the same moment: that is tested against a real database. Whoever is invited from the waiting list gets 48 hours to take the place.
Three builders on one machine
A guide builds her offer page herself, from blocks (text, image, programme, who it is for, practical details, audio, questions and answers), by dragging or with the keyboard, and with a preview that updates along. The same block machine also builds her own site and the pages of the platform itself. The rules for a good page live in that machine as tested code, not in a manual.
Every practice gets a house style of its own: a colour family, a tone and a shape, with a live proof. The colours are calculated (OKLCH), and a test makes sure every combination reaches the contrast accessibility asks for (WCAG AA). That way a guide can choose without breaking anything.
Sign-up and payment, with the guide as the seller
A participant signs up without an account: choose, fill in details, pay, with a total that recalculates along. An account is only suggested after the confirmation. Then come a confirmation with the practical information, a calendar invitation and a reminder.
The guide is the seller herself. Through Mollie Connect she links her own payment account, and payments go straight to her. The keys of that link are stored encrypted, and the status of a payment is always fetched again from Mollie. That chain is proven end to end in Mollie’s test mode.
The invoices follow the Belgian rules: VAT is calculated from the price including VAT, so the total is right to the cent, numbering runs without gaps, credit notes (partial ones too) get a series of their own, and the exemption scheme for small businesses is built in. Every invoice also exists as a UBL file following Peppol BIS 3.0, which passes validation against the official Peppol rules without errors. Sending through the Peppol network is still to come.
Signing in without a password, and privacy as behaviour
Innerveld has no passwords. You sign in with a code by email, with Google or with a passkey, on a guide’s own site as well.
Privacy lies in what the product does, not only in a statement. Every guide chooses a retention period, after which participants’ data is anonymised automatically; invoices are kept for seven years, without a link to the person. Anyone who deletes their account sees beforehand what disappears, what stays and until when, and can take their data along as a file. The site sets no cookies to follow visitors, and everything runs in the EU.
Five languages, with a person who checks
The interface exists in five languages. AI translates the texts of guides, through a route within the EU, with a glossary that steers the professional vocabulary. Every translation has a status: machine, reviewed, or outdated after a change in the source text. What a person reviewed is never overwritten again, and usage is measured per practice.
Built to be trusted
Every meaningful choice is recorded as an architecture decision (ADR), with the alternative that was rejected. A confirmed bug first gets a test that fails, and only then the fix. Database tests run in isolation, on the real migrations.
A screen is only done when it also looks right. Every page is compared in light, dark and on mobile against a reference image, and an accessibility scan stops a change with serious problems. With every deployment, the migrations run in a single transaction; if one fails, the previous version keeps running. The whole thing is self-hosted in the EU, with a server of its own that runs the tests.
How I build
Innerveld has been built with agentic coding from the start: an AI coding assistant writes the code, the tests and the documentation. The designs come from design rounds with AI too, each with several directions. My work lies in what comes before and after: the strategy and the audience, the words the product uses, the requirements, and the choice between directions, or rejecting them when something is not right.
Every decision that needs my word arrives with a proposal in a decision list, and anything that touches money, the law or people, I decide myself. Nothing on a server changes without my approval. I test as a user myself, and what I see becomes work: an offer page I found too messy became a complete workbench. At night, agents review the day’s work, each through a lens of its own, and a sceptic tries to refute every finding.
That is not less work but different work: briefing well, choosing, checking with my own eyes and knowing when something is not good yet. It is also where I find out how far this way of building can go.
What comes next
Still on the list before launch: a pilot with a first guide, the final name and brand, a production domain, a European email service, sending invoices through Peppol and collecting subscriptions. The pricing model is not settled yet. After that, the same foundation can carry a next platform.


