Kennisdelingschapter wigo4it developer.overheid.nl

  • Tom Ootes
  • 🐘 @tomootes
  • Den Haag
  • 13 Oktober 2026

whoami?

  • Tom Ootes
  • Developer.overheid.nl (2023)
  • Open Source, Developer Advocate
  • Community, outreach
Tom Ootes

How did i get here?

  • 😷 Bron- en contactonderzoek [COVID-19]
  • 📝 Vragenlijsten en formulieren
  • 📋 Informeren/ statistieken
  • ⚕️ Ministerie van Volksgezondheid, Welzijn en Sport
  • 📖 Geen interne docs!

Agenda

  1. developer.overheid.nl & de kennisbank
  2. Waarom standaardiseren?
  3. Open source en publiccode.yml
  4. API's: catalogus, API Design Rules en de don-checker
  5. AI skills voor overheidsstandaarden
  6. In BETA: Schema-register
  7. Vraag aan jullie & events

developer.overheid.nl

Hoe werken we samen?

  • Hoe helpen we developers?
  • Convergentie qua werkwijze
  • Hogere kwaliteit
Pull request met geslaagde checks

Standaardisering

  • Voorkomt discussies
  • 1 overheid
  • Voorspelbaarheid
  • Makkelijker ontsluiten
  • Makkelijker tooling bouwen
USB-C kabel

Kennisbank

Open Source Catalogus

Open Source Catalogus

🪄 publiccode.yml

  • Metadata-standaard voor open source van de overheid
  • In 2018 ontstaan in Italië
  • Eén YAML-bestand root van je repo
  • Makkelijk migreren van git-platform
  • Gebruikt door catalogi in 🇮🇹 🇫🇷 🇩🇪 🇳🇱
Voorbeeld van een publiccode.yml

Hoe ziet dat eruit?

publiccodeYmlVersion: "0.7"
name: don-checker
url: "https://github.com/developer-overheid-nl/don-checker"
softwareType: standalone/other
developmentStatus: stable
platforms: [web, linux]

organisation:
  uri: "https://developer.overheid.nl"
  name: developer.overheid.nl

supports:
  - id: https://gitdocumentatie.logius.nl/publicatie/api/adr/

description:
  nl:
    shortDescription: Controleer je API tegen de API Design Rules
    longDescription: >
      ...
    features:
      - Linter voor OpenAPI-specificaties
      - Te draaien in CI

legal:
  license: EUPL-1.2

maintenance:
  type: internal
  contacts:
    - name: Team developer.overheid.nl

localisation:
  localisationReady: false
  availableLanguages: [nl]

Waarom toevoegen?

  • Vindbaar: fungeert als flag
  • Hergebruik: ontdekken wat al bestaat
  • Context: het project één oogopslag
  • Europees: gezamenlijke standaard
  • Laagdrempelig: één bestand, tien minuten werk

don-checker voor je publiccode.yml

CLI, Web-app of CI/CD

npx @developer-overheid-nl/don-checker@latest validate \
  --standard publiccode \
  --input ./publiccode.yml

API Catalogus

API Design Rules

  • /core/doc-openapi-contact contactinformatie in de OAS
  • /core/doc-openapi beschrijf de API met OpenAPI
  • /core/http-methods alleen standaard HTTP-methods
  • /core/no-trailing-slash geen trailing slash in paden
  • /core/publish-openapi publiceer /openapi.json
  • /core/semver Semantic Versioning
  • /core/uri-version major versie in de URI (/v1)
  • /core/version-header API-Version response-header

don-checker cli

don-checker web-app

AI Skills

  • Niet genoeg mensen lezen de kennisbank, je vraagt het je AI-assistent
  • Maar die kent de Nederlandse standaarden niet of slecht
  • Oplossing: biedt de kennisbank aan in de assistent

Agent skills

  • Pakketje kennis + instructies voor een AI-assistent
  • AI-aanbieder agnostisch
  • Gewone markdown in een Git-repo
  • Wordt automatisch geladen als het onderwerp langskomt
  • Open source, dus te reviewen en verbeteren
skills/ls-api/
└── SKILL.md
    ---
    name: ls-api
    description: API Design Rules,
      Spectral linter, problem+json…
    ---
    # API Design Rules (NL GOV)
    ...

Skills marketplace

Plugin Over Beheer
standaarden ADR, Digikoppeling, OAuth NL, FSC, Logboek Dataverwerkingen DON
developer-overheid De kennisbank: API's, data, security, front-end, infra DON
nerds NeRDS-richtlijnen voor digitale systemen MinBZK
geo OGC API, NEN 3610, INSPIRE, 3D DON
internet HTTPS, DNSSEC, DMARC, … (internet.nl) DON
zad-actions Deployment via ZAD Rijks ICT Gilde

Schema-register

Schemavoorbeeld: adres

> Naar adresUitgebreid op catalogus

{
  "title": "Adres",
  "type": "object",
  "properties": {
    "openbareRuimteNaam": { "type": "string", "maxLength": 80 },
    "huisnummer":         { "type": "integer", "minimum": 1, "maximum": 99999 },
    "huisletter":         { "type": "string", "pattern": "^[a-zA-Z]{1}$" },
    "postcode":           { "type": "string", "pattern": "^[1-9]{1}[0-9]{3}[A-Z]{2}$" },
    "woonplaatsNaam":     { "type": "string", "maxLength": 80 }
  },
  "required": ["openbareRuimteNaam", "huisnummer", "woonplaatsNaam"]
}

Vraag aan jullie!

  • Zet jullie API's in ons API register
  • Voeg een publiccode.yml toe aan jullie open source repo's
  • Draai de don-checker in jullie CI
  • Gastblogs/ artikelen
  • Issues/ Pr's
  • Sluit aan bij de werkgroep JSON Schema of ADR
  • Op termijn: schema's aanleveren?

Events!

QR-code naar de developer.overheid.nl meetup Meld je aan!

Bedankt!

Vragen?

🐘 social.codefor.nl/@tomootes
📬 t.ootes@geonovum.nl

<p style="text-align: center; max-width: 60%; margin: 0 auto;">En waarom we veel meer moeten investeren in developertooling voor standaarden</p>

Kort eerst iets over mijzelf. Ik ben Tom, werk al sinds 2023 aan developer.overheid.nl. Als freelancer veel verschillende overheidsprojecten gedaan. Vind het mooi om daar aan te werken omdat we met developer.overheid.nl een gemeenschappelijk platform hebben om developers op een-duidige manier software te laten bouwen. Mijn rol is developer advocate wat betekent dat ik me verdiep in wat developers nodig hebben om bijvoorbeeld compliant te kunnen worden aan een standaard.

Wegwijzer Bottom up Open Source Veel van onze energie steken we in community building en events We brengen mensen liever bij elkaar dan dat we zelf bepalen hoe iets gebouwd moet worden Dus als je een foutje ziet, file an issue Wil je een feature? Draag ook een issue aan Vanuit de overheid worden hoge eisen aan software gesteld Er zijn veel standaarden, er is alleen geen goede tooling voor elke standaard beschikbaar om te checken of je voldoet aan die standaard. Deze tooling bouwen wij! De sweet spot is dus: handige tools leveren aan developers, zodat ze makkelijker kunnen werken maar waardoor ze ook direct compliant zijn aan de standaarden!

Wat ik al eerder zei bij m'n introductie, met deze vraag houden we ons bezig bij developer.overheid.nl.

Volledig open source op allerlei thema's Opgedeeld in standaarden/ tools/ tutorials

Metadata op basis van publiccode.yml

Dit is de bron van de Open Source Catalogus die je net zag. Het bestand werkt als een vlag: "dit is overheidssoftware, en je mag het hergebruiken". Het is machineleesbaar, dus catalogi kunnen het automatisch oppikken.

Naam, URL, status, licentie, onderhoud: dat is eigenlijk alles. De longDescription is ingekort voor de slide. Nieuw sinds 0.5: `organisation` (wie publiceert de software, met een URI). Nieuw in 0.7: `supports`, welke standaarden/regelgeving de software ondersteunt (hier de API Design Rules). Vervangt de landspecifieke secties.

Validatie kan met publiccode-parser-go, ook in je CI. Uitleg in de kennisbank: https://developer.overheid.nl/kennisbank/open-source/standaarden/publiccode-yml

Dinsdag 15 december mag in de agenda's!

https://developer-overheid-nl.github.io/don-checker/

Eerlijk is eerlijk: developers openen niet eerst developer.overheid.nl. Ze stellen hun vraag in Claude Code, Cursor of Copilot. Dan wil je dat het antwoord gebaseerd is op onze standaarden, en niet op een willekeurige blogpost van vijf jaar geleden.

Een skill is niets magisch: een markdown-bestand met een korte beschrijving. Als je vraag over API's gaat, laadt de assistent de skill en werkt hij met de actuele regels, links naar de bron en de juiste linter-commando's.

Eén centrale catalogus: github.com/developer-overheid-nl/skills-marketplace Werkt in Claude Code en Cursor. Let op: status concept, het zijn samenvattingen, de officiële standaard blijft leidend.

https://schemas.don.projects.digilab.network Alle JSON Schemas van de overheid op één plek: ruim 4.200 schema's. Zoeken en filteren op type en dialect, per schema een health-score. Eigen schema's toevoegen kan via "Toevoegen aan het Schema-register".

Ingekorte versie van AdresUitgebreid (BAG, Kadaster). Volledige beknopte versie: shows/wigo4it/adres.schema.json

Zet 15 december in je agenda