The brief
Masjid Al Rahman needed a public face that did three things at once: tell the story of the community, accept donations across multiple campaigns, and let the imam publish updates without going through a developer.
The old WordPress site had been patched into the ground. Lighthouse score in the 30s, donation flow took 6 clicks, and updating a flyer meant emailing the developer.
What we built
A Next.js + Sanity stack with a single donation surface backed by Stripe Connect. Imam-side, we shipped a CMS-driven announcements feed that auto-pushes to the homepage hero. We added campaign-level pages so every fundraising drive (Ramadan, building fund, Friday school) gets its own URL with progress bar and copy that the team can edit themselves.
Performance was non-negotiable for a mosque audience on patchy mobile networks — we shipped with a 92 Lighthouse score and a 0.4s LCP on 4G.
What changed
Inside the first six weeks, donations grew 3.4× against the previous quarter on roughly the same traffic. Average donation size barely moved — the lift was almost entirely from completion rate. The 6-click flow became 2.
The imam now publishes 3-4 updates a week. He hasn't emailed me once.