HTML, CSS and our vanishing industry entry points

There is something remarkable about the fact that, with everything we have created in the past 20 years or so, I can still take a complete beginner and teach them to build a simple webpage with HTML and CSS, in a day. We don’t need to talk about tools or frameworks, learn how to make a pull request or drag vast amounts of code onto our computer via npm to make that start. We just need a text editor and a few hours. This is how we make things show up on a webpage .

This is activating.


So I don’t know a whole lot about frameworks.

I modernized my HTML and CSS skills a bit this past fall. I am however mostly a HTML/CSS initiate (without any strong needs to become a novice or journeyman in such skills). I mainly just wanna be able to throw up small static sites as needed.

I’ve mostly rewritten my blag’s hugo theme to be javascriptless and frameworkless. (It’s not public yet, might be my project this weekend to finish that off). I don’t have a strong opinion on frameworks, its just important to me that I might be able to maintain my HTML code in a clean minimalistic way and they seem to get in the way of that for my small scale use.

From what I can tell, they seem to over complicate things quite a bit; and I’ve seen them deployed in abundance where normal vanilla HTML/CSS would do. (Which is a small part of what this article is getting at; as crops of people are being trained to use frameworks in lieu of the basics.)

So what im getting at, is that I kinda checked out of web stuff for a long while. Why do we got frameworks? What do they actually do well? How ought they actually be used?


I don’t know any frameworks. I mean, I know ecosystems, so like, I’d say I am a WordPress expert, at that level of abstraction. But I know neither PHP nor jQuery or whatever else makes up WordPress. I do know template tags! :slight_smile:

I think this is a complex medley of influences and drives crashing together, and my theory is that people don’t look to history for context.

I read the other day a “recovering brogrammer” was agreeing with something someone said about always being told “no” and then creating systems where they get to say “no”. And someone responded, “well, I’ve never looked up to other people for coding/life validation, so I didn’t care if they said yes or no”, which while harsh is the point I support.

It takes all kinds, and I think that the last 20 years of front-end web explosion is humanity having fun before it has to figure this out for reals. And those folks needing a herd to learn from, in the absence of institutions that support long term sustainable practices, we get speed tribes ramping over novel frameworks left and right.

I’m posting this here because I’m about to launch a new effort to clean up these existing services and build a knowledge engineering team, to realize the network I want, while teaching the world how one organization works together.

Part of that is equalizing our individual knowledge pools, intentionally.

For instance, “frameworks”. I imagine there is a spectrum of usefulness, of which the criteria are never accurately used to weigh them against each other. React vs Vue vs JellyRollBrowserFunTime, which one has a community welcoming to marginalized people? If I don’t own a computer, and I join your forums, will I feel heartbreak or delight?

I’m walking a fine line here, because I’ve been tracking these things. For decades. And a large part of that I had no computer, no home, no access. And when I was able to get online, I wished I had a hint of where cool, sharing people were. Without paying, because I could never afford anything. So my inherent bias about questioning things slants a certain way.

If we build a cooperative team, we can leverage all our perspectives. And we might find out HTML and CSS is enough. :slight_smile:


Background on me:

After doing not very modern PHP for a long while, in 2009 I started using CodeIgniter framework, and leaned into it heavily.

For me, the value was in forcing me to use a MVC approach to web app design. My code became more segmented, in a good way, and less spaghetti-ish. Also all the helper functions saved a lot of time.

Around 2013 I started to use Laravel for the day job and personal projects. I thought I needed to, for professional development reasons, and I was mostly right. My greatest benefit to learning Laravel though was getting familiar with the Composer package management system.

What I didn’t like about Laravel right out of the gate was it’s heaviness. It’s just not fast, and has an incredible amount of dependencies that it pulls in from composer.

But back to composer; what I started doing for projects was just use composer to snap in the couple libraries I might need for X project. This has great value to me, because if it’s a very small project, or something huge, I can use the same database package, for instance. (Medoo if you’re curious).

I am gaining mastery at a thing I can use across the project size spectrum. Generally with frameworks, they all have “their” way of doing a thing, or routing, form support, etc. So you learn all these different methods.

I think that’s what make frameworks in general a little dangerous. You become a developer of that framework, not the web.

Frameworks also seem popular because they all have some sort of ORM model, and “fun” ways of accessing your data. It really seems for people who don’t know databases, and it’s unfortunate. You could learn how to write good queries, or spend almost as much time learning how to do it in a specific framework.

I can see values in a framework when you are working on a project with > 2 people, and skillsets vary. Then, having a structured (not by you) way to organize your code, etc has some value.

That’s my two cents, anyway.


a few hours ago, one of our apprentices asked me, “did you ever just write html/css in industry, like we did our first week? or are we basically never doing that again, and that was for learning?”

i said “no. it was for learning. you can’t skip it, but soon we’ll be using libraries and frameworks and templating engines. today, you already had your server-side javascript assemble a string of html. the browser doesn’t care–it just gets the html and renders it, just like it did when you wrote raw html–but from here on out it’s gonna get more and more abstracted.”

this was the code i was referring to:

from today’s topic outline/lesson thing

i can’t believe i just had that conversation a few hours ago and now i see this.

i am activated by this article, too. thank you for posting your thoughts everybody.

I’d use arcane shorthand if I had to code on an iPhone, too! :stuck_out_tongue_winking_eye:

I have a different answer, but I don’t work in the same industry, nor get the same jobs. But I also work in real world conditions and answer to paying clients, so…

Regardless of what you produce, the more you understand any given element or attribute, the easier it will be to understand what is happening when something goes bad. Also when something is going good.

If I didn’t have my foundation, I couldn’t have continued to learn on my own: in this way I was very fortunate to learn HTML when it was still broken, hardly anything worked, and layouts were tables. Because it was so borked, you only had to remember a handful of rules to make a website work in every browser.

At some point I was really excited about AJAX, and that I call it AJAX should date that timeframe. But then shiny web apps and mobile apps and node happened and honestly, capitalism and folks with more money than sense or exposure to actual problems in the world went and ruined JavaScript by actively marketing it as the front-end OS that we’ve been waiting for, while it is actually the hollow shell shaped like a broken promise and a like of surveillance…


On a lighter point: HTML and CSS are fun, and can make neat things! All basically text. It is a playful way to build scaffolding. :slight_smile:

You know, sometimes I write like I don’t use a modern web browser, or have seen a webpage load in the last decade. I have. I know my stuff. It just isn’t interesting. I’d write more about the crap I see, but there isn’t anything useful to say about it. Ooh, that sidebar animated, and I can read all five years of this blog without a single reload! It’s bullshit. And it is also used by people trying to take from me: my attention, my money, my time. I do not have them to give, and when I do, they are not on offer.

I disclaim this here, since I am writing through a web app (Discourse) and am designing a MediaWiki-based knowledge engine, because it finally clicked the “wiki” part of MediaWiki isn’t the interesting part, but I can do loads by building my own JavaScript knowledge navigator and curating data at scale… I don’t think any big company did us any favors, and I intend to separate the wheat from the chaff. If a technology, framework, method or org looks at actual problems and tries to solve them, I’m supportive. Not interested in a faster animated widget.



1 Like

@sudocurse cares!!!


From the original article:

yes, in 2019 they are going to have to move on quickly to the tools and techniques that will make them employable, if that is their aim

This makes me think a lot about how View Source has declined as a cool learning tool since everything’s delivered as complexity-packed code soup (and not just on crappy enterprise sites!). The old structure/presentation/behavior model is apparently dead.

Maybe HTML just wasn’t built for the wiggly ways we scoot around data between computers and elements and properties and streams and bindings these days. If you just want to make a static page there’s countless tools that will do that for you; if you want to know more about what’s happening under the hood perhaps concepts like “floats” and “put <head> at the top and your <scripts> at the bottom” are just kind of boilerplate that’s in the way.

Okay, obviously HTML isn’t getting replaced by something better anytime soon, but I guess my point is that the curve gets real steep once you go from learning how to make static sites to making web apps. View Source-ing a JSX app will only get you the output, not the automation that made it. A lot of app concepts like <templates> and custom HTML elements existed but have barely been in spec for 2 years.

sidebar, everyone uses chrome it’s like people forgot IE6 even happened


So if I follow the conversation correctly and barring more literal things like WebAssembly; HTML and CSS have moved culturally from being the primary programming language targets, to some sort of low level display runtime for browsers; and their relationship to these frameworks is kinda like assembly’s relationship to a higher level language like C/C++? though largely by convention and not for much technical reason in use cases like static hypertext documents, it’s just not worth the time to pay attention to the lower level display runtime anymore when you might be called upon to do more interactive or app things?


That data gets more depressing everyday and for no worthwhile reason. I found out a few weeks ago that I might be one of the last Firefox users amongst all staff and faculty on my university campus. We used to have a large population, partially my doing. I use to make sure we shipped it as the default browser on all workstations. C’est la vie.

I sometimes pause and wonder what webkit or blink derivative ill be stuck using if this trend continues and Firefox stops being maintained.

1 Like

I think that is the implication. I’m not buying it 100%, but I’ve also not figured out how to check this assumption. In either case I’m prepared to teach folks HTML and CSS.

1 Like

Well ill be right there with you. It’s got its uses but web as application framework is also not how im inclined to spend my time. Ive just got other runtimes and use cases im more interested in.