How We Built Pledge Now, Pay Later: Architecture, Decisions & Lessons
A technical deep-dive into building PledgeNow (Pledge Now, Pay Later) — from architecture decisions to AI integration, WhatsApp automation, and deploying on a single server.
PledgeNow started as a simple idea: let charity event attendees pledge donations and pay later. What we built is a full autonomous donation infrastructure — and this is how we did it.
The Problem
At charity fundraising events — galas, iftars, dinners — there's a moment of peak generosity. The speaker finishes, the video plays, people are moved to give. But:
- Most people don't carry cash
- Card machines are slow and create queues
- The moment of inspiration passes
- Charities lose 40-60% of pledged donations to the Pledge Gap
We needed a system that captures the pledge in the moment and then automates everything afterwards — reminders, payments, Gift Aid, reporting.
Architecture Overview
Frontend (Next.js 14) Donor-facing pledge flow
| Campaign pages, QR codes
v
API Routes (Next.js) Business logic, auth
| Pledge creation, payment links
v
Postgres 16 Pledges, orgs, campaigns, events
| Gift Aid declarations, payment status
v
Stripe Payment processing
| Payment intents, webhooks
v
AI Steward Natural language interface
| 13 tools, contextual responses
v
WhatsApp (WAHA) Donor comms, reminders
Nudge sequences, status updatesKey Technology Decisions
Next.js 14 (App Router)
We chose Next.js for the full-stack capability — server components, API routes, and static generation in one framework. The App Router's server actions handle form submissions without client-side JavaScript for the critical pledge flow.
Why not a SPA + separate API? For a tool used at events, we need fast initial loads and progressive enhancement. Server-rendered HTML works when JavaScript fails. SPAs don't.
Postgres (not MySQL, not MongoDB)
Relational data model is essential for financial data. Pledges have relationships to donors, campaigns, organisations, and payments. Postgres gives us:
- ACID transactions (critical for payment processing)
- JSON columns for flexible metadata
- Prisma ORM for type-safe queries
- Full-text search for the AI steward
Stripe (not GoCardless, not PayPal)
Stripe gives us Payment Links, Payment Intents, and webhooks that let us create a seamless pay-later flow. Donor pledges at an event, receives a payment link via WhatsApp/email, pays when ready.
AI Steward (not a chatbot)
The AI Steward is an internal tool for charity administrators. It answers questions like "How much did we raise at last Friday's dinner?" or "Send a nudge to donors who haven't paid from the gala."
Built on OpenAI's GPT-4.1-nano (fast, cheap, sufficient) with 13 custom tools:
- Query pledges by campaign, date, status
- Generate stats grids and visual cards
- Draft WhatsApp nudge messages
- Check payment status across donors
- Create campaign summaries
The steward never says "I'm an AI." It speaks as the charity's operations assistant.
Infrastructure: One Server, Six Products
Everything runs on a single dedicated server (64GB RAM, 8 cores) using:
- Incus — lightweight containers (LXD successor)
- Docker — application containers within each Incus container
- Traefik — reverse proxy, automatic SSL, routing
- Dokploy — deployment management
Total monthly cost: ~£40. We run PledgeNow, QuikCue site, JustVitamin, two Ghost blogs, Gitea, and multiple other services on this single box.
Why not AWS/Vercel/Railway? Control and cost. At our scale, managed cloud would cost 10-20x more and give us less flexibility. We can deploy in seconds, debug directly, and own our infrastructure.
Lessons Learned
1. The pledge-to-payment conversion is everything
A pledge is worthless until it converts to a payment. Our entire UX and automation is optimised for this single metric. Automated reminders at 24h, 72h, and 7 days post-pledge lifted conversion from ~55% to ~80%.
2. WhatsApp beats email for donor communications
Open rates: WhatsApp 90%+, Email 15-25%. For time-sensitive payment reminders, WhatsApp is the only channel that works.
3. Charities need less software, not more
Every feature we didn't build was a good decision. Charities are overwhelmed by tools. PledgeNow does one thing — pledge collection — and does it without requiring any technical knowledge to operate.
4. Self-hosting is a superpower
When something breaks at 2am before a charity's biggest event, we SSH in and fix it in minutes. No support tickets, no waiting for a provider's SLA. This speed has saved multiple events.
What's Next
We're building toward a fully autonomous charity operations stack — where donations flow from event to bank account to Gift Aid claim to thank-you message without human intervention. PledgeNow is the first piece.
If you're building for the charity sector and want to discuss architecture, infrastructure, or approach — reach out. We're always happy to talk shop.
Need Custom Infrastructure for Your Charity?
QuikCue builds autonomous systems for charities and nonprofits. From donor databases to payment infrastructure to AI-powered operations. No decks. Just deployed systems.
We build autonomous systems for charities.
Pledge collection, payment processing, WhatsApp automation, analytics dashboards, and the infrastructure that lets a small team do the work of fifty. Free tools. Fractional technology leadership. No fluff.
Get the next deep dive in your inbox.
No spam. No weekly roundups. Just the occasional piece when we have something worth saying.
Related articles
Self-Hosted Deployment Architecture: Our Production Stack
How QuikCue runs 15+ production services on self-hosted infrastructure. Architecture decisions, tooling, costs, and lessons learned.
Autonomous Communications: How AI Runs Our Charity Comms
How QuikCue built autonomous communication systems for charities. AI-powered donor messaging, automated reports, and zero-admin operations.
CharityRight Case Study: How We Built a Charity's Entire Tech Stack
How QuikCue built CharityRight's entire technology stack: website, donation checkout, automated comms, analytics, and operational infrastructure.