Start a project→The site you are on: a Next.js front end reading from a headless WordPress back end. The team edits pages, case studies, reviews and settings in WordPress, and the site updates without a code change or a deploy.
We build and fix WordPress sites for clients, so our own site had to practise what we recommend. It needed to be edited by the whole team, not only a developer.
A traditional theme would have tied design and content together and made every copy change a developer task. We wanted a fast front end with a content model that stays tidy as the site grows.
It also had to do real work: take enquiries, keep every lead, and make sure nothing sat unseen in an inbox.
Case studies, testimonials, team, services and engagement models are custom post types with ACF fields. Page copy and site settings (contact details, menus, lead recipients) are editable in wp-admin.
Pages render from WPGraphQL data. Rank Math supplies titles, descriptions and social metadata, and the site is rebuilt for visitors when content changes.
The contact form posts to a narrow REST endpoint with a honeypot and minimum fill time. Each enquiry is saved as a private lead with every field, and emailed to the addresses set in Site Settings.
Leads are never exposed to GraphQL or public REST. Cross-origin access is limited to the front end origins, and the only public write is the contact route.