The brief
Amazing Grace Bible Church is one family spread across four nations (Glasgow HQ, Berlin, Emmen, and Ogbomosho), with congregations that read English, German, and Dutch. Each branch had its own service times, team, and events, but no shared home online. The brief: one global site that leads with the shared vision and still feels local to every branch.
What I did
I led product and engineering end to end. The architecture treats branches as data, not pages: each branch is a JSON content entry, and the branch pages, homepage strips, and footer all derive from it, so adding a fifth branch is a pull request, not a redesign. The UI is trilingual (EN/DE/NL) with URL-based locale routing. Content and integrations are decoupled so non-engineers can run the site: events from Sanity, sermons from YouTube, contact via Resend, giving through Stripe, the bookstore on Payhip. Every integration degrades gracefully, so the site runs with zero configuration and each key switches a feature on.
It shipped live at agbcglobal.com: a server-rendered Astro app on Vercel, with a tokenized design system, unit tests in Vitest, and a Playwright e2e suite that includes axe accessibility audits in CI.
What I learned
The real product decision was “branches as data.” Every stakeholder request after launch (a new branch, a changed service time, a stat on the about page) turned into a content edit instead of a code change. Designing for the least technical maintainer is what keeps a client site alive after you hand it over.