Finding a doctor, dentist or physiotherapist in Belgium sounds like it should be a solved problem. In practice, provider information is scattered across hospital websites, regional health network pages, insurance-fund (mutualiteit/mutuelle) portals and municipal pages — each with its own structure, its own update rhythm, and often only one of the country's two main languages. Building a usable directory meant treating this as a data consolidation problem before it became a product problem.
Starting from the geography, not the listings
The first design decision was to anchor the directory on cities rather than on providers. Belgium's healthcare landscape is dense but unevenly distributed: a resident of a large city has a very different search experience than someone in a smaller municipality who needs to know which neighboring city actually has the specialist they're looking for. So the structure became city-first, specialty-second: fifty of the country's largest cities, each with its own page listing the relevant specialties available there, rather than one giant searchable table.
This sounds like a minor information-architecture choice, but it changes how you source and verify data. A city-first structure forces you to confirm, city by city, which specialties are genuinely represented before publishing anything — it discourages copy-pasting a national list and hoping it's locally accurate.
The bilingual problem is not just translation
Belgium's healthcare system is legally and administratively split enough that a straight Dutch-to-French translation of content is not sufficient. Reimbursement rules run through RIZIV/INAMI at the federal level, but a lot of practical patient-facing information — which GP is taking new patients, how a mutualiteit processes a given reimbursement — is only published in the region's dominant language, and sometimes only as a PDF on a local organization's site. Treating language as a content-sourcing constraint, not a localization afterthought, changed which sources were usable at all for the Dutch-speaking pages this site focuses on.
Explaining the system is part of the directory
A directory of providers is only half useful if visitors don't understand what they're looking at — specifically, what's covered by compulsory insurance (verplichte verzekering) versus what depends on supplementary coverage, and what a referral from a GP changes about reimbursement for a specialist visit. So alongside the city/specialty listings, the site carries plain-language explainers on how Belgian health insurance and patient rights actually work. This content is intentionally conservative: no specific reimbursement amounts are quoted unless they come directly from an official RIZIV/INAMI source, because those figures change and a stale number is worse than no number.
Keeping it accurate over time
The hard part of a directory site isn't the initial build, it's staying correct as practices close, specialists move cities, or a hospital reorganizes its departments. The approach taken here is deliberately narrow in scope — fewer cities and specialties, verified more carefully — rather than exhaustive coverage that degrades silently. It's a trade-off that will keep mattering as the directory grows: better to be confidently right about fifty cities than vaguely right about the whole country.
If you're working on a similar problem — structuring fragmented, multi-source, multi-language public-interest data — the lesson that generalizes best is to let the geography or the regulatory boundary drive your data model, not the other way around. You can see the current result at Zorg-Portaal, a healthcare provider directory for Belgium's largest cities.
Top comments (0)