← Back to work
Case study Live · 2026 — present Belgium · NL/FR/EN

slim.lu

A price comparison service for Belgian consumers. It takes a market where the real cost is deliberately hard to see and turns it into something a household can compare — showing the sources, the check dates and the gaps rather than hiding them. Live at slim.lu, open source at ARBITORIA-BE/slim. I defined the problem, the ranking rules and the validation criteria; the implementation is AI-assisted.

The observation

Belgian telecom pricing is not complicated by accident. Every operator runs a promotional window that expires — six months here, twelve there — after which the price steps up to a number nobody quoted at signup. Bundles change the arithmetic again. Brand names hide ownership: Scarlet is Proximus, BASE is Telenet, VOO has been folded into Orange. The result is a market where the advertised number and the two-year cost are different questions, and only one of them is easy to look up.

This is the same shape as the problem I work on professionally. A figure that is technically accurate and still misleading, because the context that produced it has been stripped away. The difference is that at work I fix it inside a company's systems, and here the affected party is a household.

What the service does

Publishing what is usually hidden

The part I care most about is not the comparison; it is the disclosure around it. A comparison you cannot audit is just an assertion with a table around it. So the service publishes, on a page anyone can reach:

A comparison site that cannot show its sources is asking to be believed. Publishing the exclusions is the cheapest way to earn the opposite.

Naming the operators you left out is the uncomfortable one, and the most useful. It converts a silent gap in coverage into a stated limitation the reader can weigh — the same instinct as marking unconfirmed items in a dataset rather than dropping the rows.

Under the hood

The engineering exists to make the above true continuously rather than once. It is built with AI coding tools against requirements and acceptance criteria I set — so read it as evidence of specification and verification, not of hand-written code.

Stack — Next.js 15 (App Router, RSC) · TypeScript · Tailwind CSS 4 · Drizzle ORM on Postgres · Zod · next-intl · Vitest + Playwright · Vercel

Where it is now

The product works and the data pipeline runs daily; the audience is still small. I would rather report that accurately than inflate it — the numbers worth quoting here are the four operators covered and the daily check, not a traffic figure.

Why this matters for the work I want

slim.lu is what happens when the data-quality habit is pointed at a consumer market instead of a corporate database: find where the context went missing, rebuild it, and publish the limitations alongside the answer. That is the same job as producing an analysis someone will make a decision from — the caveats have to travel with the number, or the number does damage.

Live at slim.lu. Source at github.com/ARBITORIA-BE/slim. The disclosure pages are linked from every comparison.