BLOG
28 May 2020

How to Choose a Tech Stack for Your Next Project?

Tech

Every application that does not consist of tiny homemade software makes use of a few technologies. Your chosen options are responsible for each layer of a system’s architecture. These kinds of technologies selected for a solution refers to a project’s ‘tech stack’.

What is a Tech Stack: Building Blocks

Imagine you have tower made of Lego bricks. Each row represents one of the system layers. Each of them may consist of one or more bricks. The same applies to an application. You can choose more than one technology to meet the expectations of your solution.

When a system grows and grows,it becomes more difficult to change once you have selected a technology. It’s important to choose wisely at the beginning of your implementation.

Every team needs to make a decision, regarding which elements of a product are most important. They must also focus on choosing the right framework or technology for this layer.

However, any decision concerning the selecting of elements of a tech stack will impact the entire development process. It doesn’t matter if the application is web, mobile or desktop-based – each has their own tech stack.

In web apps, there are four main layers in which there are possibilities of selecting an element of a tech stack:

  1. Frontend
  2. Backend
  3. Database
  4. Environment

Selecting Components

Each segment has a variety of items to select.

1. Frontend

Frontend refers to the client-side part of the project. It’s quite probable that every web app uses HMTL, CSS and JavaScript to present content to the user. However, this isn’t mandatory. HTML + CSS are responsible for presenting our final product to the client. The application uses JavaScript to deploy and deliver content.

There are many HTML and CSS frameworks that solve the majority of the problems faced by programmers. Below is a list of the most popular:

  • Bootstrap
  • Materialize CSS
  • Bulma
  • Material UI

Each framework provides us with mechanisms, components, and rules. These all make working with visual presentations easier. To make your page responsive, then you need to add a framework to your stack that enables this option.

JavaScript has the highest number of frameworks of all programming languages. There exist legacy products, still used, but unsupported frameworks. An example is Knockout. See below for a list of consistently-developed and improved instances:

  • Angular
  • Vue.JS
  • React
  • Backbone

Of course, there are many others that programmers use. However, I have mentioned the most popular and coveted example.

2. Backend

Part of a system that is responsible for reading, writing, calculating and manipulating data is called the backend. It is possible to specify two things you can put into your tech stack. The first is the technology responsible for business logic. The second is one which enables connection with data.

Before you choose which backend technology will be delivered, you must select which programming language you wish to use. This selection narrows the number of useable frameworks. At this point, the most popular languages to choose for starting a new app development are:

  • Java
  • C#
  • Python

In those options, you can select several frameworks to wrap up your code; the most popular are respectively:

3. Database

The data layer of the system is usually a database. There are two types of database: relational and non-relational. In the first case, every piece of information sits in the columns of a table. Here, the data is arranged in rows. Between them, there are connections called relations. Four database engines cover most of the market:

  • Oracle
  • MySQL
  • MS SQL
  • Postgresql

The non-relational database uses several models to store data. The main ways to keep information in these kinds of databases are key-value pairs, documents or graphs. Systems used nowadays are most likely:

  • MongoDb
  • Redis
  • Cassandra
  • HBase

4. Environment

The last important thing to choose for our technological stack is an environment into which we will place everything. A few yours ago, the choice was simple. You needed to select a server supplier or buy/use your own server.

Now, more and more products migrate toward cloud services. Many developers choose the cloud to host their applications. The reason is it’s easily accessible, fast to configure and inexpensive for basic plans. The most popular cloud solutions are:

  • Microsoft Azure
  • Amazon Web Services
  • Google Cloud Platform

Web applications are not the only elements to have their own tech stacks. While developing mobile or desktop solutions, there also exist choices as to which technology should go into a stack.

Mobile apps will also probably include a backend, data and environment element. But you will need to select what we will use to make the app. For example, if you want to develop an Android app, you have to choose if you’re going to use Kotlin, Java or Xamarin.

With desktop apps, the situation will be a little bit different. In most cases, technology selected to present content to users will also be responsible for business logic. As a programming language, you can, for example, use Java or C# and as a technology Swing or WPF.

Choosing a Tech Stack

So, what’re the best possible selections for tech stack? There is no one answer. Many conditions have an impact on what you should or want to use.

It depends on your budget. Some technical solutions are not free and require payment. Maybe will be better to spend time on research to source a free, and appropriate service.

You should also consider the experience of yourteam members and their preferences. Every developer has their preferred technology with which they love working.

Sometimes there are specific legal limitations. In countries such as France, in some cases, sensitive personal data cannot be kept outside the country. Unfortunately, this excludes some cloud solutions.

Lastly, you should look at what you want to achieve with your future product. Some examples may not be good looking, fully responsive web apps. In that case, it still needs to be fast and secure. In this case, you should focus more on selecting backend technology and spend less time wondering about frontend.

The possibilities are endless and exciting. If your project needs a capable hand, then feel free to reach out.

Build your next project with awarded software developers


Author
Tomasz Karelus
Software Developer

Team Leader and Software Developer. Professionally connected with .Net and MVC applications. Speaking of his hobby he is interested in football and fishing.