- {[
- { title: "Pledges on napkins", desc: "Someone raises their hand at the gala. You scribble it down. A week later — who was that again?" },
- { title: "Awkward chasing", desc: "You don't want to be the person who calls donors asking for money. So you don't. And the pledge dies." },
- { title: "No visibility", desc: "Your committee asks how much you've actually collected. You don't know. Nobody knows." },
- ].map((p) => (
-
-
{p.title}
-
{p.desc}
+
+ {HERO_STATS.map((s) => (
+
+
{s.stat}
+
{s.label}
))}
- {/* ── How it works — with images ── */}
-
-
-
-
How it works for your charity
-
- {[
- { n: "01", title: "Create a campaign", desc: "\"Ramadan 2026\", \"Mosque Extension Fund\". Set a goal, toggle Zakat eligibility. 30 seconds." },
- { n: "02", title: "Generate pledge links", desc: "One per table, volunteer, or WhatsApp group. Each tracks its own conversions." },
- { n: "03", title: "Donors pledge in 60 seconds", desc: "Amount, Gift Aid (+25% from HMRC), pay now or later. No app download." },
- { n: "04", title: "WhatsApp does the chasing", desc: "Automated reminders with your bank details. They reply PAID when done." },
- { n: "05", title: "You see every penny", desc: "Pipeline by status, top sources, needs-attention list. Export for Gift Aid claims." },
- ].map((s) => (
-
-
{s.n}
-
-
{s.title}
-
{s.desc}
-
-
- ))}
-
-
-
-
-
-
-
-
-
- {/* ── Features ── */}
-
+ {/* ━━ THE PROBLEM ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Photo strip + 3 pain-point cards in gap-px grid.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
-
Built for charity compliance
-
+
+
+ Sound familiar?
+
+
+
+ The dinner went perfectly.
+
+
+ The spreadsheet didn't.
+
+
+ {/* Photo strip */}
+
+
+
+
+
+
+
+
+
+ {/* Pain-point cards — gap-px grid */}
+
{[
- { title: "Gift Aid with HMRC declaration", desc: "Name, home address, postcode, exact HMRC model wording. One-click CSV for claiming." },
- { title: "Zakat tracking", desc: "Per-campaign toggle. Donors flag their pledge. Zakat money never mixes with general funds." },
- { title: "WhatsApp reminders", desc: "4-step automated sequence. Donors reply PAID, STATUS, or HELP. No awkward phone calls." },
- { title: "Flexible payment scheduling", desc: "Pay now, pick a date, or 2–12 monthly instalments. Each tracked and reminded separately." },
- { title: "GDPR-compliant consent", desc: "Separate opt-ins for email and WhatsApp. Audit trail with timestamps, IP, exact text shown." },
- { title: "CRM and HMRC export", desc: "CSV with donor details, Gift Aid declarations, consent records, payment status, Zakat flags." },
- ].map((f) => (
-
-
{f.title}
-
{f.desc}
+ {
+ title: "Pledges on napkins",
+ desc: "Someone raises their hand at the gala. You scribble it down. A week later — who was that again?",
+ accent: "No record, no recovery",
+ },
+ {
+ title: "Awkward chasing",
+ desc: "You don\u2019t want to be the person who calls donors asking for money. So you don\u2019t. And the pledge dies.",
+ accent: "Good intentions, zero follow-up",
+ },
+ {
+ title: "No visibility",
+ desc: "Your committee asks how much you\u2019ve actually collected. You don\u2019t know. Nobody knows.",
+ accent: "Trustees deserve better",
+ },
+ ].map((p) => (
+
+
{p.title}
+
{p.desc}
+
{p.accent}
))}
-
+ {/* ━━ HOW IT WORKS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Alternating image/text rows — same pattern as homepage.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+
+ How it works
+
+
+
+ Five steps.
+
+
+ Zero pledges lost.
+
+
+
+
+ {[
+ {
+ n: "01",
+ title: "Create a campaign",
+ desc: "\u201CRamadan 2026\u201D, \u201CMosque Extension Fund.\u201D Set a goal, toggle Zakat eligibility. 30 seconds.",
+ detail: "Takes 30 seconds",
+ image: "/images/brand/product-setup-01-creating-link.jpg",
+ alt: "Charity organiser creating a pledge campaign on a laptop",
+ },
+ {
+ n: "02",
+ title: "Generate pledge links",
+ desc: "One per table, volunteer, or WhatsApp group. Print QR codes, text links, or share in group chats. Each tracks its own conversions.",
+ detail: "One link per source",
+ image: "/images/brand/product-setup-05-briefing-volunteers.jpg",
+ alt: "Event organiser briefing volunteers with QR code cards before a fundraising dinner",
+ },
+ {
+ n: "03",
+ title: "Donors pledge in 60 seconds",
+ desc: "Amount, Gift Aid declaration, Zakat flag, payment schedule. Three screens on their phone. No app download. No account creation.",
+ detail: "Works on any phone",
+ image: "/images/brand/product-pledge-01-scanning-table.jpg",
+ alt: "Guest at a charity dinner scanning a QR code on the table with their phone",
+ },
+ {
+ n: "04",
+ title: "WhatsApp does the chasing",
+ desc: "Four-step automated sequence with your bank details attached. They pay when ready. You never make an awkward phone call.",
+ detail: "Stops when they pay",
+ image: "/images/brand/digital-03-notification-smile.jpg",
+ alt: "Young man smiling at his phone — the moment a gentle WhatsApp reminder lands",
+ },
+ {
+ n: "05",
+ title: "You see every penny",
+ desc: "Upload your bank statement. We match payments to pledges automatically. Pipeline by status, top sources, needs-attention list. One-click Gift Aid export.",
+ detail: "Live dashboard",
+ image: "/images/brand/product-dashboard-01-morning-after.jpg",
+ alt: "Charity team reviewing the pledge dashboard the morning after a fundraising event",
+ },
+ ].map((s, i) => (
+
+
+
+
+
+
+ Step {s.n}
+
+
+ {s.title}
+
+
+ {s.desc}
+
+
+ {s.detail}
+
+
+
+ ))}
+
+
+
+
+ Start free — takes 2 minutes
+
+
+ No card required. Works with your existing bank account.
+
+
+
+
+
+ {/* ━━ COMPLIANCE & FEATURES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Ledger-style rows — same pattern as homepage compliance.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+ Compliance & features
+
+
+
+ Built for UK charity law.
+
+
+ Not Silicon Valley.
+
+
+ Every feature is designed around HMRC requirements, GDPR, and the reality of how UK charities and mosques actually operate.
+
+
+
+ {[
+ {
+ code: "HMRC",
+ title: "Gift Aid declarations",
+ desc: "Exact HMRC model wording. Full name, home address, postcode, timestamped consent. One-click CSV for claiming +25% on every eligible pledge.",
+ result: "+25% on every eligible pledge",
+ },
+ {
+ code: "Zakat",
+ title: "Zakat fund separation",
+ desc: "Per-campaign toggle. Donors tick one checkbox. Zakat pledges tracked in their own column across every report and export. Never mixed with general funds.",
+ result: "Separate ledger, always",
+ },
+ {
+ code: "GDPR",
+ title: "Data consent & audit trail",
+ desc: "Separate opt-in per channel. Never pre-ticked. Every consent recorded with timestamp, IP address, and the exact text the donor saw.",
+ result: "ICO audit-ready",
+ },
+ {
+ code: "WA",
+ title: "Automated reminders",
+ desc: "Four-step sequence with your bank details attached. Donors reply PAID, STATUS, or HELP. Reply STOP cancels instantly. No awkward phone calls.",
+ result: "Zero manual chasing",
+ },
+ {
+ code: "Flex",
+ title: "Payment scheduling",
+ desc: "Pay now, pick a date, or 2\u201312 monthly instalments. Each instalment tracked and reminded separately. Donors pay when they\u2019re ready.",
+ result: "More pledges fulfilled",
+ },
+ {
+ code: "Export",
+ title: "CRM & HMRC export",
+ desc: "CSV with donor details, Gift Aid declarations, consent records, payment status, and Zakat flags. One click, every field, every time.",
+ result: "Trustee-ready reporting",
+ },
+ ].map((c) => (
+
+
+
{c.code}
+
+
+
{c.title}
+
{c.desc}
+
{c.result}
+
+
+ ))}
+
+
+
+ Every pledge. Every field. Every time.
+
+
+
+
+ {/* ━━ FINAL CTA ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Image-panel + dark-panel — same pattern as homepage CTA.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+
+
+
+
+
+
+
+ Get started
+
+
+
+ Your next event is coming.
+
+
+ Set up in 2 minutes. Free forever. Start collecting pledges that actually convert.
+
)
diff --git a/pledge-now-pay-later/src/app/for/fundraisers/page.tsx b/pledge-now-pay-later/src/app/for/fundraisers/page.tsx
index 636481c..4238369 100644
--- a/pledge-now-pay-later/src/app/for/fundraisers/page.tsx
+++ b/pledge-now-pay-later/src/app/for/fundraisers/page.tsx
@@ -1,136 +1,378 @@
import Link from "next/link"
-import { Nav, Footer, BottomCta, LandingImage } from "../_components"
+import Image from "next/image"
+import { Nav, Footer } from "../_components"
+
+const HERO_STATS = [
+ { stat: "50+", label: "times you shared the link" },
+ { stat: "3", label: "people actually donated" },
+ { stat: "60s", label: "to capture a pledge" },
+ { stat: "£0", label: "cost to you" },
+]
export default function ForFundraisersPage() {
return (
- {/* ── Hero ── */}
-
-
-
-
For personal fundraisers
-
- You shared your link 50 times. 3 people donated.
-
-
- People say “I'll donate later.” They mean it. But your LaunchGood link gets buried. We capture the promise and follow up until they actually pay.
+ {/* ━━ HERO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+ You shared the link.
+
+
+ 3 people donated.
+
+
+
+
+
+
+
+
+
+ For personal fundraisers
+
+
+
+ People say “I'll donate later.” They mean it. But your link gets buried in chat. We capture the promise and follow up until they actually pay.
+
+
+ We fix that.
+
+
+
+
+ Start free
+
+
+ Live demo
+
+
+
+
+ No card required
+
+ Works with any page
+
+ Free forever
+
+
+
+
+
+ {HERO_STATS.map((s) => (
+
+
{s.stat}
+
{s.label}
+
+ ))}
+
+
+
+
+ {/* ━━ THE PROBLEM ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+ The pledge gap
-
-
- Start free — takes 2 minutes
-
-
- See live demo
-
+
+
+ They said “I'll donate.”
+
+
+ Then life got busy.
+
+
+
+
+
+
+
+
-
-
-
- {/* ── The gap ── */}
-
-
-
The gap between “I'll donate” and actually donating
-
+
{[
- { label: "They say", desc: "\"I'll donate after work\"" },
- { label: "What happens", desc: "Life gets in the way. They forget. Your link is buried in chat." },
- { label: "With Pledge Now, Pay Later", desc: "WhatsApp reminder arrives. They tap. They pay. You see it happen." },
- ].map((s, i) => (
-
-
{s.label}
-
{s.desc}
-
- ))}
-
-
-
-
- {/* ── How it works ── */}
-
-
-
-
How it works for fundraisers
-
- {[
- { n: "01", title: "Add your fundraising page", desc: "Paste your LaunchGood, Enthuse, JustGiving, or any URL. We brand the redirect to match." },
- { n: "02", title: "Share your pledge link", desc: "WhatsApp groups, Instagram bio, Twitter, email. Every link is trackable." },
- { n: "03", title: "People pledge an amount", desc: "They commit, then get redirected to your page to pay. Pledge recorded either way." },
- { n: "04", title: "We follow up for you", desc: "WhatsApp reminders. They tap \"I've Donated\" or reply PAID." },
- { n: "05", title: "You see who actually gave", desc: "Who pledged, who clicked through, who confirmed. No more guessing." },
- ].map((s) => (
-
-
{s.n}
-
-
{s.title}
-
{s.desc}
-
-
- ))}
-
-
-
-
-
-
-
-
-
- {/* ── Before / After ── */}
-
-
-
Why not just share the link directly?
-
- {[
- { before: "Share link → hope for the best", after: "Share link → capture pledge → auto follow-up → confirmed donation" },
- { before: "No idea who saw it vs who donated", after: "47 clicked, 23 pledged, 18 paid, 5 need a nudge" },
- { before: "One link, zero tracking", after: "Separate link per WhatsApp group, Instagram, email — see which converts" },
- ].map((r, i) => (
-
-
-
Without
-
{r.before}
-
-
-
With Pledge Now, Pay Later
-
{r.after}
-
-
- ))}
-
-
-
-
- {/* ── Platforms ── */}
-
-
-
Donors pay on the platform they trust
-
We capture the pledge. They pay on your page.
-
- {[
- { name: "LaunchGood", desc: "Islamic crowdfunding" },
- { name: "Enthuse", desc: "UK charity platform" },
- { name: "JustGiving", desc: "Personal fundraising" },
- { name: "GoFundMe", desc: "Emergency and personal" },
- { name: "Bank Transfer", desc: "Direct to your account" },
- { name: "Any URL", desc: "Your own website" },
+ {
+ title: "Links get buried",
+ desc: "You shared it on WhatsApp, posted on Instagram, mentioned it over dinner. By morning, it\u2019s 200 messages deep.",
+ accent: "Good intentions, zero follow-up",
+ },
+ {
+ title: "No idea who saw it",
+ desc: "Did 50 people see the link or 5? Who clicked? Who meant to donate but forgot? You\u2019re guessing.",
+ accent: "Sharing without tracking",
+ },
+ {
+ title: "You can\u2019t chase friends",
+ desc: "You\u2019re not going to text your cousin twice about the donation they promised. So the money never comes.",
+ accent: "Awkward follow-ups kill pledges",
+ },
].map((p) => (
-
-
{p.name}
-
{p.desc}
+
+
{p.title}
+
{p.desc}
+
{p.accent}
))}
-
+ {/* ━━ HOW IT WORKS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+
+ How it works
+
+
+
+ Five steps.
+
+
+ Every promise tracked.
+
+
+
+
+ {[
+ {
+ n: "01",
+ title: "Add your fundraising page",
+ desc: "Paste your LaunchGood, JustGiving, GoFundMe, Enthuse, or any URL. We redirect donors to your page when they\u2019re ready to pay.",
+ detail: "Works with any link",
+ image: "/images/brand/product-setup-01-creating-link.jpg",
+ alt: "Setting up a pledge campaign link on a laptop",
+ },
+ {
+ n: "02",
+ title: "Share your pledge link",
+ desc: "WhatsApp groups, Instagram bio, email signature, family chat. Every link is trackable \u2014 see which source converts best.",
+ detail: "One link per channel",
+ image: "/images/brand/product-setup-04-whatsapp-share.jpg",
+ alt: "Hands holding a phone, sharing a pledge link via WhatsApp",
+ },
+ {
+ n: "03",
+ title: "People pledge an amount",
+ desc: "They commit to a number, choose pay-now or pay-later, and get redirected to your fundraising page. Pledge recorded either way.",
+ detail: "60 seconds, no app download",
+ image: "/images/brand/product-pledge-04-quick-tap.jpg",
+ alt: "Close-up of hand tapping pledge confirmation on phone",
+ },
+ {
+ n: "04",
+ title: "We follow up for you",
+ desc: "WhatsApp reminders with your donation link attached. They tap, they pay. No awkward texts from you.",
+ detail: "Stops when they pay",
+ image: "/images/brand/digital-03-notification-smile.jpg",
+ alt: "Young man smiling at his phone — the moment a gentle reminder lands",
+ },
+ {
+ n: "05",
+ title: "You see who actually gave",
+ desc: "Who pledged, who clicked through, who confirmed payment. Filter by source. No more guessing.",
+ detail: "Live dashboard",
+ image: "/images/brand/digital-04-dashboard-team.jpg",
+ alt: "Team reviewing donation dashboard together on a laptop",
+ },
+ ].map((s, i) => (
+
+
+
+
+
+
+ Step {s.n}
+
+
+ {s.title}
+
+
+ {s.desc}
+
+
+ {s.detail}
+
+
+
+ ))}
+
+
+
+
+ Start free — takes 2 minutes
+
+
+ No card required. Works with your existing fundraising page.
+
+
+
+
+
+ {/* ━━ BEFORE / AFTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Ledger-style rows — same pattern as homepage compliance.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+ The difference
+
+
+
+ Why not just share the link?
+
+
+ Because sharing isn't tracking.
+
+
+ A shared link is a hope. A captured pledge is a system.
+
+
+
+ {[
+ {
+ code: "Before",
+ title: "Share link \u2192 hope for the best",
+ desc: "You post the link. Some people donate. Most don\u2019t. You never know who saw it, who meant to, or who forgot.",
+ result: "No visibility",
+ },
+ {
+ code: "After",
+ title: "Share link \u2192 capture pledge \u2192 auto follow-up",
+ desc: "47 clicked, 23 pledged, 18 paid, 5 need a nudge. You see every step. WhatsApp handles the rest.",
+ result: "Full pipeline",
+ },
+ {
+ code: "Tracking",
+ title: "One link, zero data \u2192 separate links per source",
+ desc: "Family WhatsApp converts at 60%. Instagram at 8%. Now you know where to focus.",
+ result: "Source attribution",
+ },
+ {
+ code: "Platforms",
+ title: "Donors pay on the page they trust",
+ desc: "LaunchGood, JustGiving, GoFundMe, Enthuse, bank transfer, or any URL. We capture the pledge. They pay where they\u2019re comfortable.",
+ result: "Any fundraising page",
+ },
+ ].map((c) => (
+
+
+
{c.code}
+
+
+
{c.title}
+
{c.desc}
+
{c.result}
+
+
+ ))}
+
+
+
+ Every promise. Every follow-up. Every conversion.
+
- Coordinating pledge collection across multiple campaigns, teams, or events? Get the full pipeline view — every pledge, every volunteer, every instalment — in one place.
-
+ Coordinating pledge collection across multiple campaigns, teams, or events? Get the full pipeline view — every pledge, every volunteer, every instalment — in one place.
+
- {[
- { title: "Multi-charity projects", desc: "Building a school? 5 charities each pledged £100k. Track each commitment, send reminders before due dates, see the full pipeline." },
- { title: "Umbrella fundraising", desc: "A federation collects pledges from member mosques for a joint project. Each mosque sees their own pledge status." },
- { title: "Institutional partnerships", desc: "Corporate sponsors pledge annual donations. Track instalments, send invoices, reconcile against bank statements." },
- { title: "Departmental budgets", desc: "Internal teams commit funds to shared initiatives. Track who delivered, who's behind, and what's outstanding." },
- ].map((c) => (
-
-
{c.title}
-
{c.desc}
+
+ {HERO_STATS.map((s) => (
+
+
{s.stat}
+
{s.label}
))}
- {/* ── How it works ── */}
-
-
-
-
How it works for programme managers
-
- {[
- { n: "01", title: "Create a campaign for the project", desc: "\"New School Build 2026\", \"Joint Emergency Appeal\". Set total goal." },
- { n: "02", title: "Send pledge links to each org", desc: "One link per organisation. They open it, commit an amount, and choose a payment schedule." },
- { n: "03", title: "Track commitments", desc: "Live dashboard: who pledged, how much, payment schedule, current status. Filter by org." },
- { n: "04", title: "Automated reminders", desc: "WhatsApp or email reminders before each due date. Contacts reply PAID when funds are transferred." },
- { n: "05", title: "Reconcile and report", desc: "Export CSV of all commitments, payment dates, and outstanding amounts. Share with your board." },
- ].map((s) => (
-
+ {[
+ {
+ title: "Multi-charity projects",
+ desc: "Building a school? 5 charities each pledged \u00A3100k. Track each commitment, send reminders before due dates, see the full pipeline.",
+ accent: "Cross-org coordination",
+ },
+ {
+ title: "Umbrella fundraising",
+ desc: "A federation collects pledges from member mosques for a joint project. Each mosque sees their own pledge status.",
+ accent: "Federated visibility",
+ },
+ {
+ title: "Institutional partnerships",
+ desc: "Corporate sponsors pledge annual donations. Track instalments, send invoices, reconcile against bank statements.",
+ accent: "Instalment tracking",
+ },
+ {
+ title: "Departmental budgets",
+ desc: "Internal teams commit funds to shared initiatives. Track who delivered, who\u2019s behind, and what\u2019s outstanding.",
+ accent: "Internal accountability",
+ },
+ ].map((c) => (
+
+
{c.title}
+
{c.desc}
+
{c.accent}
+
+ ))}
- {/* ── Why this works ── */}
-
-
-
-
-
Spreadsheets don't send reminders
-
- {[
- { title: "One source of truth", desc: "No more email threads asking who's paid. Everyone sees the same dashboard." },
- { title: "Instalment plans", desc: "Large commitments split into monthly or quarterly payments. Each tracked separately." },
- { title: "Automated follow-up", desc: "WhatsApp or email reminders before each due date. No awkward calls between partner orgs." },
- { title: "Audit-ready exports", desc: "CSV with every commitment, payment date, and status. Ready for board reports and audits." },
- ].map((f) => (
-
-
{f.title}
-
{f.desc}
+ {/* ━━ HOW IT WORKS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+
+ How it works
+
+
+
+ Five steps.
+
+
+ Full pipeline visibility.
+
+
+
+
+ {[
+ {
+ n: "01",
+ title: "Create a campaign for the project",
+ desc: "\u201CNew School Build 2026\u201D, \u201CJoint Emergency Appeal.\u201D Set a total goal, add partner organisations, assign volunteers.",
+ detail: "Unlimited campaigns",
+ image: "/images/brand/ops-01-whiteboard-planning.jpg",
+ alt: "Charity team around a whiteboard mapping out campaign timelines",
+ },
+ {
+ n: "02",
+ title: "Send pledge links to each org",
+ desc: "One link per organisation or partner. They open it, commit an amount, and choose a payment schedule. Each tracked separately.",
+ detail: "One link per partner",
+ image: "/images/brand/product-setup-04-whatsapp-share.jpg",
+ alt: "Sharing a pledge link via WhatsApp",
+ },
+ {
+ n: "03",
+ title: "Track commitments in real time",
+ desc: "Live dashboard: who pledged, how much, payment schedule, current status. Filter by org, campaign, or volunteer.",
+ detail: "Filter by anything",
+ image: "/images/brand/product-dashboard-01-morning-after.jpg",
+ alt: "Dashboard showing pledge pipeline across multiple campaigns",
+ },
+ {
+ n: "04",
+ title: "Automated reminders before due dates",
+ desc: "WhatsApp or email reminders before each instalment. Contacts reply PAID when funds are transferred. No awkward calls between partner orgs.",
+ detail: "Stops when they pay",
+ image: "/images/brand/digital-03-notification-smile.jpg",
+ alt: "Notification landing on a phone — a gentle payment reminder",
+ },
+ {
+ n: "05",
+ title: "Reconcile and report",
+ desc: "Upload bank statements. We match payments to pledges automatically. Export CSV of all commitments, dates, and outstanding amounts for your board.",
+ detail: "Board-ready exports",
+ image: "/images/brand/impact-04-building-project.jpg",
+ alt: "Building project funded by community pledges — the outcome coordination delivers",
+ },
+ ].map((s, i) => (
+
+
+
- ))}
+
+
+ Step {s.n}
+
+
+ {s.title}
+
+
+ {s.desc}
+
+
+ {s.detail}
+
+
+
+ ))}
+
+
+
+
+ Start free — takes 2 minutes
+
+
+ No card required. Unlimited campaigns and volunteers.
+
+
+
+
+
+ {/* ━━ WHY THIS WORKS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Ledger-style rows — same pattern as homepage compliance.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+ Why this works
+
+
+
+ Spreadsheets don't send reminders.
+
+
+ We do.
+
+
+ One source of truth for every commitment across every campaign, partner, and volunteer.
+
+
+
+ {[
+ {
+ code: "Pipeline",
+ title: "One source of truth",
+ desc: "No more email threads asking who\u2019s paid. Everyone sees the same dashboard. Filter by campaign, org, or volunteer.",
+ result: "Full visibility",
+ },
+ {
+ code: "Split",
+ title: "Large commitments, split payments",
+ desc: "Corporate sponsors and partner orgs split pledges into monthly or quarterly payments. Each instalment tracked and reminded separately.",
+ result: "Scheduled follow-up",
+ },
+ {
+ code: "Chase",
+ title: "Automated before every due date",
+ desc: "WhatsApp or email reminders go out before each instalment. Contacts reply PAID when funds arrive. No awkward calls.",
+ result: "Zero manual chasing",
+ },
+ {
+ code: "Export",
+ title: "Audit-ready reporting",
+ desc: "CSV with every commitment, payment date, status, and outstanding amount. Ready for board reports, audits, and partner updates.",
+ result: "Trustee-ready",
+ },
+ ].map((c) => (
+
+
+
{c.code}
+
+
+
{c.title}
+
{c.desc}
+
{c.result}
+
+
+ ))}
+
+
+
+ Every commitment. Every instalment. Every update.
+
)
diff --git a/pledge-now-pay-later/src/app/for/volunteers/page.tsx b/pledge-now-pay-later/src/app/for/volunteers/page.tsx
index e7f9fe9..e594442 100644
--- a/pledge-now-pay-later/src/app/for/volunteers/page.tsx
+++ b/pledge-now-pay-later/src/app/for/volunteers/page.tsx
@@ -1,112 +1,325 @@
import Link from "next/link"
-import { Nav, Footer, LandingImage } from "../_components"
+import Image from "next/image"
+import { Nav, Footer } from "../_components"
+
+const HERO_STATS = [
+ { stat: "20+", label: "pledges you collected" },
+ { stat: "0", label: "updates you received" },
+ { stat: "Live", label: "stats on your phone" },
+ { stat: "£0", label: "cost to anyone" },
+]
export default function ForVolunteersPage() {
return (
- {/* ── Hero ── */}
-
-
-
-
For volunteers
-
- You collected 20 pledges. See exactly how much came in.
-
-
- Every volunteer gets their own pledge link. Share it at your table, in your WhatsApp group, or one-on-one. See your live stats — pledges, amounts, conversion rate.
-
-
-
- Share with your charity manager
-
-
- See the volunteer view
-
-
-
-
-
-
-
- {/* ── What you get ── */}
-
-
-
Your own pledge dashboard
-
- {[
- { title: "Your personal link", desc: "A unique pledge URL with your name. Share via QR code, WhatsApp, or in person. Every pledge tracked back to you." },
- { title: "Live stats", desc: "How many pledges, total amount, conversion rate. Updates in real time on your phone. No login needed." },
- { title: "Leaderboard", desc: "Friendly competition across all volunteers. Top collectors get bragging rights. See your rank update live." },
- ].map((f) => (
-
-
{f.title}
-
{f.desc}
-
- ))}
-
-
-
-
- {/* ── Event night ── */}
-
-
-
-
Event night, simplified
-
- {[
- { n: "01", title: "Your charity creates your link", desc: "They set up a campaign and generate a link labelled with your name and table number." },
- { n: "02", title: "Share it at your table", desc: "Show the QR code or tap to share via WhatsApp. Donors scan and pledge in 60 seconds." },
- { n: "03", title: "Watch pledges roll in", desc: "Open your volunteer page on your phone. Every new pledge appears with a name and amount." },
- { n: "04", title: "WhatsApp handles the rest", desc: "You don't chase anyone. Automated reminders go out. Donors reply PAID when they transfer." },
- ].map((s) => (
-
Every link is unique to you. See exactly how many pledges came from your sharing.
-
-
-
- {/* ── CTA ── */}
-
-
-
Ready to see your impact?
-
- Ask your charity manager to set up Pledge Now, Pay Later. They create your link in 30 seconds.
+ {/* ━━ HERO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+ You collected 20 pledges.
+
+
+ Never heard what happened next.
-
-
- Share with your charity
-
-
- See the volunteer view
-
+
+
+
+
+
+
+
+
+ For volunteers
+
+
+
+ Every volunteer gets their own pledge link. Share it at your table, in your WhatsApp group, or one-on-one. See your live stats — pledges, amounts, conversion rate.
+
+
+ Now you see your impact.
+
+
+
+
+ Share with your charity
+
+
+ Volunteer view
+
+
+
+
+ No login needed
+
+ Works on any phone
+
+ Live stats
+
+ {[
+ {
+ title: "Your personal link",
+ desc: "A unique pledge URL with your name. Share via QR code, WhatsApp, or in person. Every pledge tracked back to you.",
+ accent: "Unique to you",
+ },
+ {
+ title: "Live stats",
+ desc: "How many pledges, total amount, conversion rate. Updates in real time on your phone. No login needed.",
+ accent: "Real-time on any device",
+ },
+ {
+ title: "Leaderboard",
+ desc: "Friendly competition across all volunteers. Top collectors get bragging rights. See your rank update live.",
+ accent: "Gamified motivation",
+ },
+ ].map((f) => (
+
+ {[
+ {
+ n: "01",
+ title: "Your charity creates your link",
+ desc: "They set up a campaign and generate a link labelled with your name and table number. You just show up.",
+ detail: "30 seconds to set up",
+ image: "/images/brand/product-setup-03-tent-cards.jpg",
+ alt: "QR code tent cards being placed on tables before a charity dinner",
+ },
+ {
+ n: "02",
+ title: "Share it at your table",
+ desc: "Show the QR code or tap to share via WhatsApp. Donors scan and pledge in 60 seconds. No paper forms.",
+ detail: "QR code or WhatsApp",
+ image: "/images/brand/product-pledge-01-scanning-table.jpg",
+ alt: "Guest scanning a QR code at a charity dinner table",
+ },
+ {
+ n: "03",
+ title: "Watch pledges roll in",
+ desc: "Open your volunteer page on your phone. Every new pledge appears with a name and amount. Real-time updates.",
+ detail: "Live on your phone",
+ image: "/images/brand/event-03-table-conversation.jpg",
+ alt: "Friends leaning in over dinner at a fundraising gala",
+ },
+ {
+ n: "04",
+ title: "WhatsApp handles the rest",
+ desc: "You don\u2019t chase anyone. Automated reminders go out. Donors reply PAID when they transfer. You see every update.",
+ detail: "Zero manual follow-up",
+ image: "/images/brand/digital-03-notification-smile.jpg",
+ alt: "Young man smiling at his phone — a gentle reminder landing",
+ },
+ ].map((s, i) => (
+
+ {[
+ { name: "QR Code", desc: "Print it, show it on your phone, stick it on the table. Donors scan and pledge." },
+ { name: "WhatsApp", desc: "Tap to share in any chat. The link opens the pledge form instantly." },
+ { name: "In person", desc: "Walk table to table. Open the link on their phone. 60 seconds, done." },
+ { name: "Instagram", desc: "Drop the link in your bio or story. See who clicks through." },
+ { name: "Email", desc: "Paste the link in any message. We track every click." },
+ { name: "Copy link", desc: "Works anywhere a URL works. Text, Slack, Signal, Facebook." },
+ ].map((c) => (
+
+
{c.name}
+
{c.desc}
+
+ ))}
+
+
+
+ Every link is unique to you. See exactly how many pledges came from your sharing.
+
+ Ask your charity manager to set up Pledge Now, Pay Later. They create your link in 30 seconds.
+
+
+
+
+ Share with your charity
+
+
+ Volunteer view
+
+
+
+
+ Free forever
+
+ No login needed
+
+ Works tonight
+
+
diff --git a/pledge-now-pay-later/src/app/globals.css b/pledge-now-pay-later/src/app/globals.css
index 01b6538..38394be 100644
--- a/pledge-now-pay-later/src/app/globals.css
+++ b/pledge-now-pay-later/src/app/globals.css
@@ -81,6 +81,8 @@
}
.animate-counter-roll { animation: counter-roll 0.4s ease-out forwards; }
+/* Gallery slideshow — handled via inline transitions */
+
/* Stagger children */
.stagger-children > * { opacity: 0; animation: fadeUp 0.4s ease-out forwards; }
.stagger-children > *:nth-child(1) { animation-delay: 0ms; }
diff --git a/pledge-now-pay-later/src/app/page.tsx b/pledge-now-pay-later/src/app/page.tsx
index 206faf7..82a8352 100644
--- a/pledge-now-pay-later/src/app/page.tsx
+++ b/pledge-now-pay-later/src/app/page.tsx
@@ -1,6 +1,10 @@
+"use client"
+
import Link from "next/link"
import Image from "next/image"
-import { Nav, Footer, BottomCta, LandingImage } from "./for/_components"
+import { useState, useEffect, useRef, useCallback } from "react"
+import { Nav, Footer } from "./for/_components"
+import { Landmark, Globe } from "lucide-react"
/* ── Hero stats ── */
const HERO_STATS = [
@@ -10,7 +14,7 @@ const HERO_STATS = [
{ stat: "2 min", label: "signup to first link" },
]
-/* ── Personas — defined by what they DID, not their job title ── */
+/* ── Personas ── */
const PERSONAS = [
{
slug: "charities",
@@ -19,7 +23,7 @@ const PERSONAS = [
stat2: "\u00A322,000 collected.",
copy: "The speeches landed. The pledges poured in. Then Monday came \u2014 and the spreadsheet started. We follow up automatically. They pay. You stay focused on the mission.",
cta: "For charity organizers",
- image: "/images/landing/persona-01-dinner.jpg",
+ image: "/images/brand/event-01-speaker-passion.jpg",
},
{
slug: "fundraisers",
@@ -28,7 +32,7 @@ const PERSONAS = [
stat2: "8 actually did.",
copy: "You shared it on WhatsApp, posted on Instagram, mentioned it over dinner. People promised. Then life got busy. We track every promise and send the reminders \u2014 so you don\u2019t have to chase friends.",
cta: "For personal fundraisers",
- image: "/images/landing/persona-02-phone.jpg",
+ image: "/images/brand/ramadan-05-charity-collection.jpg",
},
{
slug: "volunteers",
@@ -37,7 +41,7 @@ const PERSONAS = [
stat2: "0 updates received.",
copy: "You spent the evening going table to table. Smiling, explaining, handing out cards. You went home and never found out what happened next. With us, you see every payment \u2014 live.",
cta: "For event volunteers",
- image: "/images/landing/persona-03-volunteer.jpg",
+ image: "/images/brand/event-06-volunteer-serving.jpg",
},
{
slug: "organisations",
@@ -46,103 +50,295 @@ const PERSONAS = [
stat2: "6 hours every quarter.",
copy: "Names, amounts, home addresses, declaration dates. Half the records are incomplete. Every quarter, you build the spreadsheet from scratch. We give you a one\u2011click HMRC export \u2014 every field, every time.",
cta: "For treasurers",
- image: "/images/landing/persona-04-desk.jpg",
+ image: "/images/brand/ops-03-laptop-late-night.jpg",
},
]
+/* ── FAQ ── */
+const FAQS = [
+ {
+ q: "How is this free? What\u2019s the catch?",
+ a: "No catch. No tiers. No \u201Cupgrade to unlock.\u201D The tool is genuinely free because it helps us identify charities that need broader technology support. If your org grows beyond pledge collection, we offer fractional Head of Technology services \u2014 but that\u2019s a separate conversation you\u2019d start, not us.",
+ },
+ {
+ q: "Will my donors actually use this?",
+ a: "They scan a QR code or tap a link. Three screens: amount, payment method, email or phone. 60 seconds, done. No app download, no account creation. We\u2019ve designed it for the least tech-confident person at your event.",
+ },
+ {
+ q: "Is this GDPR and HMRC compliant?",
+ a: "Yes. Gift Aid declarations use the exact HMRC model wording with timestamped consent. Email and WhatsApp opt-ins are separate, never pre-ticked, with full audit trails. Data is stored on UK-hosted infrastructure.",
+ },
+ {
+ q: "We already use JustGiving / LaunchGood / a CRM.",
+ a: "We\u2019re not replacing any of those. We\u2019re the layer between \u201CI\u2019ll donate\u201D and the money reaching your platform. Donors can be redirected to your existing fundraising page to pay. We just make sure they don\u2019t forget.",
+ },
+ {
+ q: "How long does setup take?",
+ a: "Two minutes. Create an account, name your first event, generate a pledge link. You can test the donor flow on your own phone immediately.",
+ },
+ {
+ q: "What happens to donor data?",
+ a: "You own it. Export everything as CSV anytime. We never sell or share donor data. When you delete your account, the data goes with it.",
+ },
+]
+
+const GALLERY_IMAGES = [
+ { src: "/images/brand/life-04-family-dinner.jpg", alt: "Multi-generational family sharing dinner at home" },
+ { src: "/images/brand/everyday-03-school-gate.jpg", alt: "Parents chatting at the school gate" },
+
+ { src: "/images/brand/intergen-01-grandma-cooking.jpg", alt: "Grandmother teaching granddaughter to cook" },
+ { src: "/images/brand/everyday-04-nhs-nurse.jpg", alt: "NHS nurse on a busy shift" },
+ { src: "/images/brand/life-05-eid-morning.jpg", alt: "Eid morning celebrations outside the mosque" },
+ { src: "/images/brand/sport-01-football.jpg", alt: "Weekend football in the park" },
+ { src: "/images/brand/season-02-rainy-commute.jpg", alt: "Rainy London commute" },
+ { src: "/images/brand/intergen-02-walking-together.jpg", alt: "Grandfather and grandson walking together" },
+ { src: "/images/brand/ramadan-04-suhoor-kitchen.jpg", alt: "Pre-dawn suhoor preparation in the kitchen" },
+ { src: "/images/brand/everyday-01-barbershop.jpg", alt: "Local barbershop conversation" },
+ { src: "/images/brand/youth-02-mentoring.jpg", alt: "Young mentor working with a student" },
+ { src: "/images/brand/life-02-food-prep.jpg", alt: "Women preparing food in the community kitchen" },
+ { src: "/images/brand/season-03-park-summer.jpg", alt: "Summer afternoon in the park" },
+ { src: "/images/brand/everyday-05-taxi-driver.jpg", alt: "Taxi driver between fares" },
+ { src: "/images/brand/sacred-03-dua-hands.jpg", alt: "Hands raised in quiet dua" },
+ { src: "/images/brand/intergen-03-tech-help.jpg", alt: "Grandchild helping elder with a phone" },
+ { src: "/images/brand/sport-03-cricket-park.jpg", alt: "Cricket match in the park" },
+ { src: "/images/brand/everyday-02-corner-shop.jpg", alt: "Corner shop chat with the shopkeeper" },
+
+ { src: "/images/brand/life-06-charity-shop.jpg", alt: "Browsing the local charity shop" },
+ { src: "/images/brand/youth-03-childrens-class.jpg", alt: "Children's class at the community centre" },
+ { src: "/images/brand/season-01-winter-coats.jpg", alt: "Bundled up in winter coats" },
+ { src: "/images/brand/everyday-06-graduation.jpg", alt: "Graduation day with the whole family" },
+ { src: "/images/brand/intergen-04-mosque-elders.jpg", alt: "Elders gathered at the mosque" },
+ { src: "/images/brand/sacred-01-wudu.jpg", alt: "Wudu before prayer" },
+ { src: "/images/brand/sport-02-sisters-gym.jpg", alt: "Sisters gym session" },
+ { src: "/images/brand/life-01-mosque-exterior.jpg", alt: "The mosque at golden hour" },
+ { src: "/images/brand/season-04-snow-mosque.jpg", alt: "Snow falling outside the mosque" },
+ { src: "/images/brand/youth-01-workshop.jpg", alt: "Youth workshop in full swing" },
+]
+
+/* Slide directions: [incoming start offset, outgoing end offset] as CSS translate values */
+const SLIDES: [string, string][] = [
+ ["translateX(100%)", "translateX(-100%)"], // from right
+ ["translateX(-100%)", "translateX(100%)"], // from left
+ ["translateY(100%)", "translateY(-100%)"], // from bottom
+ ["translateY(-100%)", "translateY(100%)"], // from top
+]
+
+const DURATION = 420 // ms — snappy
+const INTERVAL = 3500
+
+function GallerySlideshow() {
+ const [idx, setIdx] = useState(0)
+ const [prevIdx, setPrevIdx] = useState(-1)
+ const [phase, setPhase] = useState<"idle" | "prep" | "go">("idle")
+ const dirRef = useRef(SLIDES[0])
+ const inRef = useRef(null)
+ const outRef = useRef(null)
+
+ // Pick random direction and kick off transition
+ const advance = useCallback(() => {
+ dirRef.current = SLIDES[Math.floor(Math.random() * SLIDES.length)]
+ setIdx((i) => {
+ setPrevIdx(i)
+ return (i + 1) % GALLERY_IMAGES.length
+ })
+ setPhase("prep") // frame 1: position incoming off-screen
+ }, [])
+
+ // Two-frame trick: prep → go
+ useEffect(() => {
+ if (phase === "prep") {
+ // Position incoming element at its start offset (no transition)
+ const el = inRef.current
+ if (el) {
+ el.style.transition = "none"
+ el.style.transform = dirRef.current[0]
+ }
+ const oel = outRef.current
+ if (oel) {
+ oel.style.transition = "none"
+ oel.style.transform = "translate(0,0)"
+ }
+ // Next frame: enable transition and snap to final position
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => setPhase("go"))
+ })
+ }
+ if (phase === "go") {
+ const ease = `transform ${DURATION}ms cubic-bezier(0.25, 1, 0.5, 1)`
+ const el = inRef.current
+ if (el) {
+ el.style.transition = ease
+ el.style.transform = "translate(0,0)"
+ }
+ const oel = outRef.current
+ if (oel) {
+ oel.style.transition = ease
+ oel.style.transform = dirRef.current[1]
+ }
+ const t = setTimeout(() => {
+ setPrevIdx(-1)
+ setPhase("idle")
+ }, DURATION + 20)
+ return () => clearTimeout(t)
+ }
+ }, [phase])
+
+ // Auto-advance timer
+ useEffect(() => {
+ const t = setInterval(advance, INTERVAL)
+ return () => clearInterval(t)
+ }, [advance])
+
+ return (
+
+ {/* ━━ HERO — The hook is the headline ━━━━━━━━━━━━━━━━━━━━━━
+ Two-line gut punch: the promise, then the loss.
+ Everything else serves that moment of recognition.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
- {/* ━━ THE PLEDGE GAP — alternating editorial rows ━━━━━━━━━ */}
-
+ {/* ━━ WHERE PLEDGES HAPPEN — Four moments, one truth ━━━━━━
+ Each image is a specific moment where someone says "I'll
+ donate." These aren't decoration — they're the origin
+ story of every lost pledge we exist to recover.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+ {[
+ { src: "/images/brand/event-03-table-conversation.jpg", alt: "Friends leaning in over dinner at a fundraising gala — the moment someone says I'll donate", label: "At the dinner table" },
+ { src: "/images/brand/life-03-friday-prayer.jpg", alt: "Community streaming out after Friday prayer, the weekly moment where charity appeals land", label: "After Jumuah" },
+ { src: "/images/brand/modern-04-whatsapp-group.jpg", alt: "Hands holding phone in a WhatsApp conversation — where most pledge links get shared and buried", label: "In the group chat" },
+ { src: "/images/brand/outdoor-04-cake-sale.jpg", alt: "Community bake sale with volunteers and families — everyday fundraising where promises are made face to face", label: "At the bake sale" },
+ ].map((img) => (
+
+
+
+
+
{img.label}
+
+
+ ))}
+
+
+ Pledges happen in these moments. We make sure they're not lost.
+
+
+
+
+ {/* ━━ THE PLEDGE GAP — persona cards with brand photography ━━ */}
+
+
+
The pledge gap
@@ -150,157 +346,537 @@ export default function HomePage() {
People don't break promises.
-
+
Systems do.
-
- We built the missing system between “I'll donate” and the money arriving.
+
+ We built the missing system between “I'll donate” and the money arriving.
- {/* Stacking cards — all sticky siblings in ONE parent */}
{PERSONAS.flatMap((p, i) => {
- const imgFirst = i % 2 === 0
const els = [
,
]
if (i < PERSONAS.length - 1) {
- els.push()
+ els.push()
}
return els
})}
+
- {/* ━━ HOW IT WORKS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
-
+ {/* ━━ HOW IT WORKS — with brand photography ━━━━━━━━━━━━━━━ */}
+
-
-
Four steps. Zero pledges lost.
+
+
+
+ How it works
+
+
+
+ Four steps.
+
+
+ Zero pledges lost.
+
-
+
+
{[
- { n: "01", title: "Create a pledge link", desc: "One link per campaign, table, volunteer, or WhatsApp group. Share anywhere." },
- { n: "02", title: "Donor pledges", desc: "Amount, Gift Aid, Zakat, schedule — 60-second mobile flow. No app download." },
- { n: "03", title: "WhatsApp follows up", desc: "Automated reminders with bank details. They reply PAID when done." },
- { n: "04", title: "Money arrives", desc: "Live dashboard. Who pledged, who paid, who needs a nudge." },
- ].map((s) => (
-
-
{s.n}
-
{s.title}
-
{s.desc}
+ {
+ n: "01",
+ title: "Create a pledge link",
+ desc: "One link per campaign, table, volunteer, or WhatsApp group. Share it anywhere \u2014 print, text, post.",
+ detail: "Takes 30 seconds",
+ image: "/images/brand/product-setup-05-briefing-volunteers.jpg",
+ alt: "Event organiser briefing young volunteers with QR code cards before a fundraising dinner",
+ },
+ {
+ n: "02",
+ title: "Donor pledges in 60 seconds",
+ desc: "Amount, Gift Aid, Zakat, payment schedule. Three screens on their phone. No app download. No account.",
+ detail: "Works on any phone",
+ image: "/images/brand/product-pledge-01-scanning-table.jpg",
+ alt: "Guest at a charity dinner scanning a QR code on the table with their phone, fairy lights in the background",
+ },
+ {
+ n: "03",
+ title: "Automatic follow-up",
+ desc: "Four-step reminder sequence with your bank details attached. They pay when ready. You never send an awkward text.",
+ detail: "Stops when they pay",
+ image: "/images/brand/digital-03-notification-smile.jpg",
+ alt: "Young man at a London bus stop smiling at his phone — the moment a gentle WhatsApp reminder lands and he thinks oh right, I need to do that",
+ },
+ {
+ n: "04",
+ title: "Money arrives",
+ desc: "Upload your bank statement. We match payments to pledges automatically. Live dashboard shows who paid, who hasn\u2019t.",
+ detail: "One-click Gift Aid export",
+ image: "/images/brand/impact-02-thank-you-letter.jpg",
+ alt: "Woman reading a hand-drawn thank-you card under a warm desk lamp — the quiet moment that happens when the money gets through",
+ },
+ ].map((s, i) => (
+
+
+
+
+
+
+ Step {s.n}
+
+
+ {s.title}
+
+
+ {s.desc}
+
+
+ {s.detail}
+
+
+
+ ))}
+
+
+
+
+ Start free — takes 2 minutes
+
+
+ No card required. Works with your existing bank account.
+
+
+
+
+
+ {/* ━━ COMPLIANCE — The audit you're not ready for ━━━━━━━━━━
+ Psychology: trigger the specific fear every treasurer has
+ (the HMRC letter, the trustee question, the missing field)
+ then resolve it with structure that looks like a compliance
+ document, not a marketing grid. Zero photos — the absence
+ of decoration IS the design. This is serious.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+ Compliance
+
+
+
+ Your next HMRC audit.
+
+
+ We've already done the paperwork.
+
+
+ Every pledge captures the exact data your trustees, HMRC, and the ICO require. No manual entry. No missing fields. No 3am spreadsheet panic.
+
+
+ {/* The compliance ledger — looks like a formal document, not marketing */}
+
+ {[
+ {
+ code: "HMRC",
+ title: "Gift Aid declarations",
+ desc: "Exact model wording. Full name, home address, postcode, timestamped consent. Donors confirm with one tap — you get a one-click CSV ready for HMRC.",
+ result: "+25% on every eligible pledge",
+ },
+ {
+ code: "GDPR",
+ title: "Data consent & audit trail",
+ desc: "Separate opt-in per channel. Never pre-ticked. Every consent recorded with timestamp, IP address, and the exact text the donor saw.",
+ result: "ICO audit-ready",
+ },
+ {
+ code: "PECR",
+ title: "WhatsApp & email permissions",
+ desc: "No message sent without explicit permission. Reply STOP cancels instantly. Consent and unsubscribe events logged permanently.",
+ result: "Zero unsolicited messages",
+ },
+ {
+ code: "Zakat",
+ title: "Zakat fund separation",
+ desc: "Per-campaign toggle. Donors tick one checkbox. Zakat pledges tracked in their own column across every report and export. Never mixed with general funds.",
+ result: "Separate ledger, always",
+ },
+ ].map((c) => (
+
+
+
{c.code}
+
+
+
{c.title}
+
{c.desc}
+
{c.result}
+
+
+ ))}
+
+
+
+ Every pledge. Every field. Every time.
+
+
+
+
+ {/* ━━ PAYMENT FLEXIBILITY — Three real conversations ━━━━━━━
+ Psychology: donors aren't flaky. Life is unpredictable.
+ Start with THEIR words — the things people actually say
+ at the dinner table — then show how each one is handled.
+ Family dinner image anchors the warmth of why people give.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+ Payment flexibility
+
+
+
+ {/* Gallery + headline side by side */}
+
+
+
+
+ Donors pay when they're ready
+
+
+ Life is busy. Between school runs, work, and family dinners — we make sure the intention to give doesn't get lost.
+
+
+
+
+ {/* Three donor realities — gap-px grid */}
+
+ {[
+ {
+ n: "01",
+ quote: "\u201CLet me do it right now.\u201D",
+ desc: "Redirect straight to your fundraising page or show your bank transfer details. Pledge marked as initiated immediately.",
+ label: "Pay now",
+ },
+ {
+ n: "02",
+ quote: "\u201CI\u2019ll pay on payday.\u201D",
+ desc: "They pick a date. We send a WhatsApp reminder that morning with your bank details attached. They tap, they pay.",
+ label: "Pick a date",
+ },
+ {
+ n: "03",
+ quote: "\u201CCan I pay monthly?\u201D",
+ desc: "2\u201312 monthly instalments. Each one tracked separately. Each one reminded separately. You see every payment land.",
+ label: "Monthly instalments",
+ },
+ ].map((o) => (
+
Every pledge collects bulletproof consent. Ready for HMRC, ICO, and your trustees.
+ {/* ━━ PLATFORMS — Integrations that already work ━━━━━━━━━━
+ Psychology: reassurance. They're thinking "but we already
+ use X." Show them we slot in, not replace. Same ledger
+ feel as the compliance section — serious, trustworthy.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+
+ {/* ━━ FINAL CTA ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Same image-panel + dark-panel language as the hero and
+ integrations header. Ends the page the way it started.
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
+
+
+
+ {/* Image — the energy of a live fundraising moment */}
+
+
+
+
+
+ {/* Dark copy panel */}
+
+
+
+ Get started
+
+
+
+ Every day without this, you're losing pledges.
+
+
+ People pledged because they meant it. Give them the system to follow through.
+