When Chris asked me to write about “one thing I learned about building websites this year” I admit my brain immediately went through a list of techniques and CSS properties I started using this year. But then I paused. Other people can write about that much better than I can. What’s something that I specifically have learned?
Then I realized that I’ve been “learning” the same lesson for the last five years, yet I keep falling into the same trap time and time again. I always think that far more people are using the latest, coolest technology out there than there really are.
I think most of you feel the same. If you follow Twitter or any web development blog, it’s almost like everyone is using the latest and the greatest. And the latest and the greatest also seems to change weekly, if not daily. “What’s your favorite React state library? Well it’s Redux, no wait MobX, no wait Unstated, no wait Recoil, no wait, Jotai, no wait, Valtio, no wait…” The constant change can be exhausting, like you’re always falling behind compared to your peers.
But that’s not remotely the case. The vast majority of web developers use “boring” or “old” technology. That makes sense intuitively: most of the stuff on the web today was built …before today. When that needs to be maintained, it’s in the technologies that were in use when it was built. And herein lies the crux: We all maintain old things more than we build new things.

So you feel like everyone else gets to play with cool stuff like “auto-reloading serverless static deploys” while you’re still updating your
That web dev you admire that’s all-in on Tailwind 2.0? They’re still maintaining a Bootstrap 2.3 website. That JavaScript guru that switches state libraries every week? They’re still maintaining a huge application using Flow. New just gets talked about more often.
I could mention the percentage of websites that run WordPress versus the percentage of sites that run React, but that’s not really the point. If you spend time in the web dev community, it feels like one is old-hat and the other isn’t.
Old can be solid, it can be dependable and it can be predictable. There are times where it’s fun to try new stuff and tell people about it, and there’s times to reach` for the technology you know so you can get stuff done.
My guess is that I’ll keep thinking, “Well no one really uses $foo
anymore,” well into 2021 and beyond—it’s such an automatic thought. But I have to keep reminding myself that it’s wrong. For whatever value of $foo
, there are tons of people still using it, and it’s still valuable.
Preach, brother!
:: stares at his Bootstrap 2.x site ::
VBS anyone? Working on internal app which is a .Net wrapper for an asp.Net SPA written half in JS and half in VBS this monster is over 20 years old :O
So true. I recently used a new brand new framework to make a web app at work.
I regret that decision bitterly.
New tech looks so simple in the demos, but you find the limitations when you try to implement something big with it.
Next time I’ll wait for version 3 or 4 before I try a new framework for something else than playing around.
From my perspective I agree with a twist: The projects I maintain are build with old stuff. The new ‘from-scratch’ projects I build use new technologies.
I didn’t build most of the old projects I get to maintain. Not that I have a great wish to do anything with wordpress… From a learners point of view, I learn just enough about the old stuff to maintain them. Thus, when learning new stuff for new projects, I have not much knowledge as a foundation to build on. Like, I learn react with some state library that was chosen for the project at hand, without knowing how state was dealt with before. Or a step further – I learn react without learning plain JS before. This was the same with jQuery or $foo over the past years.
This is where the imposter syndrome can emerge from: Not having learned from the beginning. Not having the time or opportunity to pick up.
But so this post doesn’t sound all too whiny – I’m surprised time and again of how well one can get on with such seemingly insufficient knowledge. Just doesn’t feel very high standart.
This is the article I needed to see today. Thank you! I took a couple years off from development after 20 years in the industry. I came back feeling completely overwhelmed by everything new that had come out in that time, but you are absolutely correct. The stats don’t lie. We’re still using the same technologies and I can refocus my efforts there instead of having a daily panic attack. Thank you so much!
That reminds me of KnockoutJS. I love it because itś simple and they don’t rewrite it every two years.
Yep. This week I’m working on a new PWA using MobX and deploying servless functions on Netlify with FaunaDB collections… while maintaining an old site using Apache Server-side Includes (x-bit hack) and Perl with flat-file “databases” on the backend. Guess which feels easier and more manageable?
Perhaps the article should be retitled, “Ode to Technical Debt”
This article makes me think of a really weird project I had where my team used Vue.js with PHP for half of the website… then I finished it with plain JavaScript, and then decided to use mPDF and PHPMailer (both use PHP) to finish it off again. Looking back, I could have easily benefitted from using Vue.js where I used vanilla JS. Many of my friends were using React to create every application they made, but I just sat back and said “That’s right”. I’m using PHP!
This is a great perspective. I had my head down developing PHP websites with a bit of Foundation or Bootstrap on top for years and I hadn’t noticed the world had gone JS mad! I’ve since learned a lot about it, and I agree with Ed’s view that greenfield sites would be built with new technology, whilst of course there is nothing wrong at all with reliable (and stable) existing technology.
I absolutely love PHP for its speed, and I build my backends exclusively in PHP. I would use .NET if I had a .NET hosting company, but the ones I trust are a PHP/Perl provider and I won’t switch that (yet).
Front end, though, it is important (I’ve learned) to have your head up. I’ve built a webapp using Angular (the clear winner for enterprise apps in my mind) and a microsite using Tailwind CSS and Alpine.js. I can see how React is attractive as well, but I’ll leave that to the masses. ;-)
It’s a good point that old means tested, reliable and trustworthy. Don’t cast it out if it’s still doing a job, I’d say. Thanks for putting your take out there, Kilian.
I just ranted about this in a SaaS founders group on FB. Every week there are questions about what new buzz-worthy stack/tech to use. My answer was, whatever one gets your MVP to market the fastest and at the most reasonable cost… even if it’s PHP!! (btw, PHP is a perfectly good language with WIDE support)
There are business reasons for these kinds of choices. It’s critical that entrepreneurs fail fast and move on if necessary. After you hit it big, you’ll have plenty of time and money to rebuild your software into a work of art on the latest and most talked-about tech. Until then, just get the job done. Invest your time in overall architecture and best practices so future work is easier. Ignore the shamers, the snobs and the elites.
I like to cut myself on the bleeding edge.
Boring tech is WAY underrated! The JS ecosystem seems to constantly churn out new ways of doing things that got figured out 10+ years ago using traditional stacks. Remember when NOSQL was the new coolness, until people realized there was a reason SQL developed the way it did for 30+ years.
The level of tooling and deployment complexity in JS oriented projects hardly seems to warrant the small speed gains. Plus, how is this stuff going to be maintained? Or is it assumed we just chuck it and rebuild after 2years?
I just built an app using VueJS and Node/Express backend. It is actually pretty nice tech. Slick interface. Fast. But a lot of times I look at the project and think…, “maybe I should have just done this in Django, or Laravel”, haha.