Modern webdevelopment has gotten out of hand, frankly. You don't need hundreds of dependencies and node-modules just to get your `Hello World` up. All you need is an index.php
The name dependency says it all: you software depends on other software which in turn depends on other software. In node.js, to run a simple server-rendered page, you need at least Express or Fastify, which in turn load 30-35 sub-packages. Then you need a template engine like EJS, Pug or Handlebars. The sitution gets even worse when you want to use a 'modern' javascript framework like React. Now you're bringing in react, react-dom, @babel/core, @babel/preset-react, @babel/preset-env and Vite. Which all require regular updates or changes to the code you've written. Meanwhile the index.php has been chugging along nicely since 1999, serving that:
<?php echo "Hello World"; ?>
without any babysitting.
The js world is in contant innovation turmoil. I started a project for a client in Svelte 3 years ago, and I already had to rewrite the code twice: first from Sapper to Sveltekit, then to the new signals-syntax. I love Svelte, don't get me wrong, and part of this is down to choosing a framework that is relatively young. But in the end I rewrote the site in plain php and slapped HTMX on it, and to visitors and the client there is zero difference.
When you run many custom systems for clients like I do, that difference is massive though: no more unpaid hours of tweaking and bug-fixing for a site I was already paid for 3 years ago. Long-term stability and simplicity always win over the latest framework hype.