A Headless Website for a Label Printing Brand
Products and articles published without a deploy
Read case studyA company brand site serves two groups with different needs. The marketing team wants to publish and update content without waiting for a developer. Visitors want pages that load fast, look consistent, and never break. A traditional WordPress theme serves the first group well and often struggles with the second. A headless setup splits the job: WordPress manages the content, and a Next.js frontend delivers it.
This note describes the setup I run for our brand site, why I chose it, and where it costs more than it gives back. Headless is not always the better choice, and I want to be fair to both sides.
/cms/. Editors use it to create and manage posts and pages, and that is all it does./frontend/, running on Node.js inside a Docker container.WordPress as a content source
I keep WordPress to a single job.
/cms/, write posts, upload media, and publish. They already know the editor, so the team needed almost no training.The connector plugin
This is the glue between the two systems, and most of the custom logic lives here.
Next.js as the delivery layer
Next.js renders everything a visitor sees.
Docker and Supervisor on RunCloud
RunCloud does not manage Node.js apps the way it manages PHP apps, so I fill that gap myself.
/cms/ as usual.Editors don’t need to know any of this. They click publish, and within seconds the live site shows the change, with no full rebuild and no deployment.
Content changes go out through revalidation, and code changes go out through scripts. Keeping those two paths separate is one of the main benefits of this setup.
Release
The release script builds the frontend into a new, versioned release directory. Each release is self-contained, so building a new version never touches the one serving traffic.
Deploy
The deploy script points the active release at the new build and restarts the process through Supervisor. The switch is quick, and if the build failed, the current version keeps running.
Rollback
Previous releases stay on the server. Rolling back means pointing at the last known good release and restarting: one command, no rebuild. I decided how to roll back before any incident happened, which is the principle from A Practical Deployment Pipeline.
Cleanup
Only a limited number of old releases are kept, so disk usage stays predictable and there is still enough history to roll back safely.
/cms/ area can be locked down further.| Situation | Headless | Traditional WordPress |
|---|---|---|
| Performance and brand control matter | Strong fit | Possible, with effort |
| Editors rely on page builders | Poor fit | Strong fit |
| A developer maintains the site | Strong fit | Strong fit |
| No technical owner available | Risky | Safer |
| Frequent code changes and releases | Strong fit | Harder to manage safely |
For our brand site the trade was worth it. We have a technical owner, the design has to stay tightly controlled, and the content is mostly posts and pages rather than complex page building.
Keep WordPress boring
Install only the plugins that support content editing. Every extra plugin is one more thing to update, and it may not even make sense in a headless setup.
Treat the connector plugin as a product
Version it, document its endpoints, and log its revalidation calls. When content looks stale, those logs are the first place to look.
Revalidate relationships as well as pages
A new post affects more than its own URL. Home page sections, listing pages, and category pages usually need to refresh too.
Test rollback before you need it
A rollback script that has never run is only a hope. Run it on a quiet day so it is familiar when it matters.
Monitor both sides
Uptime checks on the public site, error tracking in Next.js, and basic health checks on /cms/ surface problems before visitors or editors report them.
A headless setup is more work than a classic WordPress site, and I would not recommend it to every company. When the brand, performance, and release safety matter and someone owns the technical side, editors keep a tool they know and visitors get a faster, more reliable site.
Products and articles published without a deploy
Read case studyNext step
Tell me what you have and what you need. I usually reply within one working day with how I'd approach it.