Conduction Academy
La Frankendesk
The French, the Germans and the Dutch are each building their own sovereign workspace. La Suite is beautiful, as ever. openDesk is well engineered and gloriously feature rich. MijnBureau ties the best of both together, because of course it does. So we borrowed a method from Dr Frankenstein: take the guillotine to the French design, apply the Dutch instinct for stitching things together, and graft the result onto German engineering. No repositories were harmed in the making of it.
Lees meerIn elk publiek opensourceproject leven twee wolven. Voer de wolf die levert.
In elk opensourceproject van de overheid leven twee wolven. De één schrijft code, de ander schrijft beleid. Allebei doen ze eerlijk hun best, en tóch gaat het steeds mis, van Nixpkgs tot Gaia-X. Waarom is het zo moeilijk om die twee te laten samenwerken?
This is going to hurt. Part 1: you are the horse
After every AI talk the same question comes up: how f*cked are we? For your daily work the honest answer is: more than you want to hear, less than you fear. The change runs ten times faster than your gut expects, the stock market has already marked down the software you use every day, and the first thing to go is not your job but the tasks inside it.
This is going to hurt. Part 2: the big three
Three AI labs carry 2.07 trillion dollars of paper value on roughly 72 billion of revenue: 44 Estonias of valuation on one Slovenia of income. The rise broke the memory market. The fall is already visible: open weights three points behind and shrinking toward a gaming card.
This is going to hurt. Part 3: ownership
You lease the laptop, the bike and the car, you rent the house, you stream the movies and the games. Ownership quietly became a subscription, and with it went the way ordinary households build capital and security. We are dismantling Maslow's pyramid from underneath ourselves.
This is going to hurt. Part 4: security
The same cheap intelligence that helps you now attacks at machine speed. An agent cancelled a stranger's gym booking to win a waitlist spot; Claude ran most of a real thirty-target espionage campaign; self-replicating worms poisoned npm, VS Code and GitHub. If Microsoft cannot keep the worm off its own supply chain, nobody is safe. The tools do not need to be evil to be dangerous. They only need to be aligned to someone who is not you.
This is going to hurt. Part 5: the singularity
Every AI-doom story asks the wrong question. Not can the machine do it (it can, or soon will) but will a human ask it to. The risk is not a rogue superintelligence; it is a perfectly obedient one pointed by our lowest common denominator, a figure the world's courts have spent eighty years proving is no fiction.
This is going to hurt. Part 6: actually, it might help
The way out of the hurt: intelligence becomes a commodity you buy once and plug into your own machine, next to your own data. Every person with their own Hermiq, building the tools they always wished existed, robotising the admin and keeping the work they actually wanted. And no, not everyone needs to self-host: rent the hosting, never the ownership.
Keepiq: a zero-knowledge secrets vault inside Nextcloud
A walk-through of Keepiq, the encrypted secrets manager for Nextcloud. Personal vaults, team sharing, and a write-without-read credential store for applications — all backed by a private Certificate Authority your instance bootstraps and manages itself.
Hermiq: scheduling autonomous AI agents in Nextcloud
A walk-through of Hermiq, which brings autonomous AI agents to the Nextcloud workspace. Give an agent a prompt, tools and skills, run it on a schedule, and have its output land in Nextcloud Talk — with a human approval gate in front of anything sensitive.
Thematiq: the NL Design System as a drop-in Nextcloud theme
A walk-through of Thematiq, which brings the official NL Design System tokens into Nextcloud. Pick your organisation's house style from a list of pre-built themes, fine-tune tokens in the editor, and every Conduction app picks it up without being branded separately.
Hermiq skills tutorial series — Part 1: Skills for your agents
Give a Hermiq agent a new capability without writing code. Browse the skills catalog, read the seeded examples, install a skill onto an agent, and author your own skill by hand or in conversation. Part 1 of 4.
Hermiq skills tutorial series — Part 2: Qualifying a skill (L1–L7)
Run the Qualify action on the seeded skills, read the seven-level scorecard, fix a failing level, and attest L4 as a curator. Also covers why most skills stop at L4, and why that is fine. Part 2 of 4.
Hermiq skills tutorial series — Part 3: Measuring skills with paired evals
Prove a skill earns its place. Link an eval dataset to a skill, run a paired with/without baseline through the real engine, read pass rate and baseline delta, and watch L5 evidence land on the scorecard. Part 3 of 4.
Hermiq skills tutorial series — Part 4: Skills that learn
Close the loop. Read the learnings a skill captures from its own runs, review a self-proposed improvement draft with diff and provenance, roll a version back, and republish to GitHub when the published copy falls behind. Part 4 of 4.
Buildiq in 9 minutes: build a Nextcloud app, no code
Build and ship a Nextcloud app in the browser. Nine minutes, no code.
Build personalised dashboards with LaunchPad
LaunchPad supercharges the Nextcloud dashboard into a drag-and-drop workspace. In this tutorial you open LaunchPad for the first time, add both native Nextcloud widgets and LaunchPad's own custom widgets, drop in shortcut tiles with icons and colours, reposition everything on the grid, fork a second dashboard for a different context, pin a default, and then switch hats to the admin side — rolling a template out to a group, restricting which widgets a group may add, and making LaunchPad the landing app for everyone after login.
Get started with Shillinq: your first invoice
Install Shillinq, read the Financial overview dashboard, and send your first sales invoice with the quick draft, all through the Nextcloud interface.
Big tech de deur uit: Nextcloud voor thuisgebruik, weg van Microsoft 365 en Google
— en hoe ik mijn eigen server bouwde op een Raspberry Pi, met mijn data weg bij OneDrive, Gmail, Dropbox en nog veel meer.
Hydra: the agentic app factory
First of a three-part webinar series. A walk-through of Hydra, Conduction's agentic CI/CD platform that turns OpenSpec changes into reviewed, gated, shippable Nextcloud apps.
Manifesting: apps from a single declaration
Second of a three-part webinar series. How a single manifest declares schemas, pages, menus and widgets — and how OpenRegister turns that declaration into a running app without hand-written controllers.
Buildiq: no-code app building on Nextcloud
Final part of a three-part webinar series. Buildiq is the visual editor on top of manifests — schemas, pages, dashboards and flows, built and edited in the browser, no code required.
Model and manage your data with OpenRegister
Build a complete Pet Store data model in OpenRegister without writing a line of code. You create a register, design a pet schema with typed and validated properties, add owner and category schemas with real relations between them, fill the register with objects through the interface, attach a photo to a pet, make pets findable in Nextcloud's unified search, watch OpenRegister version and audit every change, lock the data down with group permissions, and finally export the whole configuration so it travels between instances. Every step is done live in the app, with API and PHP equivalents alongside.
Publish a public catalog with OpenCatalogi
Take your OpenRegister Pet Store public without writing a line of code. You scope a catalog to your register, learn exactly how OpenCatalogi decides what an anonymous visitor may see (an OpenRegister RBAC rule that grants the public group read only when a publication date is in the past), publish nine pets while keeping one future-dated pet hidden, verify the rule from a genuinely logged-out browser against the public publications API, and expose the catalog as a DCAT-AP-NL feed that national open-data harvesters can read. Pet Store domain, with UI, API and PHP tabs throughout.
Pull external data into your register with Integriq
Feed your OpenRegister Pet Store from a live external API without writing integration code. You register the public Swagger Pet Store as a source, test the connection, write a Twig mapping that reshapes an external pet into your pet-academy schema and test it against a sample record, tie source, endpoint, results/id position, mapping and target register together in a synchronisation, run it for real to create pets in your register, and finally schedule it so new records arrive on their own — with id-based deduplication on every re-run. Pet Store domain, with UI, API and PHP tabs throughout.
Build a Nextcloud app with Buildiq, no code required
Build a complete Pet Store app inside Nextcloud without writing a line of code. You will create the app, design its data model, seed it with demo data, compose a dashboard from every widget type, give a vets group its own medical layer, release a production version, publish the app to GitHub and reinstall it from the store, surface the app on the LaunchPad dashboard and in search, link vet visits to Calendar, drop files onto a pet, add business-logic flows that book a vet inspection and email the vet when a pet is registered, and learn how an AI agent can build the whole app over MCP. Buildiq is the visual builder for the same manifest the code path teaches; here you author it by clicking, not by editing JSON.
Publish open government data end to end: the Woo & DCAT overlay
Tie the OpenRegister → Integriq → OpenCatalogi pipeline into one compliant Woo open-data chain. The three deep tutorials teach each app on a Pet Store; this capstone overlays the Dutch open-government layer on top — the canonical Woo and DCAT registers, an external open-data source mapped to a Dataset, the publicatiedatum publish rule, and a DCAT-AP-NL feed that data.overheid.nl harvests. Grab data from a source, and publish it on a catalog.
Publish and harvest a catalog with DCAT-AP
Scope a catalog to your DCAT register, publish with one date field, and expose it as a DCAT-AP-NL feed that data.overheid.nl can harvest.
Hydra tutorial series — Part 7: CI and deployment
Parts 5 and 6 ran Hydra on your own machine. This part zooms out to how Hydra runs unattended, triggered by Codeberg/Forgejo Actions, with container images in the Codeberg registry, scoped credentials and token rotation. It lays out the three deployment models and marks honestly what is documented and what is infrastructure-only.
OpenSpec tutorial series — Part 0: Why spec-first
Before the how, the why. OpenSpec is the harness that turns vibe coding into spec coding, so we can put an LLM to work inside our development ecosystem instead of hoping it guesses right. This opener covers where the idea comes from, why "As a user I want..." stops being enough, how a contract lets you test-drive an LLM, and where the specs go next.
OpenSpec tutorial series — Part 3: ADRs, the standing context
Specs say what one feature must do. ADRs say how every feature must be built. This part explains Architecture Decision Records, the compact judgement-only rules an AI reads before it writes a line, and how Conduction splits them into company-wide ADRs (in hydra) and per-app ADRs (in each repo), with a model for adding and promoting them.
OpenSpec tutorial series — Part 4: From scenario to Playwright test
A scenario in a spec is a test you have not run yet. This part shows how a GIVEN/WHEN/THEN scenario becomes a Playwright test, how the @e2e and @spec annotations let you backtrace any line of code or any test to the demand it serves, and how gate-19 turns that into a safe sandbox for spec coding instead of vibe coding.
Big tech de deur uit: Introductie
Welkom bij deze serie blogs over doe-het-zelf digitale soevereiniteit. Ik ben Robert, activist voor open source en digitale soevereiniteit en ontwikkelaar bij Conduction.
OpenSpec leerlijn — Deel 3 (optioneel): Retrofit een bestaande codebase
Optioneel, situationeel vervolg op Deel 1 + 2. Alleen relevant als een oudere app — gebouwd vóór OpenSpec — alsnog onder de huidige spec ↔ code-conventie gebracht moet worden. Naslagwerk voor de skills /opsx-coverage-scan, /opsx-annotate en /opsx-reverse-spec.
Build a Nextcloud app on the Conduction stack — Part 7: The nc-vue component library
Parts 2–6 used a handful of nc-vue components by name (CnAppRoot, CnObjectSidebar, CnDashboardPage, CnMarkdownEditor). Part 7 completes the picture, organised by capability so you can reach for the right component the moment your PetStore app needs it.
Build a Nextcloud app on the Conduction stack — Part 8: Document and showcase
Stand up the documentation site for the PetStore app you've built across Parts 1–7. Hosted from your Codeberg or GitHub repo via the central documentation workflow, illustrated with token-built screen mocks, and walked through with Playwright-captured screenshots. Every push to development rebuilds and republishes.
Government open source needs an engine, not pushers
Government is a great starter and a hopelessly bad ecosystem. An open source solution that lives only inside government dies of its single customer. KPN, Centric, and the market around them are standing by to keep the engine running. So step aside.
Workstation Setup leerlijn — Deel 1: Wat installeer je, en waarom?
Een nieuwe Conduction-developer heeft een specifieke combinatie aan tools nodig — Claude Code, Docker, Nextcloud lokaal, Playwright, een handvol globale instellingen. Voor we door installers gaan klikken, legt dit deel uit wat er op het menu staat en welke keuzes je als eerste maakt. Eerste van zes korte modules.
Workstation Setup leerlijn — Deel 2: De basis inrichten
WSL2, Docker Desktop, VS Code met de juiste extensies, Node, PHP, Codeberg-auth (SSH-sleutel + tea CLI) plus de GitHub CLI, de OpenSpec CLI en de Playwright-browser. Het langste deel van de leerlijn — de meeste tijd gaat in downloads waar je naast iets anders kunt doen. Na dit deel heb je een werkend dev-workstation, alleen Claude Code is nog niet aangesloten.
Workstation Setup leerlijn — Deel 3: Claude Code installeren en configureren
Claude Code in VS Code, inloggen, en de verplichte global settings en safety hooks die destructieve shell-commando's onderscheppen voordat ze draaien. Kort maar belangrijk — Claude Code draaien zonder deze hooks is hoe mensen per ongeluk hun eigen repo wissen. Derde van zes korte modules.
Workstation Setup leerlijn — Deel 4: De MCP-server aansluiten
Een complete Conduction-workstation heeft minstens één MCP-server aangesloten in de project-root. Deze korte module legt uit wat MCP is, hoe het .mcp.json-bestand werkt, en hoe je de Playwright-browserpool opzet waar de testing-skills van afhangen. Inclusief verwijzingen naar de aparte Conduction MCP-server-tutorial. Vierde van zes korte modules.
Workstation Setup leerlijn — Deel 5: Nextcloud lokaal draaien
Een werkende Conduction-workstation heeft een Nextcloud nodig waarop je kunt testen. Die tutorial bestaat al — deze korte module plaatst hem als de laatste installatiestap voordat je productieklaar bent, en vertelt je welke apps je installeert zodra Nextcloud draait. Vijfde van zes korte modules.
Workstation Setup leerlijn — Deel 6: Klaar — wat nu?
Je workstation staat. Dit is de ereronde — een korte kaart van de volgende tutorials, gegroepeerd naar wat voor werk je gaat doen. OpenSpec, Claude Skills, Build an App, Hydra — waar elk voor is en waar je begint. Zesde en laatste van zes korte modules.
Spec-gedreven ontwikkeling met OpenSpec — laat de AI de code schrijven, jij schrijft de context
Met OpenSpec stop je met het zelf schrijven van code en begin je met het schrijven van context. Markdown-specs beschrijven wat een feature moet doen. ADR's op organisatie- en app-niveau bepalen hoe features samenhangen. Een AI-agent (Hydra) leest de spec, past die toe, en een sequentiële kwaliteits- en review-harness valideert het resultaat. Deze tutorial loopt door de workflow, benoemt de skills, en legt uit waarom "configuratie boven code" het natuurlijke eindpunt is.
Build a Nextcloud app on the Conduction stack — Part 5: Advanced manifest features
Past the schema-driven CRUD basics, the v2.7.0 manifest schema gives you `actionToggles`, `fieldWidgets`, route-param sentinels, public-mode pages, and seven extra page types (form, wiki, search, roadmap, map, logs, settings). One tutorial that walks through each, using PetStore as the running example.
Build a Nextcloud app on the Conduction stack — Part 6: Integrate
Connect your shipped PetStore app to the rest of the workspace. Read suppliers from a second OpenRegister register, deepen the xWiki source from Part 4 into a per-order care-guide tab, then close the loop with a two-way order ↔ xWiki maintenance sync over an Integriq webhook.
OpenWoo-community — twee jaar maandelijkse meetings
Opnames van elke publieke OpenWoo community meeting sinds 2023 — leveranciers, gemeenten, KOOP en uitvoeringsorganisaties die samen de Wet open overheid uitrollen op Common Ground-leest.
Nextcloud is een platform
Een opiniestuk over waarom Nextcloud bekeken zou moeten worden als een platform, niet als een product. De sovereign-workplace-bundels zijn het begin, niet het einde. Microsoft heeft achttien tot zesendertig maanden. Europa ook.
Build a Nextcloud app on the Conduction stack — Part 4: Knowledge + ship
Spin up xWiki locally, author per-category care guides, surface them per pet via an OpenRegister care_guide schema, package the app, publish to the Conduction app store.
Build a Nextcloud app on the Conduction stack — Part 3: Schema-driven integrations
One calendarProvider block on the order schema. Order ship-dates appear in NC Calendar with no controller, no event listener, no per-app glue.
Claude Skills leerlijn — Deel 1: Wat zijn Claude Skills?
Wat is een Claude Skill, wanneer schrijf je er een (en wanneer juist een prompt of command), welke velden staan in de frontmatter en hoe weet Claude wanneer hij hem moet triggeren. Eerste van vier korte modules.
Claude Skills leerlijn — Deel 2: Je eerste skill schrijven
Schrijf van scratch een werkende Claude Skill — een mini-skill die git-statussen samenvat. Met /skill-creator als startpunt, een goede description, lokaal testen, en opnemen in je registry. Tweede van vier korte modules.
Claude Skills leerlijn — Deel 3: Skill-evals — meten of je skill werkt
Van een skill die "goed voelt" naar een skill die gemeten goed werkt. Test-scenario's schrijven, baseline-meting, trigger-tests, en de eval-runner van /skill-creator. Derde van vier korte modules.
Claude Skills leerlijn — Deel 4: Van gemeten naar lerend en orkestrerend (L6 → L7)
Hoe ga je voorbij L5? L6 zet een learnings-loop op je skill, L7 maakt er een orkestrator van die sub-agents aanstuurt. Plus een blik op het skill-level-overview dashboard waarmee je je hele skill-library in één oogopslag op maturity kunt scannen. Vierde van vier korte modules.
Build a Nextcloud app on the Conduction stack — Part 2: Schemas + manifest
Define the category, pet, and order schemas in OpenRegister, declare them in a manifest.json, and watch CnAppRoot replace ~200 lines of hand-rolled Vue with three lines of config.
Haven en Haven+ — van VNG-standaard naar lokale Kubernetes-praktijk
Wat Haven voorschrijft, waarom het bestaat en hoe je de bouwstenen lokaal namaakt met kind. Geen compliant cluster op je laptop, wel een werkende oefenomgeving waarin de standaard tastbaar wordt.
Hydra leerlijn — Deel 2: De drie pipelines
Build, code-review en security-review. Wie doet wat, in welke volgorde, en hoe een label-state-machine de hele rit aan elkaar plakt. Tweede van zes korte modules.
Hydra leerlijn — Deel 3: Quality gates
Wat zijn de mechanische quality gates van Hydra, waarom werken ze juist NIET met AI-oordeel, en wat doe je als een gate per ongeluk fout slaat? Derde van zes korte modules.
Hydra leerlijn — Deel 1: Wat is Hydra?
Een korte introductie op Hydra, Conductions agentic CI/CD-platform. Wat doet het, waarom bestaat het, en welke plek het heeft binnen onze app-fabriek. Eerste van zes korte modules.
Hydra leerlijn — Deel 4: Skills
Welke skills draaien in de automatische Hydra-fabriek, welke zijn er voor mensen op de CLI, hoe ze worden aangeroepen, en wanneer je zelf een skill aan de loop toevoegt. Vierde van zes korte modules.
Hydra leerlijn — Deel 5: Een Hydra-run starten op een echte app
Het hele recept van issue tot groene PR, inclusief de HYDRA_LABEL_PREFIX-instelling waarmee meerdere devs gelijktijdig Hydra kunnen draaien zonder elkaars labels te overschrijven. Vijfde van zes korte modules.
Hydra leerlijn — Deel 6: Troubleshooting & escalatie
Wat te doen als de pijplijn vastloopt. Het keuzemenu tussen development-merge, label-reset, retry:queued, en rebuild:queued — geordend van goedkoop naar duur. Laatste van zes korte modules.
OpenSpec leerlijn — Deel 1: Wat is OpenSpec?
Een korte introductie op OpenSpec, het spec-first framework dat onder vrijwel al onze projecten draait. Wat een spec is, wat een change is, en waarom we dingen eerst opschrijven voor we ze bouwen. Eerste van drie korte modules.
OpenSpec leerlijn — Deel 2: Je eerste OpenSpec change
Van leeg mapje naar gevalideerde OpenSpec change. We starten met /opsx-new, schrijven een spec-delta met een requirement plus scenario, laten /opsx-ff de rest genereren, en valideren het geheel. Tweede van drie korte modules.
Een Nextcloud-app publiceren in de App Store
Van nul naar gepubliceerde app in de Nextcloud App Store. CSR aanvragen, signen, registreren, releasen, en de hele release-pijplijn automatiseren via GitHub Actions.
Nextcloud hosten — bare metal, Docker of Kubernetes?
Drie manieren om Nextcloud te draaien, één onderbouwde keuze. Bare metal voor controle, Docker (of AIO) voor de meeste teams, Kubernetes alleen als je dat al draait. Plus een beslismatrix en de aandachtspunten die elke productie-installatie raakt.
Build a Nextcloud app on the Conduction stack — Part 1: Scaffold
Clone the Conduction app template, rename it to PetStore, build, enable, and see the canonical app chassis. The first hands-on part of the nine-part app-building series, using the OpenAPI Pet Store as the running domain.
Nextcloud lokaal draaien met Docker
Vijf stappen, een halfuur. Daarna draait er een schone Nextcloud op je laptop — ook als je nog nooit met Docker of een terminal hebt gewerkt.
Een Woo-register opzetten in OpenRegister
Importeer het canonieke Woo-register in OpenRegister. Eén API-aanroep, tien TOOI-categorieën, klaar om publicaties op te slaan.
Bestanden bij een Woo-publicatie uploaden
Vier manieren om documenten aan een Woo-publicatie te koppelen, van één PDF tot een 6 MB rapport in chunks. Met geteste API-aanroepen.
Build a Nextcloud app on the Conduction stack — Part 0: Three paths, one curriculum
Before you write a line of code, decide which of the three Conduction app-building paths fits the app you have in mind. Traditional Nextcloud, OpenRegister + nextcloud-vue, or full manifest. Each one builds on what the previous gives you, and the rest of the series teaches the manifest path because that is where the curve becomes steep in our favour.
Conduction is online
Eerste post op de nieuwe Conduction-site. Het brand book verhuist hierheen zodra de OpenCatalogi content-plugin landt.
De Conduction MCP-server opzetten
De OpenRegister Nextcloud-app levert een MCP-server mee die Claude directe toegang geeft tot je lokale Conduction-datalaag. Deze tutorial sluit hem aan op dezelfde .mcp.json waar de Playwright-pool al in staat, behandelt Nextcloud app-password-auth, en eindigt met de eerste MCP-gedreven query.
Nieuwe berichten in je inbox, maandelijks.
Eén mail per maand. Nieuwe guides, case studies en webinars. Geen spam, je kunt je altijd uitschrijven.
We mailen vanuit [email protected]. Geen lijstverkoop.
