In the past decade or so, the number of programming languages, frameworks, libraries, and other technologies has exploded. As a developer starting a new project, you don’t always know where you should begin. Each new technology claims to be the solution for all your programming and architectural woes and yet they all have their weak points.
So where do you start? If you’re anything like me, then you’ve probably spent countless hours researching technologies and building prototypes trying to find the optimal solution for the project you are about the embark on.
There is, however, a better solution and it’s called The Boring Stack. It is not a specific set of technologies, but rather an umbrella term used to describe whatever stack you as the developer or team of developers are most competent in.
Microsoft Copilot describes it as the following:
The Boring Stack is a term used to describe a set of technologies that developers are already familiar with and can use to build projects without having to learn new languages or frameworks. The idea is to focus on the end result and ship great products quickly, rather than spending time learning new tools. The Boring Stack is not a specific technology stack, but rather a concept that can be applied to any stack that developers are already comfortable with.The Boring Stack according to Microsoft Copilot
Of course, some languages and technologies are better than others at certain tasks, but unless you have an extremely specific use case, the idea of The Boring Stack is to just use whatever you’re most experienced in and can make the most progress with. Rather than spending precious time researching and building prototypes to test new technologies, you can instead spend that time actually building the product.
My Boring Stack
My first encounter with the term was when I read an article about it on a blog. The author was keen on playing with new technologies just like I am, but when it comes to production-quality software, he always resorted to what he knew and trusted the most: the .NET framework.
While I have dabbled with .NET technologies out of curiosity, I would certainly not even consider them for my own Boring Stack. Instead, I would immediately reach for a Node.js-based stack with TypeScript, Fastify and Sequelize for the backend.
For the frontend, I would absolutely go with SCSS and, depending on the project, React or a classic templating language like EJS or Nunjucks.
I recently wrote about why I’ve decided to switch to Angular from React for my personal projects, but I wouldn’t choose it for my Boring Stack. The reason is that I am simply too new to the framework and don’t have the experience to move nearly as quickly and surefootedly yet. For personal projects, I would choose it because I prefer it, but for professional projects I would probably go with React if I were choosing solely based on the idea of The Boring Stack. That will most likely change as I gain more experience, however.
I really like the idea of The Boring Stack. It provides a solid starting point for new projects without the hassle of having to search and test new technologies. Most developers tend to like new technologies and as such are constantly on the lookout for something new to dabble in. That is essential for the longevity of our careers, however, when starting a new project, it is important to take what you know best and use it to move quickly and efficiently.
That said, if you had asked me about my Boring Stack ten years ago, my answer would have been entirely different: PHP and the Symfony framework. Your Boring Stack will evolve over time as you get more familiar with new technologies which is vital so that both it and you stay up-to-date and relevant in the ever-evolving world of programming.
What would your Boring Stack be? What technologies would you choose if you were setting up a project for a new customer? Let me know in the comments below!