Spec-driven development with OpenSpec — let the AI write the code, you write the context
With OpenSpec, you stop hand-writing code and start writing context. Markdown specs describe what a feature must do. ADRs at org and app level govern how features hang together. An AI agent (Hydra) reads the spec, applies it, and a sequential quality + review harness validates the result. This tutorial walks the workflow, names the skills, and explains why "configuration over code" is the natural endpoint.
Read moreBuild a Nextcloud app on the Conduction stack — Part 6: Integrate
Connect your shipped DeskDesk app to the rest of the workspace. Read objects from a second OpenRegister register, deepen the xWiki source from Part 4 into a per-booking knowledge tab, then close the loop with a two-way booking ↔ xWiki maintenance sync over an OpenConnector webhook.
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 DeskDesk as the running example.
OpenWoo community — two years of monthly meetings
Recordings of every public OpenWoo community meeting since 2023 — vendors, municipalities, KOOP, and executive agencies rolling out the Dutch Open Government Act (Woo) together on Common Ground foundations.
Nextcloud is not a suite, it is a platform
Or it should be. Nextcloud already has the substrate. What is missing is the naming, the composition layer, and an honest reframe by the buyers running European sovereign-workplace migrations.
Build a Nextcloud app on the Conduction stack — Part 4: Knowledge + ship
Spin up xWiki locally, author zone-specific knowledge articles, surface them per-desk via an OpenRegister knowledge_article schema, package the app, publish to the Conduction app store.
Claude Skills tutorial series — Part 1: What are Claude Skills?
What a Claude Skill is, when you should write one (and when a prompt or command is the better tool), what fields belong in the frontmatter, and how Claude decides when to trigger it. First of four short modules.
Claude Skills tutorial series — Part 3: Skill evals — measuring whether your skill actually works
From a skill that "feels right" to a skill that measurably works. Writing test scenarios, baseline measurement, trigger tests, and the eval runner inside /skill-creator. Third of four short modules.
Build a Nextcloud app on the Conduction stack — Part 3: Schema-driven integrations
One calendarProvider block on the booking schema. Bookings appear in NC Calendar with no controller, no event listener, no per-app glue.
Claude Skills tutorial series — Part 2: Writing your first skill
Write a working Claude Skill from scratch — a mini-skill that summarises git statuses. Using /skill-creator as a starting point, a solid description, local testing, and adding it to your registry. Second of four short modules.
Claude Skills tutorial series — Part 4: From measured to learning and orchestrating (L6 → L7)
How do you go beyond L5? L6 puts a learnings loop on your skill, L7 turns it into an orchestrator that steers sub-agents. Plus a look at the skill-level-overview dashboard that lets you scan your whole skill library for maturity at a glance. Fourth of four short modules.
Build a Nextcloud app on the Conduction stack — Part 2: Schemas + manifest
Define the desk, booking, and floor schemas in OpenRegister, declare them in a manifest.json, and watch CnAppRoot replace ~200 lines of hand-rolled Vue with three lines of config.
Hydra tutorial series — Part 2: The three pipelines
Build, code review and security review. Who does what, in what order, and how a label state machine stitches the whole ride together. The second of six short modules.
Hydra tutorial series — Part 3: Quality gates
What are Hydra's mechanical quality gates, why do they deliberately NOT rely on AI judgement, and what do you do when a gate misfires? The third of six short modules.
Hydra tutorial series — Part 1: What is Hydra?
A short introduction to Hydra, Conduction's agentic CI/CD platform. What it does, why it exists, and where it sits inside our app factory. The first of six short modules.
Hydra tutorial series — Part 4: Skills
Which skills run inside the automated Hydra factory, which exist for humans on the CLI, how they get invoked, and when you should add a new skill to the loop yourself. Fourth of six short modules.
Hydra tutorial series — Part 5: Starting a Hydra run on a real app
The full recipe from issue to green PR, including the HYDRA_LABEL_PREFIX setting that lets multiple devs run Hydra at the same time without overwriting each other's labels. Fifth of six short modules.
Hydra tutorial series — Part 6: Troubleshooting & escalation
What to do when the pipeline gets stuck. The menu of choices between development merge, label reset, retry:queued, and rebuild:queued — ordered from cheap to expensive. Last of six short modules.
OpenSpec tutorial series — Part 1: What is OpenSpec?
A short introduction to OpenSpec, the spec-first framework underneath almost every Conduction project. What a spec is, what a change is, and why we write things down before we build them. First of two short modules.
OpenSpec tutorial series — Part 2: Your first OpenSpec change
From empty folder to validated OpenSpec change. We start with /opsx-new, write a spec-delta with a requirement plus scenario, let /opsx-ff generate the rest, and validate the whole thing. Second of two short modules.
Build a Nextcloud app on the Conduction stack — Part 1: Scaffold
Clone the Conduction app template, rename it to DeskDesk, build, enable, and see the canonical app chassis. The first of six parts that build a working desk-booking app on the full Conduction stack.
Upload files to a Woo publication
Four ways to attach documents to a Woo publication, from one PDF to a 6 MB report in chunks. With tested API calls.
Run Nextcloud locally with Docker
Five steps, half an hour. After that you have a clean Nextcloud running on your laptop — even if you have never used Docker or a terminal before.
Set up a Woo register in OpenRegister
Import the canonical Woo register into OpenRegister. One API call, ten TOOI categories, ready to store publications.
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 DeskDesk series teaches the manifest path because that is where the curve becomes steep in our favour.
Taming log noise with OpenTelemetry's drain processor
How a single processor cut our trace volume by 40 percent on the OpenRegister API.
Conduction is online
First post on the new Conduction site. The brand book moves here once the OpenCatalogi content plugin lands.
Set up the Conduction MCP server
Point Claude or any MCP-aware client at OpenRegister, then write your first MCP-driven query.
Replacing four SaaS subscriptions with five Conduction apps
How a Frisian municipality moved from four hosted services to a single Nextcloud workspace, in eleven weeks.
Managing OpenTelemetry semantic convention migrations with the collector
A 45-minute walk-through with live Q&A on rolling out semconv 1.27 across a fleet of services.
Build your first Conduction app, end to end
From a blank Nextcloud to a published app in the store. Schemas, registers, and an OpenConnector flow.
New posts in your inbox, monthly.
One mail a month. New guides, case studies, and webinars. No spam, unsubscribe any time.
We mail from info@conduction.nl. No list reselling.

