We Built a Complete Charity Fundraising Engine from Scratch
Eternal Virtue needed more than a donate button. We built them a full fundraising platform: meal sponsorships with date booking, multi-campaign donations, recurring subscriptions, and personalised PDF certificates — all powered by Stripe.
The Challenge
The Client: Eternal Virtue — a charity organisation running meal sponsorship programs and multi-campaign fundraising (Qur'an sponsorship, plant-a-tree, soup kitchen, and general donations). Their public website was on Wix, but they needed serious fundraising infrastructure underneath it.
The Problem: Off-the-shelf donation plugins couldn't handle their model. They needed donors to pick a specific shelter, choose a meal, select a date, and pay — with booked slots locked so two donors couldn't claim the same meal. They needed recurring sponsorships, custom campaign creation, and personalised certificates for every donation. No existing plugin did all of this.
Pain Point #1: Complex Booking Logic
Meal sponsorships aren't simple donations — they're date-specific bookings tied to physical shelters with per-meal pricing. Double-booking a slot would be a trust-destroying disaster.
Pain Point #2: No Donor Recognition System
Donors give more when they're recognised. The charity had no automated way to generate personalised certificates — each one was manually created, creating bottlenecks during high-volume campaigns.
Pain Point #3: Rigid Campaign Structure
Every new fundraising campaign required developer help. The team couldn't launch a time-sensitive campaign on their own — they were bottlenecked on technical resources.
Pain Point #4: Wix + WordPress Integration
The public site lived on Wix, but the fundraising engine needed to be WordPress. Making these two platforms work together seamlessly — inside an iframe, across caching layers — was a significant engineering challenge.
The Solution
A large custom WordPress plugin — ~55 PHP files, 31,000 lines of code — that functions as two complete products sharing one engine. Vendored Stripe SDK, mPDF, and TCPDF for payment processing and document generation.
Product 1: Meal Sponsorship ("Shelter Connect")
Shelter → Meal → Date → Pay Flow
Donors browse shelters with per-meal pricing, pick a meal type, select an available date, enter their address, and pay via Stripe's inline PaymentIntent (no redirect — the donor never leaves the page). Booked slots are locked per shelter + meal + date combination, preventing double-booking. Optional recurring sponsorship available.
Personalised PDF Certificates
Every donation triggers an automated certificate pipeline: SVG template → TCPDF text overlay with donor name and details → PDF generation → email delivery as attachment. Each certificate gets a public share page (/certificate/[id]) with Open Graph images for social sharing — turning donors into advocates.
Product 2: Multi-Campaign Donations
Drag-and-Drop Campaign Builder
The charity team can now create custom fundraising campaigns themselves — no developer needed. The admin builder handles campaign pages, pricing tiers, progress trackers, and donation flows. Pre-built campaigns include Qur'an sponsorship, plant-a-tree, soup kitchen, and general donations.
Stripe Checkout + Recurring Subscriptions
One-time donations use Stripe Checkout (redirect flow). Recurring donations use Stripe subscriptions. A 2,800-line signature-verified webhook handles fulfilment: logging donations, generating certificates, emailing donors and admins, and managing subscription lifecycle events.
Self-Service Subscription Management
Donors can cancel their own recurring donations via email OTP verification — no need to contact the charity. Reduces support burden and builds donor trust through transparency.
Comprehensive Admin Dashboard
12+ admin pages: dashboard analytics, shelter management, booking management with CSV/Excel import/export, form builder, email template editor, campaign reporting, per-campaign progress trackers, and 7-tab settings panel. Daily donation summaries with CSV attachments emailed automatically.
The Results
Engineering Highlights
- Survives hostile hosting: engineered to work behind 15+ cache plugins and inside a Wix iframe
- Signature-verified webhooks: every Stripe event cryptographically validated before fulfilment
- Automated donor journey: pay → certificate → email → share page, zero manual steps
- Self-service everything: campaign builder, subscription cancellation, certificate re-downloads
Building Something Ambitious?
From charity platforms to business systems — we build what off-the-shelf can't.
Start Your Project