← Back
Charity / Nonprofit · Aug 2024 to Feb 2025
Charity Donation Platform
A Canadian charity's donation and fundraising experience, rebuilt as a custom platform they fully own.
Custom-built
Owned donation platform
Stripe
One-time + recurring giving
Automated
Receipts, emails, exports
Context
A CRA-registered Canadian humanitarian charity ran its donations on off-the-shelf third-party forms, with campaign setup, receipting, and reconciliation handled manually. They wanted a donation experience they fully own.
Problem
Rented donation forms limited the donor experience and left staff doing manual receipting and back-office work for every campaign and appeal.
My role
Built the custom donation platform end to end, and rebuilt the charity's public website.
Approach
- Built a custom donation platform (Next.js, TypeScript, Prisma, MySQL, Stripe) with guided multi-step seasonal giving flows (Ramadan, Dhul-Hijjah), one-time and recurring donations, and campaign goals with social sharing.
- Automated the back office: PDF tax receipts, transactional donor emails, and queued jobs (BullMQ, Redis), plus an admin suite with campaign categories, creation wizards, dashboards, and exports.
- Supported faith-based giving (Zakat with a calculator, Sadaqah) alongside standard campaigns, with self-serve setup so staff launch appeals without a developer.
- Developed the platform spec-first with the BMAD method and an agentic workflow, covered by Playwright and Vitest.
- Also rebuilt the charity's WordPress site on a fully custom, self-serve architecture (donation-first UX, EN/FR multilingual) that a non-technical team manages independently.
Tech stack
Next.jsTypeScriptPrismaMySQLStripeBullMQ / RedisWordPress