About this demo
What's here, what's pretend, and what's next
Kindly lets people start a campaign with a video, share it everywhere, and let the people who care give, leave a video message, or raise money with their own page. This build runs on made-up people and made-up money, so you can try every part of it.
Things to try, in order
Browse the feed
Five kinds of card, told apart by their label, shape and layout, never by colour. Only causes and fundraisers carry a Give button. Open the feed
Open a campaign
Cover video, the story, updates from the organizer, video messages from supporters, comments, and the progress figure.
Sign in as someone
Pick a made-up person: an organizer, someone running a fundraiser, someone who hasn't set up payouts yet, or a brand-new visitor. Choose who to be
Give
Choose an amount, confirm on the test checkout, and watch the total move. Completion runs twice on purpose, the way the real webhook and success page both would, and the total only moves once.
Leave a video message
Pick a stock clip to stand in for your upload and describe what happens in it. It processes for a few seconds, then appears as a moment of kindness.
Start a fundraiser
Run your own page for someone else's campaign. Gifts count toward both.
Start a campaign
As a new visitor: write it, choose a category, set a goal, set up payouts (instant here), add a cover video and post an update.
Share it
Connect social accounts and post to them in one go. In the demo the accounts are simulated and nothing leaves the site. The post is recorded on your dashboard.
Check the details
Switch to dark mode with the button in the top bar, and try it at phone width.
What's real and what's simulated
| Part | In the real product | In this demo |
|---|---|---|
| Sign-in | Zitadel (OIDC) | Persona picker; no password |
| Payments | Stripe Checkout + Connect Express | Test checkout; no card, nothing charged; payouts set up instantly |
| Video | Mux upload, processing and playback | Stock clips, with a few seconds of pretend processing |
| Social posting | Zernio, one profile per person | Accounts simulated; posts recorded, never sent |
| Data | Cloudflare D1 | Real database, reset to the made-up data every night |
Built plainly, not yet designed
The design system covers the feed and its cards. These screens use its colours, type and components, but were assembled without a design pass and should get one:
- Give and checkout: amount choice, confirmation, receipt, recurring giving
- Campaign and fundraiser detail pages
- The campaign composer (the design system has the inputs, not the flow)
- Comments and replies, reporting and moderation
- Sign-in and onboarding
- The organizer's manage page and the dashboard
Decisions to make next
- Verification: the badges are shown, but nobody verifies anything yet. Who can verify, and on what evidence?
- Moderation of video messages and comments. Moments are the easiest thing to post and the easiest to abuse.
- Does Kindly take a platform fee, and where is it disclosed to the donor?
- Campaign end dates. There are none, so nothing says how many days are left.
- Editing a campaign after it launches: title, story and goal.
- Receipts and notifications by email, for donors and organizers.
- Refunds, and what they do to the totals.
- Currencies other than US dollars.
- Save and collections: designed, but not built, because nothing in the product uses them yet.
- Real photography, avatars and a logo: every image here is a stock stand-in.
- Supporters or gifts? We count gifts, because one person giving twice isn't two supporters. Counting people needs donor accounts or email matching.
- British or American English. The design system says “organisation” and the money is in dollars.
Engineering before a real launch
- Connect and test the real services: Zitadel, Stripe Connect in test mode, Mux and Zernio
- Tests for giving (counting each gift exactly once) and for who can change what
- Rate limits on uploads, comments and sharing
- Pagination for the feed, comments and gifts
- CI: type check, lint, contrast check and build