Normally, I don't tend to think about this anymore. I trust that the teams responsible for the frameworks I use put much more time in caring how they deal with the DOM on a webpage than I ever will. However, I am active in places like StackOverflow and Quora. Recently, on Quora I saw a question that I've seen many times, and that I've ignored just as many times:
Why should I learn (React / Angular / Vue / another framework or library)?
The other day when I read the first thing I said internally was "because most people don't want to have to deal with the DOM themselves." While that statement might be broadly correct, it occurs to me that I know plenty of people who can work in React or Vue or Angular, but who would absolutely have no idea how to build the same functionality in a framework-less world.
I had started writing a response when an idea hit me: "Instead of just telling them about how dealing with the DOM is annoying, just make a quick app that doesn't use anything outside of pure JS."
So, I did. I call the project "Vanilla Todo" and in it I have attempted to imagine myself as someone who is a recent entry into the world of web development, and that they are somehow unaware of the many frameworks and libraries that now live on the front end.
Each branch of Vanilla Todo will progress through stages that I myself can remember hitting when I was new to the web. The first branch is "version 1" or "I put this together in a craze and it works!". Each branch from there will modify the repository, both in code structure and in implementation, until such time that I (hope) a new user will understand why people have flocked to front-end frameworks.
The repository is still in it's earlier stages, with two branches being overall done, and I am working on others as we speak.
The link for the repository is gitlab.com/jhechtf/vanilla-todo.
I will be making posts to talk about each branch in a bit more detail, and possible things that people could do to try out different ways of dealing with the DOM.