Most devs out there use overengineered and overcomplicated frameworks/tooling in the name of a perceived short-term boost in developer speed.
There's also the whole "resume driven development" trend, where if you want to be hireable, you more or less need to be able to use whatever is popular, for reasons outside of anyone's individual control. People's opinions about what they need will vary a whole bunch, from person to person, often based on what they're familiar with and what has or hasn't worked in the past.
For example, in my case that might be:
- Front end: something like Vue if you're doing SPA (subjectively: good to decouple front end from back end), React and Angular might be overkill with their complexity, maybe even JS instead of TS; throw in ready-made components with something like PrimeVue
- Back end: whatever boring language/runtime/platform you're familiar with and that let's you get things done, like PHP, Node, Python, Ruby, Java or C#; ideally something that has been around for a long time and has mature frameworks/libraries
- Communication: most likely RESTful APIs, because of how abundant they are and how good the tooling is; GraphQL never felt necessary for my workloads, gRPC felt a bit less easy to work with
- Storage: a traditional RDBMS like MySQL/MariaDB or PostgreSQL will take you really far; sometimes you can consider specialized solutions, like Redis, RabbitMQ, MinIO or even MongoDB, but only when you need to and even then something like Kafka might be too complicated
- Runtimes: OCI containers, with lightweight orchestration, I'm yet to run into circumstances where Docker Swarm or even Hashicorp Nomad aren't enough; K3s is great but many of the Kubernetes distros out there will be too complex, you can even do your own ingress with Nginx/Apache/Caddy and it's going to be really simple and discoverable (just a web server container on 80/443)
- Servers: if you go with OCI, you will be able to use even any regular VPS provider, get something like Ubuntu LTS, add unattended upgrades, maybe throw some Ansible playbooks into the mix and you're good
Why would I personally opt for a server running containers instead of just regular shared hosting with PHP?
Well, I've seen plenty of projects backed by cPanel and deciphering how sites are structured across the storage in the account has been a mess more often than not, migrating sites to different hosting has been problematic, performance has been challenging (a single bad SQL query slowing down 5 other sites), getting a local version up and running has been problematic, managing runtime versions and PHP extensions, and resource limits has been an issue. PHP frameworks like Laravel are more than okay (even something like Slim), but running PHP without containers is asking for issues, just a little bit worse than Java apps that don't package Tomcat inside of them.
At the end of the day, use whatever lets you iterate reasonably quickly - both now and in 6 months when you need to pick up the project again to make some further changes, and deploy them, or do some debugging.
Comments
There's also the whole "resume driven development" trend, where if you want to be hireable, you more or less need to be able to use whatever is popular, for reasons outside of anyone's individual control. People's opinions about what they need will vary a whole bunch, from person to person, often based on what they're familiar with and what has or hasn't worked in the past.
For example, in my case that might be:
Why would I personally opt for a server running containers instead of just regular shared hosting with PHP?Well, I've seen plenty of projects backed by cPanel and deciphering how sites are structured across the storage in the account has been a mess more often than not, migrating sites to different hosting has been problematic, performance has been challenging (a single bad SQL query slowing down 5 other sites), getting a local version up and running has been problematic, managing runtime versions and PHP extensions, and resource limits has been an issue. PHP frameworks like Laravel are more than okay (even something like Slim), but running PHP without containers is asking for issues, just a little bit worse than Java apps that don't package Tomcat inside of them.
At the end of the day, use whatever lets you iterate reasonably quickly - both now and in 6 months when you need to pick up the project again to make some further changes, and deploy them, or do some debugging.