← all notes

Open Design opened my eyes

may 2026 · 3 minute read · design-systems, automation

The brand was the only part of this I owned, so it was the only part worth automating.

I built a Canva bot in March to fulfil a client's request. It never started a design without the client’s brand kit, and it refused to mix two clients’ kits in one file. Every dynamic layer carried a fallback value, in case the real one never arrived. If a brief was vague, the rule was to ask rather than guess.

Despite the level of attention it required to craft the skills to use it, I used it a total of three times and ended up doing the design by hand in Canva for the client.

The same thing happened twice more that month: I researched four routes into Figma and judged its own official server the clear winner. I never adopted it. A week later I built a full skill for Google’s Stitch, down to the workflows and the reference documents, and dropped them because tests for both were arduous.

Affinity Designer never got that far, because there was nothing to automate. Serif has never shipped a scripting interface for it: no plugin kit, no command-line export. The nearest thing to a workaround drove the software from outside, clicking the menus the way a person would. It broke whenever a menu moved and had stability issues. I wrote a five-phase plan and built none of it.

For a while I read those as four unrelated disappointments but they were one. Every attempt aimed at a design tool, and a design tool bottoms out at an interface somebody else owns. A server they can version, a menu they can move, or in Affinity’s case nothing at all. The effort goes into learning a surface that can be taken away, and none of it is yours to keep (Adobe XD for example).

The Canva bot was well built, and that never saved it. It answered how to drive Canva, when the question that mattered was where the brand lives.

Claude Design launched in April, and it was genuinely good. It reads a codebase, builds a design system from it, and generates prototypes and decks from a prompt on a canvas. I still use it for exploration, where the loop is a conversation rather than one shot. It also lives on claude.ai, which is the same problem at closer distance.

What I adopted instead is smaller and far less impressive. Each client has a plain folder on my disk holding their tokens, fonts, logos and rules. A local, MIT-licensed tool called Open Design (which released a few days after Claude Code) reads that folder and drives the agent I already had running. Its first real job was a product brochure for Ventura, which it wireframed successfully from the brief, allowing me to finish by hand in InDesign. It fit perfectly inside the loop I work in.

The difference is ownership, not cleverness. Once a brand is a portable file rather than a state inside an application, the tool at the far end stops mattering. Open Design reads that folder, Claude Design exports to it, a Nuxt project imports from it, InDesign finishes from it. The power of open source never fails to astound me and before I shoot to integrate third party platforms - I endeavour to look at open source first.