Choosing the right technological stack is one of the most critical decisions in the development of a custom web application. It's not just about establishing the programming languages or frameworks to choose, but also about defining the set of tools determining performance, scalability and availability to evolve the project. To clarify this issue, we interviewed our CTO, Stefano Mancini, who shared the main criteria to be considered, the risks of a hasty choice and some good practices gained in the field. The result is a conversation that can be helpful to startups and first-time SMEs, as well as those who have to evaluate their web application's revision or evolution.
Can you briefly explain what is meant by technology stack in a web application?
When we talk about the ‘technology stack’ in the case of a web application, we are referring to the set of technologies that comprise it. It is a bit like the backbone of the project: it includes the database, which manages the data; the APIs, which enable communication between the various components; the frontend, which is the visible part that users interact with; and support systems such as the cache, which speed up performance. In practice, the stack is the toolbox that allows us to build and run a web application.
Why is it so important to carefully choose the technology stack from the early stages of a project?
Decisions made in the early stages of design have a huge impact on the future of the application. Choosing the right stack means ensuring that the app is robust, scalable and maintainable. A superficial choice can result in additional costs, delays and difficulties in evolution. It's a bit like building a house: if the foundations are not adequate, sooner or later problems will arise.
What are the main risks of choosing the wrong stack?
The risks manifest themselves on several levels:
Performance: a slow or unresponsive app loses users.
Costs: inadequate technologies lead to unexpected expenses, both for infrastructure and maintenance.
Maintainability: an unsuitable or overly niche stack makes it difficult to evolve the project and find competent developers.
What are the main factors to consider when selecting a technology stack?
Every project has its own unique characteristics, but there are some fundamental drivers:
The client's objectives: understand what results they want to achieve.
The expected number of users: an app intended for thousands of users requires different performance and scalability than an internal one.
The type of application: for example, an app that handles sensitive data will require higher levels of security.
How much do factors such as scalability, performance and security influence your choice?
They have a huge impact. Scalability, performance and security are not optional extras, but structural criteria: making the wrong choice can compromise the success of the project in the medium term.
How do budget and development timelines influence technology decisions?
Tremendously. The famous ‘project triangle’ applies: budget, time and quality. It is not always possible to optimise all three, so sometimes compromises have to be made. In certain cases, we consciously decide to take on a little technical debt (we talked about technical debt here) in order to meet deadlines, with the aim of resolving it later.
How important is the level of expertise of the internal team when choosing specific technologies?
It matters a great deal. There is no point in choosing a stack that is “perfect on paper” if the team does not have the skills to use it to its full potential. Technologies must also be calibrated to the skills available to enable the team to work quickly and efficiently.
Is it better to adapt the stack to existing skills or focus on new technologies and train the team?
It depends. If it is a critical application, we prefer to use established technologies that the team is already familiar with. But when the context allows, we can introduce some innovative technologies: it is an investment that brings benefits in the medium to long term, both in terms of know-how and competitiveness.
How can we manage the balance between established technologies and more innovative solutions?
Balancing is a case-by-case assessment. We consider the complexity of the application, the team that will work on it, and the concrete benefits that a new technology could bring. It is not about chasing trends but about understanding whether innovation brings real value.
How can future maintenance and project evolution be anticipated when choosing the stack?
When choosing technologies, we already think about how the app will evolve: will it be necessary to add features? Manage multiple users? Integrate external services? This leads us to prefer stacks that allow for agile changes and have good long-term support.
How important is it to evaluate the community, support and documentation surrounding a technology?
It is essential, I would say 100%. Technology without an active community, without up-to-date documentation or without support risks becoming a dead end.
How can you avoid getting stuck with outdated tech?
Constant updating is necessary. In our work, we make it a point to regularly monitor new trends and not be afraid to change when necessary. Sticking with outdated technologies is risky: it's like building on ground that is giving way beneath your feet.
Can you share any real-life examples where the choice of stack proved particularly successful?
One example is the MOVE project: by choosing a flexible, modern stack, we were able to build a robust, scalable app that is also intuitive for the end user. It was practical proof that making the right choice at the outset pays off in the long run.
What common mistakes do you see most often when choosing a technology stack?
I see two main ones:
Chasing the latest trend just because it's fashionable, without assessing its real usefulness.
Over-engineering: for example, designing microservices for an app that will be used by ten people, when a simple monolith would be more than enough.
What advice would you give to a start-up or SME that is about to develop its first custom web app?
The advice is: keep it simple, focus on a solid, well-documented stack, and collaborate with partners who can guide you in your choices. It is easy to be tempted by complicated solutions, but simplicity is often the key to success.