Your theme does 6 jobs for free: routing, preview, SEO meta, canonical URLs, cache on save_post, plugins on the front. Cut the head off, and all 6 die. Now you rebuild them in a second app.
Two codebases drift. Rename one field in WordPress, and the frontend shows “undefined”. No error. No warning. Just wrong.
Classic wins: standard pages and posts, page builders, a small team, one website.
Headless earns it: a native app sharing the content, a highly interactive frontend, many frontends from one source, a team that owns JavaScript.
Still going headless? Contract first, or pay later:
- content model before any component
- your own namespace (
4wp/v1), not rawwp/v2in public - a bridge plugin, not the theme
- auth and preview up front
AI builds both. The wrong one is on you.
Go deeper
- Headless WordPress overview: Headless WordPress
- The whole series: Headless WordPress