9 July, 2020
Software developers and companies are always refining their web development stacks based on both market trends and their own experience in order to improve their software development processes and the final product – a web application. But what exactly are web development stacks? Why does choosing the right web development stack for your app matter so much? How to pick the right one? Let’s review web development stack trends in 2020.
Before we get to the actual web development stacks, let’s make sure we know what we are actually talking about.
What is a web development stack?
The term is quite liberally used online, but generally speaking, web development stack is a set of tools typically used in tandem to develop web apps. A stack can (and is meant to) be used repeatedly to develop web applications. Individual developers as well as software companies often specialize in a specific stack or several stacks.
As a potential client of a software company or someone interested in developing a new web or mobile app, you should definitely be interested in the web development stack of the company you wish to work with.
It refers to the technologies they specialize in and use together to develop new pieces of software.
A highly specialized web stack can exist within the constraints of frontend or backend development. That’s why we can talk about:
- Frontend web development stacks
Loosely defined set of frontend technologies often used together to make an app. They may include such types of software as frontend frameworks and libraries, package managers (used among others to quickly install all the dependencies of a given piece of software), build systems (to automate various tasks), testing tools, version control systems, caching tools, or deployment software. At TSH, frontend developers develop highly specialized frontend stacks that include many other low-level tools that work best when used together. There is no need to memorize them but if you are interested in this topic, you can always ask them yourself.
- Backend web development stacks
A collection of backend tools and technologies that developers tend to use in tandem. Much like with frontend, they can include many classes of software, including containerisation tools (e.g. Docker – you can use it to deploy your app more easily and scale it up), APIs (for the UI and developers to communicate with the system), databases, search engines (e.g. Elasticsearch), caching mechanisms or even DevOps tools.
- Full web development stacks
The details behind both frontend and backend stacks can very well be left for developers to worry about. From a strategic point of view, the most important choice is the one concerning your full development stack. That’s what we’re going to talk about from now on.
Refers to web technology sets that include all the essential parts of a modern app: the frontend framework, the backend solution and the database. These three are (most of the time) obligatory, but a stack can also sometimes include other elements, such as an application framework (e.g. Express for Node), or state management tool (e.g. Redux often used with React, which requires the help in large apps for better scalability). Sometimes, full web development stacks are abbreviated based on the technologies that comprise them. A good example would MEAN (Mongo, Express, Angular, Node), but any combination of technologies could potentially work together, regardless of whether they have a fancy abbreviation. For example, the three obligatory ingredients in the mix could be replaced by Vue or React (for Angular), Symfony (for Node), and MySQL (for MongoDB).
Typical essential ingredients of a full-stack in web development
Full web development stacks
Before we go over specific stacks popular in 2020, let’s find out more about the building blocks of the stack.
The frontend framework
First, let’s start with something a little counterintuitive. Many say that just because something is popular, it doesn’t mean that it’s good. While technically true, when it comes to frontend frameworks, popularity is usually the result of how good a given technology is.
Frontend technologies can also be used in mobile applications.
For example, using React Native makes it possible to share a lot of code (and save some time and effort in the process) between a React-based web app and a React Native-based mobile app – watch our latest webinar that covers React development for both web and mobile:
The backend solution
Just like in the case of frontend frameworks, popularity is a good measure of the solution’s viability. As a general rule, the more popular it is, the better support (e.g. helpful community, rich documentation, third-party extensions and tools) it offers. However, be wary of sudden spikes of popularity as factors in your decision. Once you choose a backend solution, it’s bound to stay with you for a long time – it is quite costly to convert to an entirely different language.
Speaking of programming languages, it’s worth it to know that today choosing a programming language is redundant. That’s because today pretty much all developers work with frameworks and the choice of a framework also determines the language. For example, Symfony or Laravel are written in PHP, Express is tied with Node, while Django or Flask entails the choice of Python as your backend language. When you already have a web app or website and reach out to a software company, make sure you can tell them what framework (including content management systems) was used to make it.
Every modern web or mobile application requires a database. The truth is that whichever specific database you choose is not that important. What you should know is whether it is:
- a relational database (such as SQL),
- or document-oriented database.
Relational databases tend to keep all the data in a very structuralized way, in which various data types are related to each other. Document-oriented databases offer a more loose structure. Some will argue strongly in favor of one of the solutions, but it largely depends on the kind of app you want to develop. If its data types naturally fall into easy to predict structures and relations, a relational database will be a better option if you don’t want to end up with a mess. On the other hand, if a large part of your data is highly unique and impossible to relate to each other, a relational database may require lots of tweaking to work well.
As your app gets more and more popular, your database may often end up being the single most valuable asset you have. You should pay a lot of attention to this issue right from the start.
Simplified relationship between different parts of the web application
Web development stacks in 2020
So what web development stacks are the most popular in 2020? A good source of this information is the latest Stack Overflow Developer Survey 2020.
When it comes to frontend frameworks, React comes out on top (well, technically it is jQuery, but it is more of a library rather than a full framework and it can be used together with any framework), with Angular and Vue not too far behind.
What about databases? According to the survey, MySQL, PostgreSQL, Microsoft SQL Server, SQLite and MongoDB are the most popular.
The annual Stack Overflow report provides a wealth of information on the trendiest web technologies
What is a full-stack developer? Are they still a thing in 2020?
Quite a lot of information, isn’t it? You might now wonder: “Wait, there are supposedly those ‘full-stack developers’. Does it mean that they can do all that described above?”. Well, not exactly.
These days full-stack development should be thought of in a little different way. They usually are experienced devs who worked as both frontend and backend developers and they have enough knowledge of both to use it to the benefit of the team, making it easier for the frontend and backend team to communicate with each other. Such devs are very valuable and at TSH they are often made tech leads or senior developers.
There are also individual freelance developers who take on whole projects by themselves. But this is only an option for relatively simple web development tasks, such as CMS-based websites and basic apps that can be made mostly from ready-made software. Large custom web applications are simply too complex and require too great a variety of skills and specializations for one person to develop in a reasonable amount of time.
How to choose the right web development stack?
The choice will ultimately be the result of discussions with your developers or the software company you’re going to work with, but there are some things you can do improve your chances of getting it right:
- Make sure to pick the right software company. Not sure how? Read this article on how to choose a software company.
- If you made your research diligently, you now have a partner you can discuss this topic with and follow their advice. If you already have an app, take their advice into consideration as well. Chances are that your stack may be in need of an update for various reasons, including scalability and technologies getting obsolete.
- Be informed at every stage of the process as much as you can – by improving your methodology of choosing the right developers and vendors, learning more about stacks and asking for advice. CTO of the software company you partner with should be a great source of high-level strategic information about web development stacks.
- React, Vue or Angular on the frontend.
- React Native, Android and iOS native technologies as well as Flutter for mobile development.
- PostgreSQL, MySQL or Mongo as databases.
- Various low-level frontend and backend stacks centered around React (including TSH’s own React starter for frontend toolset) or Docker (backend).
And many more! Want to learn more about what kind of technologies we use commonly, sometimes, only as an experiment, or try to avoid completely? Check our TSH Technology Radar. And if you have doubts about any of the technologies included in the radar, make sure to contact us!
Web development stacks – summary
Do you now feel more confident about the web stack issue? Let’s recap some of the most important points:
- Web development stacks are the technological basis of your app and the decision which stack to choose should be discussed thoroughly as undoing can be very costly and time-consuming.
- Full stacks should consist of at least: a frontend framework, backend solution and a database.
- Popularity is usually a good indicator of technology’s viability.
- Fullstack developers’ role in software development has significantly changed over the years. In large projects, they serve as a bridge between the frontend and backend team, rather than try to do everything themselves.
- The best way to choose the right stack is to find a good software development company and discuss it with them, taking in the information as well as providing all the business and technical information you have that can help make the right choice. At the end of the day, when you find a good technological partner, you will also find the right stack simply by following their advice.
If you think that The Software House could be the partner you seek, why don’t you try to contact us now? Initial consultations are free of charge.