It was that time of year again. We'd just pushed another wave of changes into production, all was going well and our customer seemed happy. Well, they were satisfied at the very least, but what enterprise customer is ever truly content with the state of their software? The next few days at my job were definitely going to be slow as the team reorients and decides on the next steps in the project. Normally, I take this time to learn something new. In previous work lulls, I've taken the opportunity to expand my horizons from the tech stack used at work to something new to me. But these have primarily focused on back-end tech since that is what I'm specialized in. I've fooled around in Rust, Go, and C++. There are things I appreciate about each language individually, but that is a story for another time. I thought about this lull in work, but I struggled to come up with anything that piqued my excitement, perhaps I'd end up just picking a back-end language and try my hand at creating a basic terminal application or something similar.
But then I saw [The Primeagean], react to an article from DHH about #nobuild. I hadn't worked in Javascript (or TypeScript) since I graduated 5 years ago when I determined back-end development was more for me. Then the thought hit me while watching the video, this is a perfect time to bring out my old website and see if I can't spruce it up and release it. I would be working on the front-end and the back-end and earn the title of full-stack developer. At the moment I had not committed to #nobuild, even though it is what inspired me to do a personal website development.
It was at this moment I got began to get familiar with the state of modern Javascript. Things seem to have changed quite a bit in the five years since I worked on the front-end. There was a lot of buzz about Angular in the government tech scene that seems to have died out now, in favor of React and other technologies. Speaking of React, there is so much complexity built into its ecosystem! There are bundlers, build systems, linters, testing frameworks, caches, and meta-programming frameworks, it's looking more like back-end every day!
Though tongue-in-cheek, the complexity of the modern Javascript ecosystem is quite high. As someone desperately out of practice, I needed something simple and straight-forward, I needed #nobuild. I think not having a build system speeds up some parts of relearning a language since you don't have to wait for changes to be reflected, just need to refresh the page. Also, not having a build system, bundler or things like that greatly simplified the space I was trying to learn. The only things on my website are blogs and static text, no need to spend so much time abstracting.
Even though my site is simple, I still needed some efficient DOM manipulation, so I decided to incorporate jQuery into my site. Yes, jQuery is still around. It is old tech in terms of internet years, but it was the perfect tool for the job. Lightweight, easy to understand, and provides functionality without forcing you to change the way you structure your files. The limited scope of the project, the instant feedback loop, and this being a solo development project, meant that a lot of the benefits of TypeScript weren't actually needed here. There is something rewarding about using the simplest tool for the job and getting it done.
I enjoyed making my site from Bootstrap and jQuery. I also feel it looks pretty snazzy for an end result, if I do say so myself. Looking back, I wouldn't change how I approach this problem and I'm confident that getting familiar with the bare bones of Javascript, rather than using TypeScript or other tools associated with React, will help in my future projects. Focusing on #nobuild, let me think about the problem at hand rather than getting caught up in learning all the toolings associated with front-end. Tools come and go far faster than languages, so learning the language fundamentals of Javascript will help in any tool have to master in the future. Looking forward, I am currently working on 2 separate web projects, one using React and one using htmx. Wish this back-end developer luck :)