Go BackKwanda Decks

The problem

Decks were the bottleneck

Kwanda pitches to funders, businesses and members. Same organisation, same numbers, three different arguments. Every deck was built by hand, took about a week, and drifted from the last one immediately.

A slide editor has no concept of a system. Consistency is maintained by memory, a number is a text box rather than a reference, and nothing stops a slide going out looking almost right.

Image

A deck in the browser

The idea

A design system an agent can build with

I wanted to generate on-brand decks programmatically. That is a design system problem before it is an AI problem. An agent can only assemble a deck quickly if every layout decision has already been made, named and made safe to reuse.

So a deck became a text file: a title, then a sequence of slides drawn from twenty-two templates. Writing one is closer to writing the argument than making slides, because the template carries the layout.

Now I describe the argument to Claude and it assembles the deck. A week of building slides became an afternoon of deciding what to say.

Image

A deck’s source next to the slide it renders

Image

The template set

The system

Twenty-two templates, one grid, no loose decisions

The templates cover the shapes an argument takes: a statement, a stat, a chart, a quote, a comparison, a map of where the money went. Choosing from a set is what stops a fourteenth way to show a percentage appearing.

Underneath, everything sits on one grid at one type scale, in colours named for the job they do rather than what they look like. No template names a colour directly, which is why a deck flips between light and dark and both readings look deliberate.

Every decision that lives in the system is a decision the agent does not have to make, and cannot make badly.

Image

Grid overlay on a live slide

Enforcement

The agent cannot see, so the build checks for it

An agent cannot glance at a slide and notice the copy has overflowed or a caption sits off the grid. Generating slides quickly is only useful if bad ones cannot ship.

So every judgement a designer makes by eye became a check. Content running off the stage or under the footer fails the build and names the slide. Geometry rules that used to live in a comment now run against every slide.

The project also keeps a running file of every rule that has been broken and what to do instead, written at the moment of the mistake. That file is the real design system documentation: it describes how each rule actually gets broken, which is what the next author needs, human or otherwise.

The numbers

Figures are references, not typed numbers

Slides do not contain numbers. A slide asks for “deployed” or “villagers” by name and the value resolves from Kwanda’s own data, with member counts and income computed live and funding totals read off the project ledger.

A deck presenting a figure more than forty-five days old refuses to build. Instead of a stale number surviving until someone spots it in a meeting, the deck will not ship.

Every figure records where it came from. Writing those down is how we found two arithmetic faults in an upstream data source that had been wrong for months.

Image

A bound figure on a slide

Sending it

One deck, and the link decides how it arrives

Because a deck is a page rather than an attachment, the link carries the customisation. Money re-denominates for the reader: dollars in New York, euros in Berlin, converted at live rates. Pin it and a link to a US funder opens already speaking dollars.

The same applies to light or dark, to motion for a screen-shared link, and to opening on a specific slide. These are not separate versions in a folder. There is one deck.

The download is a real PDF built alongside it, matching whichever rendering is on screen. On a phone the deck stops being a stage and becomes a document you scroll.

Image

The same slide in pounds and in dollars

Image

The same deck light and dark

Where it landed

Nine decks, one system

Nine decks now share one template set, one grid and one source of numbers. New ones get generated rather than built, and they are on-brand because being off-brand is not an available state.

The lesson I would carry anywhere is that a design system is worth what it is worth when someone is rushing. Systemise the decisions, then enforce them in the build, and speed stops costing you consistency.