New Culture Church
Our church website, and the admin tools behind it
newculturechurch.com- Client
- New Culture Church, Madison, WI
- Launched
- August 27, 2026
- Role
- Design, build, and the ongoing upkeep
- Scope
- 71 routes, a staff admin area, 189 sermons
- PageSpeed
- 39 before, 100 after


Our old site scored a 39 on PageSpeed and nobody on staff could change a page without asking someone. At one point the domain expired because it was registered under an old Gmail account we no longer had the password for, and church email started bouncing.
The bigger issue was that the site had nothing to do with how we actually ran a week. Events were in Planning Center. Sermons were on a drive Bradley carried home. Sign-ups were in whatever form somebody built that month. So the same information got typed into four places, and by Friday two of them were wrong. There were multiple announcement QR codes floating around, and which one you scanned changed what you found out.
71 routes on Next.js 16, hosted on Vercel. The public pages are static, and they read from the systems we already pay for instead of from a copy of them. Planning Center is the source of truth for events now, and the site and the Instagram link page both update from it. Supabase holds the sermon catalogue, 189 of them, filterable by speaker, year, book, and scripture, with scripture links going out to the Bible app and song links to Spotify and Apple Music.
Behind a Clerk login there is an admin area for staff: contacts, segments, email campaigns through Resend, attendance, sermon notes, reminders, and the announcement slides for Sunday morning. There is one What's Happening page and one QR code. That request is most of what started this.
There is also a leadership hub with the things our community leaders kept asking me for one at a time: a Sunday slide generator that stays on brand, a social kit with graphics and captions already written, and the Next Steps class deck. The class handout, the invite postcards, and a season of social graphics all render from the same data the site uses, so nobody opens a design file to get a printable version of something we already published.
We launched August 27. PageSpeed went from 39 to 100, and the staff run it now without me in the room.
One thing I got wrong early: I had the data layers throw when a credential was missing, which meant a bad token could take a page down on a Sunday. They fall back to static content now instead.
Still on the list are automatic sermon video posting to YouTube and a photo gallery for story content.
- Next.js 16
- React 19
- Tailwind 4
- Supabase
- Planning Center
- Clerk
- Resend
- Vercel