Skip to content
Rascals

Work

Things I built, and why they are built that way.

The interesting part of a project is never visible from the outside — what the problem really was, which decision was awkward, and what that decision cost. All seven are written up in full.

Own product 2026 — now Live demo

Stuart

A modular platform that manages anything.

The application is built around a single core, with packages carrying everything around it. Adding something for the next customer, or taking it away, stays easy.

apps — stock, recipes, purchasing, budget, invoicing
5apps stock, recipes, purchasing, budget, invoicing
modules — in the admin
13modules in the admin
changes — the core stays unchanged
0changes the core stays unchanged
Laravel Livewire Tailwind CSS MySQL Laravel Cashier Docker

Read the case study

Own product 2026 — now Live demo

Usher

Ticketing that is honest about the money.

A multi-organiser ticket platform where the fee is stated, the currency belongs to the event, and the receipt never changes after the fact.

per ticket, all-in
3% + € 0,50 per ticket, all-in
currencies to sell in
10 currencies to sell in
split at the moment of sale
0 split at the moment of sale
Laravel Livewire Flux UI Stripe Connect Cashier Redis

Read the case study

Own product 2026 — now Live demo

Clark

The clerk: writes the invoice, keeps the record, sends it out.

Belgian B2B invoicing over the Peppol network, checked against the official rules before anything leaves the building.

Belgian B2B mandate
2026 Belgian B2B mandate
validated against
EN 16931 validated against
for other applications
API for other applications
Laravel Livewire Schematron bcmath Docker

Read the case study

Own product 2026 — now

Veldrit

A season that runs whether you watch it or not.

A cyclocross manager: you run a team, the races run themselves on a Sunday, and a race nobody watched was raced as fully as one they did.

riders per division
36 riders per division
fields on one Sunday
6 fields on one Sunday
weeks in a season
13 weeks in a season
Laravel rascals/tick MySQL Web Push open-meteo Postmark

Read the case study

Own product 2026 — now

Pam

Reads the post, and says what every message is.

Incoming mail read over IMAP, grouped into conversations and labelled for what it is — a tender, a request for a price, a customer with a problem — without a copy of it leaving the building.

kinds — RFI, tender, price request, customer question, information, marketing, spam
7kinds RFI, tender, price request, customer question, information, marketing, spam
runs — fetching and judging, scheduled apart
2runs fetching and judging, scheduled apart
copies — of the post leave the building
0copies of the post leave the building
Laravel Blade Tailwind CSS IMAP SMTP SQLite

Read the case study

Own product 2026 — now

Turner

From clicked options to a plan somebody can run.

An offer builder that turns chosen options into priced phases, and an accepted offer into a project with sprints, steps and a clock on each of them.

steps — in every sprint, always the same eight
8steps in every sprint, always the same eight
levels — phase, sprint, step — each with its own clock
3levels phase, sprint, step — each with its own clock
shared secrets — at either end of a connection
0shared secrets at either end of a connection
Laravel Blade Tailwind CSS OAuth Webhooks SQLite

Read the case study

Client work 2022 — now

Best Tarief Office

Nine energy and telecom providers, one form.

A contract platform for a Belgian broker: one intake, nine providers' real PDF forms filled, signed with eID and pushed into the CRM.

providers integrated
9 providers integrated
languages, end to end
3 languages, end to end
signing and identity
eID signing and identity
Laravel Vue Horizon PDFtk AWS S3 amoCRM

Read the case study

Something like this on your list?

The projects differ, the way of working does not. Tell me what you are trying to solve.

Taking on new work