The hosting story is WordPress's biggest moat and most JS CMS projects underestimate it. Though I'd argue the gap is narrowing - a Node app on a $5 VPS with PM2 is getting close to shared PHP hosting simplicity, and platforms like Railway and Fly have made deploys nearly painless. The real remaining barrier is that non-technical users can't self-manage a Node process the way they manage WordPress through cPanel.
What people also underestimate is the new power of the index.php that comes from the LLMs.
Tell claude to create a php backend to your portfolio html template, drag the generated file to the cheapest server, and you already have a custom CMS.