What is a technological stack and what are the criteria for selecting the right stack
By: Da Vinci Studio Software House
Tags: Programming Languages, Technology, Backend, Development, Frontend

What is front-end and back-end?

Front-end is everything that is visible and clickable on the page (it is also often called customer-side operations). A well designed front-end is useful and intuitive.

The most popular technologies for front-end:

HTML/HTML5 (page structuring),

CSS (Ostylation),

JavaScript (programming language),

Angular, React, Vue.js, jQuery etc. (front-end frameworks).

Back-end is everything that is in the invisible layer of the page, and what makes the page work (operations performed on the server side in browser-server connections, e.g. calculations, references to databases).

The most popular technologies for back-end:

Nginx, Apache (web servers),

C#, Java, PHP, Python, Ruby (programming languages),

back-end frameworks (Symfony, Node.js, .NET, Django, etc.),

Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Neo4j (databases),

AWS, Microsoft Azure, Google Cloud, Heroku (cloud infrastructures and services).

Selection of the technological stack from scratch

How to choose the right technological stack? It depends. The following criteria will help to clarify the matter.

Functional and non-functional requirements

Functional requirements are requirements relating to system operation. For example, the assumption that the user logs into the account by clicking on the appropriate button.

However, functional requirements are not the most important. Why?

Because it is the non-functional requirements that dictate the stack composition to a greater extent. For example, quality attributes such as speed, scalability or usability.

For example, what if a page has 10 important business functions if it works so slowly that the rejection rate will be 100%. Likewise, if a page records 1000% of average traffic — if it is not scalable, it will be overloaded and return an error.

Access to specialists

Choosing a technological stack is like buying an exclusive car.

If there is no service in your region that specializes in the repair of this car brand, there is no point in undertaking a “project”. In case of repair or overhaul, it would be pointless to go to a service centre on the other side of Europe.

Similarly, in a technological project. Giving the specialists a free hand in choosing the technological station, give them also requirements and some limitations. This will help to avoid a situation in which there is a lack of technology specialists in the target location of the development office.

Project size

The size and purpose of the project are the most important factors of choice. The bigger the project you plan, the bigger your stack will be.

Using the example of a small project like MVP (minimum viable product) or SPA (single-page application) you can choose Python + Django or Node.js + React. Why? Python is the third most popular language used in startups or companies like Google and Spotify. Django is a framework of ready-made components, which will allow you to build a product pragmatically and quickly. In order not to reinvent the wheel to build similar components, e.g. user authentication or uploading Django files will be perfect.

For larger projects, such as enterprise applications or large e-commerce, the technology stack will be much wider — to properly integrate and maintain application performance. In this case, you need multi-level programming languages and frameworks that behave appropriately for large data volumes.

Product Scalability

The product architecture should be scalable — this also helps to further develop and improve the product. Scalability is the ability of a system to maintain performance with a higher load, e.g. more visits to the site.

Imagine you are selling socks. For starters, the store’s assortment does not include many items. There is a login panel, available socks, a contact form and a tab about the company.

Horizontal scalability will ensure that the website works great on many devices and can cope with increased traffic (e.g. on Black Friday or before Christmas).

Vertical scalability will work if, as your business grows, you can add new functionality to your website or, for example, create a mobile application.

Consider choosing between Microsoft Azure and Amazon Web Services (AWS). The very responsiveness of the cloud support will allow for more flexibility.

Put the choice of technology stack in the hands of specialists

If you’re still confused about the idea of choosing a technology stack, don’t worry. It makes sense to use a more experienced technology company.

By putting your project in the hands of specialists: