persona section overhaul — editorial gap-px grid + fresh photography
SECTION REDESIGN: - Killed standalone dashboard image (fake AI laptop, added nothing) - New gap-px grid (signature pattern 2) with border-l-2 accents (pattern 1) - Numbered anchors (01-04) as visual rhythm per brand guide - Wider container: max-w-7xl matches hero width PERSONA CHANGES: - Renamed 'Organisation' -> 'Programme Manager' - Reorder: Charity Manager, Programme Manager, Personal Fundraiser, Volunteer - Updated /for/organisations page content to match PHOTOGRAPHY (4 new images via gemini-3-pro-image-preview): - persona-charity-manager.jpg — hijabi woman at mosque office desk - persona-programme-manager.jpg — man at desk with campaign calendar - persona-fundraiser.jpg — woman on London park bench with phone - persona-volunteer.jpg — young man handing card at charity gala - All optimized: 2.7MB -> 342KB (87% reduction via sharp) - Consistent documentary candid style, 3:2 landscape, warm tones FOOTER: - 'Organisations' -> 'Programme Managers' in nav links
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 93 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 84 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
BIN
pledge-now-pay-later/public/images/landing/persona-volunteer.jpg
Normal file
BIN
pledge-now-pay-later/public/images/landing/persona-volunteer.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
@@ -27,7 +27,7 @@ export function Footer({ active }: { active?: string }) {
|
||||
{ href: "/for/charities", label: "Charities" },
|
||||
{ href: "/for/fundraisers", label: "Fundraisers" },
|
||||
{ href: "/for/volunteers", label: "Volunteers" },
|
||||
{ href: "/for/organisations", label: "Organisations" },
|
||||
{ href: "/for/organisations", label: "Programme Managers" },
|
||||
]
|
||||
return (
|
||||
<footer className="py-10 px-6 border-t border-gray-100">
|
||||
|
||||
@@ -10,12 +10,12 @@ export default function ForOrganisationsPage() {
|
||||
<section className="pt-24 pb-16 md:pt-32 md:pb-20 px-6">
|
||||
<div className="max-w-5xl mx-auto grid md:grid-cols-2 gap-12 items-center">
|
||||
<div className="space-y-6">
|
||||
<p className="text-sm font-semibold text-success-green tracking-wide uppercase">For organisations</p>
|
||||
<p className="text-sm font-semibold text-success-green tracking-wide uppercase">For programme managers</p>
|
||||
<h1 className="text-4xl md:text-5xl font-black text-gray-900 leading-[1.08] tracking-tight">
|
||||
10 charities pledged to your project. Who's actually paid?
|
||||
5 campaigns running. 20 volunteers active. Who's actually collecting?
|
||||
</h1>
|
||||
<p className="text-lg text-gray-500 leading-relaxed">
|
||||
Coordinating a multi-org project, umbrella appeal, or institutional partnership? Track commitments from organisations — not just individuals — and see who's delivered on their promise.
|
||||
Coordinating pledge collection across multiple campaigns, teams, or events? Get the full pipeline view — every pledge, every volunteer, every instalment — in one place.
|
||||
</p>
|
||||
<div className="flex flex-col sm:flex-row gap-4 pt-2">
|
||||
<Link href="/signup" className="inline-flex items-center justify-center bg-gray-900 px-8 py-4 text-base font-bold text-white hover:bg-gray-800 transition-colors">
|
||||
@@ -33,7 +33,7 @@ export default function ForOrganisationsPage() {
|
||||
{/* ── Use cases ── */}
|
||||
<section className="py-24 bg-gray-50 px-6">
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<h2 className="text-3xl font-black text-gray-900 tracking-tight mb-12">When organisations pledge to each other</h2>
|
||||
<h2 className="text-3xl font-black text-gray-900 tracking-tight mb-12">When you're coordinating the bigger picture</h2>
|
||||
<div className="grid md:grid-cols-2 gap-px bg-gray-200">
|
||||
{[
|
||||
{ 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." },
|
||||
@@ -54,7 +54,7 @@ export default function ForOrganisationsPage() {
|
||||
<section className="py-24 px-6">
|
||||
<div className="max-w-5xl mx-auto grid md:grid-cols-2 gap-16 items-start">
|
||||
<div>
|
||||
<h2 className="text-3xl font-black text-gray-900 tracking-tight mb-12">How it works for organisations</h2>
|
||||
<h2 className="text-3xl font-black text-gray-900 tracking-tight mb-12">How it works for programme managers</h2>
|
||||
<div className="space-y-8">
|
||||
{[
|
||||
{ n: "01", title: "Create a campaign for the project", desc: "\"New School Build 2026\", \"Joint Emergency Appeal\". Set total goal." },
|
||||
@@ -104,8 +104,8 @@ export default function ForOrganisationsPage() {
|
||||
</section>
|
||||
|
||||
<BottomCta
|
||||
headline="Stop chasing partner organisations."
|
||||
sub="Track every commitment. Automate every reminder. Free forever."
|
||||
headline="Stop chasing spreadsheets across campaigns."
|
||||
sub="Full pipeline view. Every pledge tracked. Free forever."
|
||||
/>
|
||||
<Footer active="organisations" />
|
||||
</div>
|
||||
|
||||
@@ -17,28 +17,28 @@ const PERSONAS = [
|
||||
title: "Charity Manager",
|
||||
oneLiner: "You raise pledges at events. We make sure the money actually arrives.",
|
||||
tags: ["Dashboard", "WhatsApp reminders", "Gift Aid", "Zakat", "HMRC export"],
|
||||
image: "/images/landing/08-charities-hero.jpg",
|
||||
image: "/images/landing/persona-charity-manager.jpg",
|
||||
},
|
||||
{
|
||||
slug: "organisations",
|
||||
title: "Programme Manager",
|
||||
oneLiner: "You coordinate campaigns across teams. We give you the full pipeline view.",
|
||||
tags: ["Multi-campaign", "Team oversight", "Pipeline view", "Instalments", "Reporting"],
|
||||
image: "/images/landing/persona-programme-manager.jpg",
|
||||
},
|
||||
{
|
||||
slug: "fundraisers",
|
||||
title: "Personal Fundraiser",
|
||||
oneLiner: "You share a LaunchGood or JustGiving link. We track who actually donates.",
|
||||
tags: ["LaunchGood", "Enthuse", "JustGiving", "Social sharing", "Conversion tracking"],
|
||||
image: "/images/landing/03-main-fundraiser-card.jpg",
|
||||
image: "/images/landing/persona-fundraiser.jpg",
|
||||
},
|
||||
{
|
||||
slug: "volunteers",
|
||||
title: "Volunteer",
|
||||
oneLiner: "You help collect pledges at events. We show you exactly how much you raised.",
|
||||
tags: ["Personal link", "Live stats", "Leaderboard", "WhatsApp share"],
|
||||
image: "/images/landing/04-main-volunteer-card.jpg",
|
||||
},
|
||||
{
|
||||
slug: "organisations",
|
||||
title: "Organisation",
|
||||
oneLiner: "You coordinate pledges across multiple charities or departments. We track every commitment.",
|
||||
tags: ["Multi-party", "Fund allocation", "Pipeline view", "Instalments"],
|
||||
image: "/images/landing/05-main-org-card.jpg",
|
||||
image: "/images/landing/persona-volunteer.jpg",
|
||||
},
|
||||
]
|
||||
|
||||
@@ -130,40 +130,64 @@ export default function HomePage() {
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* ━━ PRODUCT IMAGE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
|
||||
<section className="pt-16 pb-8 md:pt-20 md:pb-10 px-6">
|
||||
<div className="max-w-5xl mx-auto">
|
||||
<LandingImage src="/images/landing/01-main-dashboard-hero.jpg" alt="Live pledge pipeline dashboard showing donation trends and collection status" aspect="video" />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* ━━ 4 PERSONAS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */}
|
||||
<section className="py-24 px-6">
|
||||
<div className="max-w-5xl mx-auto space-y-14">
|
||||
<div className="max-w-2xl">
|
||||
<h2 className="text-4xl font-black text-gray-900 tracking-tight">Built for how you actually work</h2>
|
||||
<p className="text-lg text-gray-500 mt-3">Four roles. One platform. Every pledge tracked.</p>
|
||||
{/* ━━ WHO IT'S FOR — gap-px grid (signature pattern 2) ━━━━ */}
|
||||
<section className="py-20 md:py-28 px-6">
|
||||
<div className="max-w-7xl mx-auto">
|
||||
{/* Eyebrow — border-l-2 accent (signature pattern 1) */}
|
||||
<div className="border-l-2 border-promise-blue pl-3 mb-6">
|
||||
<p className="text-[11px] font-semibold tracking-[0.15em] uppercase text-gray-500">
|
||||
Who it's for
|
||||
</p>
|
||||
</div>
|
||||
<h2 className="text-4xl md:text-5xl font-black text-gray-900 tracking-tight">
|
||||
Built for how you actually work
|
||||
</h2>
|
||||
<p className="text-lg text-gray-500 mt-3 max-w-xl">
|
||||
Four roles. One platform. Every pledge tracked.
|
||||
</p>
|
||||
|
||||
<div className="grid md:grid-cols-2 gap-6">
|
||||
{PERSONAS.map((p) => (
|
||||
{/* 2×2 gap-px grid */}
|
||||
<div className="grid md:grid-cols-2 gap-px bg-gray-200 mt-14">
|
||||
{PERSONAS.map((p, i) => (
|
||||
<Link
|
||||
key={p.slug}
|
||||
href={`/for/${p.slug}`}
|
||||
className="group block bg-white border border-gray-200 hover:border-gray-900 transition-colors"
|
||||
className="group bg-white overflow-hidden"
|
||||
>
|
||||
<LandingImage src={p.image} alt={p.title} aspect="video" />
|
||||
<div className="p-6 space-y-3">
|
||||
<h3 className="text-lg font-black text-gray-900 group-hover:text-promise-blue transition-colors">{p.title}</h3>
|
||||
<p className="text-sm text-gray-500 leading-relaxed">{p.oneLiner}</p>
|
||||
<div className="flex flex-wrap gap-2">
|
||||
{p.tags.map((t) => (
|
||||
<span key={t} className="text-[11px] font-medium text-gray-400 bg-gray-50 px-2 py-0.5">{t}</span>
|
||||
))}
|
||||
{/* Image */}
|
||||
<div className="aspect-[3/2] relative overflow-hidden">
|
||||
<Image
|
||||
src={p.image}
|
||||
alt={p.title}
|
||||
fill
|
||||
className="object-cover transition-opacity duration-300 group-hover:opacity-90"
|
||||
sizes="(max-width: 768px) 100vw, 50vw"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Text — numbered + border-l accent */}
|
||||
<div className="p-6 md:p-8">
|
||||
<div className="flex items-start gap-5">
|
||||
<span className="text-4xl font-black text-gray-100 leading-none select-none shrink-0">
|
||||
{String(i + 1).padStart(2, "0")}
|
||||
</span>
|
||||
<div className="flex-1 min-w-0 border-l-2 border-gray-900 pl-4">
|
||||
<h3 className="text-lg font-black text-gray-900 group-hover:text-promise-blue transition-colors">
|
||||
{p.title}
|
||||
</h3>
|
||||
<p className="text-sm text-gray-500 mt-1.5 leading-relaxed">{p.oneLiner}</p>
|
||||
<div className="flex flex-wrap gap-1.5 mt-3">
|
||||
{p.tags.map((t) => (
|
||||
<span key={t} className="text-[10px] font-medium text-gray-400 bg-gray-50 px-2 py-0.5">
|
||||
{t}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
<p className="text-xs font-semibold text-promise-blue mt-4 opacity-0 group-hover:opacity-100 transition-opacity">
|
||||
Learn more →
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-sm font-semibold text-promise-blue opacity-0 group-hover:opacity-100 transition-opacity pt-1">
|
||||
Learn more →
|
||||
</p>
|
||||
</div>
|
||||
</Link>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user