It's a hellscape if you want to DIY it end to end though, which OP's article covers very well. What he doesn't spend any time on is how long it takes to get a proper "Hello, World!" at yourdomain.com without you being warned about using an insecure website.
At a minimum in most cases you need: * a server, configured to serve your hello world and present your identity * domain name * DNS records pointed to your domain * SSL cert of some kind, probably issued by lets encrypt for something like this (creating a certificate authority is a project in itself) * reverse proxy if you are interested in serving over http+https
Each of these can be done rather quickly once you are familiar or blindly following a guide, but reasoning about what each part is doing is very time consuming.
Interestingly, both.
It’s very easy to make a basic website that more or less works.
It’s very hard to make a website that does anything well.
Mistakes that people make on very basic, static websites:
- Images not optimized, so page speeds are very slow. Bad for Google rankings (incl. Google Business Profile / Google My Business). Sometimes these images break the design, and this can look very unprofessional.
- Responsive design is either non-existent or super janky.
- Content is not presented with a focus on how the users will most likely want to interact with the available information. This includes simple things like phone number, address, and/or hours near the top of the page for B&M businesses. It also includes more complex things like clear page/site organization and navigation.
Many people who make these sites know that they are bad, but they aren’t willing to pay the thousands it would take (at least in the US) to get someone to do a simple 5-page brochure site right (assuming that they don’t get scammed).
The gap between easy-to-make junk and tougher-to-make jewels is currently quite large both in terms of skill required as well as potential cost.
It's also easier from a CSS perspective too, since flexbox and grid have taken all the stress away from designing traditional 3 column layouts, and making them work on multiple device sizes. No more floating divs for you this time!
But there's a difference between what's possible and what's expected, and I think that's where the confusion lies. If you want to make a 'web app' in the style of Google Maps or Gmail or Airbnb or Netflix or whatever else, then yeah you're gonna need to go down the long, somewhat confusing road of JavaScript frameworks and NPM and what not. And there are user expectations that a popular site will probably have many of the complex features that such frameworks enable, as well as a 'fancier' visual design than the sites of the 90s and early 00s.
So the skill floor has stayed the same, but the ceiling has risen tenfold, and that's where the complexity can come in.
But now, you do. At the basic level very little has changed to make any of these things automagically free. For example css has advanced a lot, but you actively have to know and use it to make things work, where as in the 90s you mostly did not have to do anything and nobody (neither search engines nor users) would care.
So I would argue the real world skill floor has risen by a lot, in a mix of increased user expectations and and google expectations. On the other hand there's a wave of (SaaS) tools to flatten it. I am not sure what that nets to.
I learned a few weeks ago that my ISP still does this. It’s a bit hidden in the depths of the customer portal, but it is there!
I feel this. My mom has been complaining to me lately that her email makes her reset her password every time she logs in. She's still using an ISP email account from a company that got merged into AT&T years ago, but she doesn't want to change it because it's the email everyone has. I looked into forwarding it to another email, but of course they charge a monthly subscription for that feature.
I was taken aback and delighted that they had a drag and drop directory enumerating your CSS and HTML files.
If you want to build Facebook, that's another kettle of fish.