National charity
A campaign every six weeks, a donations provider that wasn't moving, and a comms team tired of paying for a microsite each time they had something to say.

The brand studio had given the charity a system with range: quiet enough for the hard subjects and loud enough for a fundraising push. The problem was underneath. A comms team of four ships a campaign roughly every six weeks, and had a history of doing it by commissioning a microsite each time, with its own domain, its own analytics, and its own invoice.
Where it started
The audit came first. Three years of campaigns turned out to mean fourteen microsites across nine domains, most still online, none on brand, and none sharing a donor journey. The decision that shaped the build was made in that first meeting: campaigns stop being sites and become pages, built from the same block kit as everything else, with enough range per campaign that the comms team never feels the constraint.
The build
The campaign kit is the block library with a wider range of weights: a stat block that refuses a number without a source field, a story block for first-person accounts with consent tracked on the entry, a timeline, and a call-to-action carrying suggested amounts. Each campaign sets a palette from a small approved range, so an emergency appeal and a policy campaign can sit a week apart without looking like the same shout.
Donations are a handoff. The give button deep-links into the charity's existing provider with the campaign code attached, so attribution survives the journey and no card number ever crosses the site. The finance team keeps the reconciliation they trust, and the consent-banner conversation stayed short, because the site holds nothing about a donor.
The impact report, previously a 60-page PDF with a print run, went web-first: the same blocks, an anchor nav, and numbers held in fields so the year-on-year comparisons are assembled rather than retyped. A print stylesheet produces the paper version for the trustees, from the same entry, so nobody maintains two reports.
Built to be used at speed
A campaign's first hours are its whole life, so the kit was tested at campaign tempo. In week five the comms team built a rehearsal campaign from a real brief, from a standing start, against the clock. It took them ninety minutes, produced four field-instruction rewrites and one missing block, and replaced the training session that had been pencilled in for launch week.
The audience skews toward older phones on patchy data, which set the performance budget. The heaviest campaign page ships under a megabyte with imagery in, and the story blocks lazy-load everything below the first viewport. The accessibility pass treated the donate journey as the critical path and walked it with a keyboard and a screen reader before any of the prettier pages got looked at.
The theming that makes campaigns quick is data rather than CSS. A campaign entry sets its palette and every block inside follows, so nobody touches a stylesheet to launch an appeal, and a new block designed by the studio has twice gone from Figma to a live campaign in the same week, carried by project config. The stat blocks got the whole motion budget. They count up once as they come into view, and with reduced motion on, or JavaScript off, they simply state the number. Nothing on the donate path moves at all.
After launch
Eight campaigns have shipped since launch, all built in-house, none with a new domain. The fourteen old microsites now redirect into the main site, which pulled three years of scattered links back together, and the impact report drew attention in the sector that the PDF never had, partly because people could finally link to a chapter. The studio designs the big moments, the comms team ships the rest, and we stay out of the credits.
We used to buy a website every time we had something to say. Now we just say it.