// chapter 1
What I built
Headless blog
Posts come straight from the client’s WordPress through its REST API and refresh every five minutes. The team keeps writing exactly as before.
Clean article content
Their page builder wrapped posts in layout markup and sidebar widgets. A sanitiser keeps only the real article, so posts look right on the new design.
Search engine ready
Metadata for every page and post, structured data for the organisation, services, FAQ, articles and breadcrumbs, plus a generated sitemap and robots rules.
Six service pages
Each service has its own page, generated at build time with its own search description and structured data, matching the old site’s addresses.
Signature interactions
A soft glow that follows the cursor, magnetic buttons with moving 3D shadows and tilting cards, as the client asked, while keeping the page fast.
Strict brand system
The client’s navy and forest palette as design tokens, glass panels, a blueprint grid and animated counters, with the real logo cleaned up for light and dark backgrounds.
// chapter 2
Launch plan
I also wrote the client a plain-language guide for going live: deploy the site, move WordPress to a sub-domain so it keeps serving content, point the main domain at the new site, and connect the contact form to their existing form plugin, with a storage add-on so no enquiry is ever lost if an email fails.
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- WordPress REST API
- JSON-LD
- ISR