A fund that belongs to its members
Kwanda is a development fund run by the African diaspora, with members in 45 countries. They give from $5 a month, vote on which projects get funded, and can see where all of the money goes.
It started with a simple problem. Many people want to give back home, but they don't trust charities to spend the money well. So the product had two jobs: make people feel they belong to something, and prove where the money goes.
Faces, not logos
Most charities lead with a logo. Kwanda leads with people. Real members' faces drift across the website, the decks and the posters. The members are the fund, so they should be the first thing you see.

Money in the open
Trust needs proof, not promises. So Kwanda has a public ledger: a live record of the money coming in and going out, pulled straight from the bank through Xero. Money in is green, money out is red, and nothing is summarised away.
Numbers you can take in
Showing everything at once can be as confusing as showing nothing. So each number gets its own moment and a few plain words, never a wall of charts. Every figure gets a component that suits it: a card, a ledger row, a list. The figures come from live data, so the website, the decks and the reports always agree.
Villagers
1,808





Villagers by country
- United Kingdom1,187
- United States391
- Canada41
- Germany37
- Netherlands32
- Australia18
Top six of 47 countries, August 2026
Your contribution
£10 / mo
Change itThe quarterly report
Most impact reports are a PDF that nobody finishes. Kwanda's quarterly report is built to be an experience instead: a letter from the founder, the money in, where it went and the people it reached, with numbers that count up and charts that build as you scroll.
A well-built design system is what makes room for moments like this. When the basics take care of themselves, there is time to go further in how the information is shown.
One tight system
As Kwanda grew, the same things were being made again and again: decks, pages and posters. So the brand was written down as code: a 12-column grid, a type scale, and colours named by their job. No template is allowed to name a colour, and every number comes from a live figure.
Rules that strict mean the work can be done by AI agents, and by anyone managing those agents and the brand. A deck, a page or a poster can be made by whoever needs it, and the result still looks like Kwanda.
<Chart
ground="black"
meta="Where the money goes"
label="60% of every contribution reaches a project"
data={[
{ label: 'Projects, 60%', value: 60, accent: true },
{ label: 'Operations, 40%', value: 40 },
]}
/>
<BarList
ground="black"
section="Where our members live"
title="Villagers by country."
items={[
{ label: 'United Kingdom', value: 1187, shown: '62%' },
{ label: 'United States', value: 391, shown: '21%' },
{ label: 'Canada', value: 41, shown: '2.2%' },
]}
/>
Decks in minutes
The deck system takes a request in plain words. An agent picks from 22 ready-made templates, pulls in the right data and builds the deck. Figures come from Kwanda's live API, so a number on a slide always matches the website.
A deck for a partner, a board meeting or a funder can be written, checked and sent in minutes. The build refuses to finish if a slide overflows or a figure is more than 45 days old.
Pages in minutes
Pages are built from a shared library of components, so a new page is mostly assembly. A partner event page went from first commit to finished in eight minutes. The Q3 report went from a draft to real figures in 16.




Social posts and print from one system
Social posts, stories, posters and table cards render from the same system. A script checks that text stays inside safe areas, that photos aren't stretched and that every QR code scans.



How it all connects
Kwanda needed to run without a large team. So I built a web of automations that keeps the most important parts running by themselves. Some start the moment something happens, like a new member joining or a payment failing. Others run on a clock, every morning or every week.
Every tool has one job. Stripe takes payments, Firestore holds members and figures, Xero feeds the ledger, Storyblok runs the project stories, Notion runs operations, and Slack tells the team what just happened.
Money
- StripePayments
- XeroBank feed
- WisePayouts
Content and data
- FirestoreMembers, figures
- StoryblokProject stories
- NotionOperations
People
- CircleCommunity
- LoopsEmail
- SlackAlerts
Running it
- NetlifyHosting, schedules
- n8nNotion buttons
- ClaudeAgents
A member joins
- Stripe takes the payment
- Firestore saves the member
- Circle sends an invite
- Loops sends the welcome
Money moves
- The bank records it
- Xero pulls it in
- The public ledger shows it
A payment fails
- Stripe flags it
- Slack alerts the team
The system, counted
- Pages60
- API endpoints87
- Design system components118
- Agent skills65
- Scheduled jobs16
What if?
Kwanda's two-minute brand ad was originally narrated by me. It was cut by hand, then rebuilt frame by frame in code with Remotion, so it could change as Kwanda changes.
The voice was then recreated with ElevenLabs, so the narration can be rewritten and re-voiced in code too. The same ad now re-renders on demand: four sizes, at two minutes, 60 or 30 seconds, in pounds or dollars, with or without captions, and with different voiceovers. Its cards come from the same system as the decks.










