Will Ellis

Next.js · WordPress · Platform engineering · AWS

Nextpress — an in-house headless WordPress and Next.js platform

The in-house framework behind our headless WordPress builds: a custom WordPress plugin, a Next.js block renderer, schema-driven ACF fields and a one-command infrastructure setup.

Overview

Type: Internal platform
Role: Senior Engineer

Nextpress is the boilerplate and framework our team uses to deliver headless WordPress sites. Every WordPress-based client project starts from it, so improvements to the platform benefit every build that follows. It powers the Ducasse, Mission and Appliance Hero projects.

The pieces

  • A custom WordPress plugin exposing REST endpoints for routing, posts, settings, menus, theme configuration and JWT authentication.
  • A block pipeline that parses Gutenberg blocks and ACF flexible content into normalised JSON for the frontend.
  • A Next.js frontend with a dynamic block parser that resolves each block to a React component, per brand theme.
  • Thin WordPress themes that only register post types, taxonomies and fields — all presentation lives in Next.js.

Technical details

Schema-driven fields

Each block defines its ACF fields in a fields.json file next to the component. The WordPress theme reads these files and registers the field groups automatically, and the same field IDs become the React component's props. Field definitions are version-controlled, shared between PHP and TypeScript, and support declarative conditional logic — nothing is configured by hand in the WordPress admin.

One-command infrastructure

A Makefile takes a new project from nothing to a live, SSL-secured CMS with make setup. It provisions an AWS Lightsail instance, configures SSH, creates and pushes the Git repository, deploys WordPress, issues Let's Encrypt certificates, updates site URLs with WP-CLI, creates DNS records on DigitalOcean or Route53, and activates the plugins and theme.

Caching and publishing

Pages use Next.js ISR with cache tags per post type and post ID. WordPress triggers on-demand revalidation on save, a deploy-hook plugin can trigger Vercel builds on publish, and a cache warmer pre-renders key routes after each deploy.

Design tokens

Scripts pull variables from the Figma API and compile them into typed CSS custom properties, keeping design tokens in step with the design files without manual handoff.