Skip to main content
Projects/Case Study
Nonprofit Tech • Stripe Payments • Custom Platform

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.

Stripe payments
Auto certificates
2 products in 1

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

2-in-1
Products, one codebase
0
Developer needed for new campaigns
31K
Lines of fundraising tech

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