06 Jun 2020
A few months back, I came across an article by a guy named Matt Reyer on dev.to, detailing how the modern web a.k.a the JavaScript cesspool that we all love and adore, was/is less performant and causing problems on weak internet connections. The article was since then removed from dev.to, but duckduckgo found it for us.
The article stuck with me for the longest time, because it wasn't a simple blame and exit write-up. He built a webapp without any javascript called Slimvoice to prove his point.
Out of curiosity, I measured the performance of a webapp I was working on, with low internet speeds. Oh! the shame.
Slimvoice and the article were well thought of and hit home on my programmer psyche. But I went on with making JavaScript powered webapps anyway!
A few weeks went by and I saw another article. This time by Nikita Prokopov, the man who gave the world Fira Code. He had this to say about modern software development.
That hit a nerve. I had to try building something with the points I gathered from Matt's article and prove to myself that I had what it took to be a craftsman. But what should I build?
Then covid-19 happened! Internet connectivity became a nightmare during peak hours. Some of the sites that I frequent, didn't even load. But the thing that tripped me off was freeCodeCamp's forums/NodeBB throwing console errors, and stopped loading, when I wanted to visit a page that I got from a google search result. A forum discussion is just plain text! Why can't I see plain text?
**cough**
Medium.And with that I had decided to make a minimal, front-end JavaScript-free forum(BBS) software as an exercise in my quest to become a better software craftsman.
After a few weeks of hacking in April, by the first week of May, I released liteBB to the wild. It is my attempt to build something that is more than a typical webapp.
Its built with two main components - Node.js and SQLite3, ergo the name liteBB. See the entire dependency tree here.
The project is in no way complete and not something that is even close to NodeBB, but it's mine and I've learned quite a few things building it.
GET
and POST
on a <form>
's action
.In a nut-shell,
admin
creates boards
.user
.user
can create posts
under a board
.user
can reply
to posts
.See a demo over at https://litebb.aktsbot.in/.
The source code is up on github. I'll be adding in a few things in the coming days like completing the admin dashboard and moving to a new look, once I learn enough ninja css. Right now, it has Slimvoice's style with ubuntu's color accents. If you, my dear reader is interested in helping out, send me a PR.
Have I attained pure programmer bliss by building this? ofcourse not! But it was an experience nonetheless!
Am I going to start building JavaScript free frontends for every project? Absolutely no, but instead of using JavaScript libraries and frameworks to build out everything, the article and the experience from building liteBB has taught me to question first and then choose. That in itself is enlightenment for me.
The things that we as programmers, incorporate into our projects will have effects on our users. So, Choose, Measure and Refactor what goes into our product.
Before we depart, please give the webmaster, a read and pay mind to what your heart is feeling afterwards.
Happy Hacking & have a great day!