And yet, these companies did quite well, became quite successful and profitable businesses in their niche - and when they did hit the hard limits of technical debt, they had the money to hire professionals. Unfortunately there are limits to what professionals can do with just-about-working spaghetti code and bizarre database schemas, when you can't just throw away and rewrite software that's powering a growing business that needs more new features than it needs a cleaner codebase, but nonetheless they got much further than many SaaS companies started by developers with well thought out architecture, beautiful code and the latest tech stack.
The reason they were successful is that the founders lived and breathed their niche and understood the problems and their customers. They saw opportunities as well as risks and blind alleys. The tech was just a means to that end, not the end in of itself. That said, before people say "the tech doesn't matter", I think that had they the technical skills to match their domain knowledge and connections, they would have been far more successful and would not have hit those hard limits that slowed them down and perhaps prevented them from expanding further and seizing on new opportunities. It's interesting that some of the real "unicorns" of the last few decades have had founders/leaders with strong technical chops - your Gates and Zuckerbergs. They might not have been the best in their field, but they had that relatively rare combo of technical ability and business sense.
I think what OP was referring to is that what you describe is, ironically, the antithesis of "simple."
Your "simple" solution requires knowledge of 5 separate frameworks/services, and having an understanding of the philosophy underpinning them and the alternatives to be confident those tools will be sufficient for your use case.
And like you said, that doesn't even include monitoring, security, testing, etc. etc.
And don't even get me started on all the tools you'll need to actually get users to visit your site after you build it (transactional email, marketing email, analytics, social media scheduling, SEO and its toolchain like Ahrefs and moz, etc).
Keep it simple. Just learn these 27 different things. Simple!
Yes, spot on.
Nonsense! I've been around since the 90s too and let me tell you - you don't need any of the trendy new crap to make a successful app. You don't need a single page JS app except in very specific circumstances. You don't need microservices or serverless or map/reduce or Cassandra or NoSQL or nodejs or ML or any of it.
Ignore all that noise, go pick up "Agile Web Development with Rails 6" and just do it. Haters gonna hate but if it's good enough for github it's very probably good enough for you.
Therefore I think you should start with PHP. Write PHP -> upload -> done.
If PHP is unpopular advice, maybe this is even more unpopular: you might want to check out the ProcessWire CMS. Yes, this is a CMS, but since the front-end and back-end are separated it can be used as framework for a lot of things. It has a lot of (free) addons, like support for Twig, making developing even complex systems very simple.
And ofcourse you can use frameworks like Symfony and Laravel.
But to get rid of the rocket science I believe PHP is the way to go because it makes deployments so much easier.
And if the time comes your product is a success you can always hire rocket scientists who can help you to move on.
Curious about what more contemporary stuff you've experimented with vs. what you're comfortable with. The pop cycle is real.
For instance, one of yesterday's top posts was about htmx, which is cool enough, but it's one of those things that's very opinionated about bundling content, presentation, and behavior, and which advocates for hypertext over consumer-neutral serialization formats. All of that was de rigueur not so long ago, and then heresy in the '00s. Yet, it works, and you can drop in it and get it working in like 2 minutes.
I feel the same way as I suppose you do about a lot of popular toolchains for web work. Babel and webpack are beasts and definitely do remind me of some of the performance art-level stuff with autoconf and make.
I work on some of this stuff in my spare time. Always happy to hear anecdotes.
I think there's a pretty solid group of people using "old" tech to build modern interfaces.
A lot of justification for things like React is around project management for teams. For an indie developer, there are simpler things like Unpoly, Stimulus/Turbolinks, jQuery, AlpineJS, and Intercooler/HTMX.
Give it a shot!
[0] https://www.bannerbear.com/
Don't be worried about "Scale" either, seriously. VC funded unicorns care about scale because they have million dollar budgets going into advertising, the reality for most bootstrapped SaaS and even mid-sized businesses is that a simple dedicated host is going to serve you well. Depends on the type of business I suppose, but if you need quick bursting scale then you'll probably know it.
The bleeding edge is a mess. You want to pick only the things you absolutely need from it, and if you can't figure out what it is you need, you don't need anything but what you've got and life is good. Many of these technologies come at a cost to overall complexity, and for big companies they will have enough developers to specialize in all the different technologies going on.
When I'm working with clients we can often use some new fangled technologies to help in really specific areas. But the vast, vast, vast majority of clients just need you to send their user a gosh darn web page and process some forms. Render your template, cache the thing and send it over. Instant low latency web experience, hoo-ray we're all happy.
Curious as I've been debating about which direction to steer a friend who is a designer trying their build their own product. He's played around with python, and liked it, so I was going to suggest flask (since most of online tutorials start there).
But I've also heard good things about PHP/Laravel for beginners.
If you used Perl, mod_perl exists and CGI.pm is available in CPAN. The CGI protocol is as viable as it ever was (though of course there are new and improved alternatives).
There are a bunch of minimal stylesheets out there that get you some mobile compatibility, and no IE 6/early Firefox nightmares, so your code can actually be simpler than ever.
Besides that, Perl allows forward references and has moderately strong type checking. And mod_perl is the best-performing language accelerator.
I cringe whenever I have to downgrade to Python.