WOO Buddy
Redact Dutch freedom-of-information documents without uploading them, and without AI

The Dutch Wet open overheid obliges government bodies to publish documents on request, with personal data removed first. In practice that redaction is done by hand, page by page, by people with better things to do, using tools that were not designed for it. WOO Buddy is an open-source web application that makes that job faster without making it riskier. I build it with Jeroen Hammer; it is a personal side project, not connected to my employer or my company.
Two rules that decide everything else
The PDF never leaves your browser. Text extraction happens client-side with pdf.js. The server never stores document content, only decisions: a bounding box, an entity type, a tier, the legal article invoked. Export streams the file in and out of memory. Request bodies on the analysis and export endpoints are never logged. This is the whole trust proposition, and every architectural choice downstream of it is non-negotiable.
There is no language model in the codebase. We removed the last provider in 2026. Detection is regular expressions, Dutch named-entity recognition, wordlists and structural heuristics. That sounds like a limitation and it is partly a virtue: it is what makes the browser-only promise possible, it keeps hosting costs near zero, and it means the tool behaves the same way every time you run it, which matters a great deal when the output is a legal document.
Three tiers of detection
Hard identifiers, the things with a checksum or a fixed shape, are caught by regex with validation and redacted automatically: BSN, IBAN, phone numbers, email addresses, postcodes, licence plates. You can opt out, but the default is to catch them.
Contextual personal data, mostly names, addresses and roles, is harder. That runs through Dutch NER, first-name and surname corpora, structural heuristics and a rule-based filter for public officials whose names may legitimately stay in. These are suggestions, confirmed or rejected with one click, because a machine should not be quietly deciding what counts as identifying.
A third tier is reserved for content judgments and deliberately has nothing wired into it yet.
Open core, with a genuinely free tier
Because there is no model to pay for and no documents to store, hosting costs
approximately nothing. So the free tier is the marketing, not a teaser. There
is no signup wall on the trial, no document cap, no watermark, no preview-only
mode. Anonymous users analyse and export complete PDFs without an account, and
nothing is persisted unless you log in and explicitly save. Self-hosting is a
first-class option: docker compose up against a single Postgres.
Billing gates team features, never the review loop. Multi-user access, shared wordlists, an audit log, single sign-on, a Dutch-hosted data processing agreement, priority support. Flat per organisation, never per document.
The design question we ask about every new feature is whether it gates something on the path a first-time user takes. If the answer is yes, the feature is wrong, and the value belongs on the team tier instead.