Skip to main content

Pages built by an agent. Published by a person.

The Assoc platform is Drupal 11 with Canvas, a design system of single-directory components, site recipes and Drupal AI. Your editors lay out pages from your own components; an agent can do the same over MCP, as a Drupal user with an editor's role, and stops where an editor would stop.

core
Drupal 11
page building
Drupal Canvas
components
SDC design system
site setup
Drupal recipes
agents
MCP, editor role
models
your provider, via Drupal AI
hosting
Hetzner, Germany
sites
1 to many, one codebase

01 / Problem

three costs we keep seeing

Most platforms make editors wait, and most AI tools skip the rules.

  1. problem

    Every new layout is a developer ticket.

    platform answer

    Editors place your own components in Canvas. New layouts need a new component only when the design system lacks one.

  2. problem

    AI that writes to the database skips review.

    platform answer

    The agent calls Canvas through MCP as a Drupal user. Access checks, drafts and revisions apply to it exactly as to a person.

  3. problem

    Each new site copies the last one, and drifts.

    platform answer

    Sites share one codebase and one design system; a recipe applies each site's configuration, so fixes ship to all of them.

02 / Demonstration

sample run · recorded, not live

Watch the agent build a page in Canvas.

One prompt, five tool calls, one refusal. The agent can draft and place components; it cannot publish, because the editor role it runs as cannot publish either.

Sample prompt: Build a landing page for the spring open day from our hero, schedule and signup components.

  1. agent · canvas_list_components

    as content_editor → ok, 62 components

  2. agent · canvas_create_page

    “Spring open day” → ok, draft revision 1

  3. agent · canvas_add_component

    hero_banner → slot content, ok

  4. agent · canvas_add_component

    event_schedule → slot content, ok

  5. agent · canvas_add_component

    signup_form → slot content, ok

  6. agent · canvas_publish_auto_saves

    denied: content_editor lacks “publish content”. Page stays a draft; review requested from M. Okafor.

  7. human · M. Okafor, editor

    reviewed revision 1 → approved and published

The publish step waits for a person.

03 / AI built in

input → output → who reviews

Six jobs the AI does, each with a person at the end.

Canvas page agent

Builds and edits pages from your design system over MCP, as a Drupal user with your editor role.

in
a prompt, your components
out
a draft page
review
editor publishes

Semantic search

Answers from your own content (RAG), with the passages they came from.

out
answer + 3 cited sources

Translation

Drafts each changed page in your site's languages as a new revision.

review
a speaker of each language

Content assistant

Summaries, alt text and teaser copy, offered in the editor, never saved on its own.

review
accept or discard

Accessibility checks

Runs before publish: headings, contrast, alt text, link names.

out
issues listed on the draft

SEO checks

Titles, descriptions, duplicate pages and broken links.

What it will not do: rewrite your copy for keywords, or publish a fix. It reports; an editor decides.

04 / Architecture

six layers, read top down

What runs where, and who may change it.

  1. L6

    Sites

    Each with its own database, domain and configuration directory.

    editors, agent

  2. L5

    Recipes

    One per kind of site: the modules it installs and the configuration it imports.

    Assoc, reviewed by you

  3. L4

    Design system

    Single-directory components with typed props and slots, the only parts Canvas offers.

    designers, developers

  4. L3

    Canvas, Drupal AI, MCP server

    Where pages are composed. Agents connect here through Tool API operations, never around it.

    permissions decide

  5. L2

    Drupal 11 codebase

    One Composer project for every site, deployed as one release.

    developers, via review

  6. L1

    Infrastructure

    Hetzner servers in Germany, provisioned with Ansible, monitored and backed up nightly.

    Assoc operations

05 / Governance

limits and data handling

What the agent cannot do.

Publish without a person
Its role has no publish permission unless you grant one. Approval stays in content moderation.
Touch code, modules or configuration
Tool calls are limited to Canvas page operations on an allowlist.
See what its role cannot see
Unpublished or restricted content is filtered by Drupal's own access checks.
Invent components
It places only components in your design system, with props their schema allows.
Send data anywhere you did not choose
Prompts go only to the model provider configured in Drupal AI. Traces are kept 90 days (sample policy).
Erase its own tracks
Every change is a revision with its author. Roll back any step from the revision history.

Known limits: it can misjudge tone and pick a weaker layout than a designer would. That is why its work lands as a draft.

06 / Outcomes

sample figures, one client, 6 months

Sample outcomes

landing page, prompt to draft
40 min
was 3 working days · sample
agent drafts published
78%
after an edit by a person · sample
publishes without approval
0
by design, not by luck · sample

07 / Engagements

sample prices, excl. VAT

Start with two weeks. Decide after.

01 · 2 weeks start here

Discovery sprint

€14,000

fixed · sample

  • Audit of sites, content and editor workflow
  • Architecture, recipe plan, component inventory
  • Agent pilot on one site, one page type

excludes build work, hosting

02 · 8–12 weeks

Platform build

from €96,000

milestones · sample

  • Drupal 11, Canvas, SDC design system
  • Site recipes and the first sites migrated
  • Agent, assistant, search and translation wired to your roles

you provide a product owner, 2 h a week

03 · monthly

Platform care

from €3,200

/ month · sample

  • Hetzner hosting, provisioned with Ansible
  • Security updates across the whole fleet
  • Monitoring and the remote fleet dashboard

notice 60 days, no minimum term

08 / Questions

asked in most reviews

Questions before a review.

Does the agent need an admin account?
No. It is a normal Drupal user with a role you define, usually the same content_editor role your editors have. If the role cannot do it, the agent cannot either.
Which AI models does it use?
The one you configure in Drupal AI. Hosted providers and self-hosted models both work; we help you choose during the discovery sprint, including where prompts are processed.
Do our editors need to learn MCP?
No. MCP is how the agent talks to Canvas. Editors write a request, review the draft in Canvas as they would any other, and publish it or not.
We are on Drupal 10. Can we keep our content?
Yes. Content is migrated into the new sites during the build. The discovery sprint tells you how much of your current theme becomes components and how much is redesigned.
What happens when the agent gets something wrong?
It stays a draft. The editor changes it or discards it, and the trace shows which step went wrong, so we can tighten the prompt or the component's schema.
Who owns the code and the design system?
You do. The codebase lives in your repository, the components are yours, and the recipes are plain YAML any Drupal team can read.

See it on one of your own pages.

45 minutes with two engineers. Bring one page type you would like the agent to build; we run it in a sandbox on the call.