Callum Harrod
Acquia logo

Drupal Canvas

Drupal's new page builder, now on over 13,000 sites. I joined as a front-end engineer and ended up leading its design, from the design system to a redesign of the whole product.

Role

Design lead (Senior Product Designer), joined as a front-end engineer

Team

Around 20 engineers, a product manager, and three junior designers who joined under me

Timeline

Jan 2025 - Dec 2025

Outcome

13,604 sites in the week of 20 Sept 2026, under ten months after 1.0

My role

I led the design of Drupal Canvas, but I didn't start it. When I joined, engineering had already chosen the tech, including Radix for components, and earlier designers had produced a first UI. I designed the whole design system, then redesigned the entire UI so it held together as one product, rethinking its foundations along the way: the shell, the panels and how every feature flows. I also designed the new features and reviewed the UI engineering shipped.

What I owned

6
  • The whole Figma design system, built on Radix to match the codebase, with usage rules for components, icons, colour and type

  • A ground-up redesign of the entire UI, so every part of Canvas works the same way, with new components where the old ones didn't fit

  • The product shell: the panels and top bar, and how they expand with what you're doing

  • User flows and designs for every feature, both the redesigned ones and the new ones

  • Design review of the UI engineering built

  • Leading the three junior designers who joined under me, and reviewing their features so Canvas stayed cohesive

What I shared

2
  • Interaction details, worked out with the engineers building them

  • Requirements, which I often worked out with product before there was anything to design

What others did

3
  • Engineering built and shipped Canvas, and chose the tech stack

  • Earlier designers created the first UI, which I pulled into the design system before redesigning it

  • The junior designers on my team designed individual features, such as asymmetric translations

Drupal Canvas editing a travel site's home page, with the templates panel on the left, the page preview in the middle and page settings on the right
The Canvas content list, with an article open for editing in a side panel
The Canvas code editor, writing a code component with a live preview and its props alongside

Canvas as it is now: the page editor, the content list and the code editor. I designed all three, and the Canvas engineers built them.

The problem

Drupal is one of the most powerful content management systems around, and it has a long reputation for being hard to use. Editing content was clunky and building sites was worse. That hurt the people using it, and it hurt Drupal as a platform.

Canvas had to make building and editing pages approachable without losing the power and flexibility that Drupal's users rely on.

How I got involved

I was brought in as a front-end engineer. The project was moving quickly, and nobody had pulled the design work into a system yet, which made the UI hard to build consistently. So I started doing it: auditing the existing designs, consolidating them into components and organising everything into an atomic design system.

That work is how I was offered the Senior Product Designer role at Acquia. From there I led the design of Canvas: a redesign of the entire UI, a rethink of the product shell and how every feature flows, new features, and a lot of time with engineers on how things should behave.

Building the design system

The codebase used Radix as its component library, so the design system had to reflect Radix exactly. I started from Radix's own design file for the basic elements, then removed every option we weren't going to use. With those gone, a designer on the team couldn't make an incorrect UI any more.

Over time I redesigned many of the components to suit Canvas users better, and wrote rules for how to use each one. There are usage guides for icons, colour and type too, so every part of Canvas feels like the same product.

One of the redesigned fields: file upload, empty and with files added.

The same fields in use, editing an article.

Form fields, each documented with its states and a line on when to use it.

Structuring the shell

The shell is the frame around everything in Canvas: panels, top bar, and how they respond to what you're doing. It had to work as the site building and editing interface today, and leave room for features we hadn't designed yet.

I kept it as small as possible, expanding only when a task needs more. Adding something to a page or editing what's already there brings up options for that part of the UI. A lot of the work was solving problems we didn't have yet, so new features would slot in without a redesign.

Select something on the page and its settings open beside it. Nothing else changes until you need it.

Every panel behaves the same way. It never takes you away from the page at the top level. It only navigates once you've picked something.

The top bar lets you exit Canvas, switch the content you're previewing, and run page or global actions in one click.

Designing new features

I redesigned every existing feature and designed the new ones from scratch, from the templates panel to the content list and the code editor. Each one started as a detailed user flow. Canvas workflows can get complicated, and the flows let engineers see how I'd turned them into something simple before anyone built anything.

Over the year, three junior designers joined the team under me. Each took on individual features, such as asymmetric translations, and I reviewed what they designed to make sure it fitted the rest of Canvas and made sense to the people using it.

Adding a content template, screen by screen.

Results

Canvas 1.0 was released on 4 December 2025. Three and a half months later it was on over 4,500 sites. In drupal.org's usage count for the week of 20 September 2026 it was on 13,604, and it hasn't dropped below 7,000 in any week since mid-June.

Sites using Drupal Canvas each week

05k10k15kSep 2025Dec 2025Mar 2026Jun 2026Sep 20261.0 released13,604
From drupal.org's usage statistics, as of 1 October 2026. Each point is one week.
Sites using Drupal Canvas each week
Week startingSites
31 August 202593
7 September 2025285
14 September 2025267
21 September 2025345
28 September 2025351
5 October 2025541
12 October 2025710
19 October 2025768
26 October 2025729
2 November 2025657
9 November 2025780
16 November 20251,006
23 November 2025742
30 November 20251,110
7 December 20251,172
14 December 20251,341
21 December 2025783
28 December 2025753
4 January 20261,238
11 January 20261,495
18 January 20261,895
25 January 20263,004
1 February 20263,319
8 February 20263,253
15 February 20263,503
22 February 20263,688
8 March 20264,416
15 March 20264,543
22 March 20264,770
29 March 20264,283
5 April 20264,174
12 April 20264,780
19 April 20265,055
26 April 20264,478
3 May 20264,328
10 May 20264,428
17 May 20265,503
24 May 20264,846
31 May 20265,748
7 June 20266,981
14 June 20268,130
21 June 20267,677
28 June 20269,213
5 July 202610,515
12 July 20268,549
19 July 20268,989
26 July 20267,573
2 August 20267,010
9 August 20268,211
16 August 20267,571
23 August 20268,836
30 August 20267,374
6 September 20268,315
13 September 20269,674
20 September 202613,604