client guides · 23 Jun 2020 ·Clock10 min

Choosing a Technology Stack for Web Application Development

Andrey Zanovski

Andrey Zanovski

Web Developer

tech stack for web development
Illustration by Amir Kerr

Imagine you have an idea for a startup or need a corporate web application. You meticulously calculated your functionality and already visualized your new app. You probably hired a contractor, identified the technical requirements, developed prototypes, and approved the design.

Now, as a business owner, you are distracted by the development of a marketing strategy, pricing models, and other essential tasks. And maybe, you have forgotten that the UI is just a cloak that hides a specific stack of technologies. Specifically, your technology stack provides your web application with reliability, security, performance, and fault tolerance. 

You don’t have to choose your tech stack yourself, but you must have a common understanding of what your web app is based upon.

It is okay for a tech stack to be picked by the development team, so don't worry if you don't have enough technical knowledge. However, you should make sure that your dev team has a complete understanding of your web app and business specifics. Don't forget to learn about each technology in your stack, and if you have some doubts, discuss them with your developers.

Before Choosing a Tech Stack for Your Web Application

First, you should understand how your application works so that you are able to communicate with your developers properly. Here, it is key to know that all web applications consist of a frontend and a backend. Next, we will simplify the frontend and backend components.

web app consist of a frontend and a backend
Image credit: Bluecoders

The frontend, or client-side, involves everything users see on their screens. The frontend receives data from the server, processes them and displays to the user. Further, this part of the application provides the ability to interact with the application interface and processes user actions. 

The backend is the server-side of your app. This part of the application stores all necessary information, then structures and processes this data by the request of the client application.

The server side isn’t visible to users, but it powers the client side, just as a power station generates electricity for your house.

In this article, we will share the most popularly-used tech stacks used in 2020. Please note that we will only be referencing a small portion of all tech stack solutions. If your development teams suggest a tech stack not listed here, please consider their recommendation because that tech stack might be the best solution for you.

Technologies for Frontend Development

Here are the major frontend technology stack components:

  • HTML (Hypertext Markup Language) defines the structure of the information presented in the browser.
  • CSS (Cascading Style Sheets) is a style sheet language that describes the look and formatting of a document written in HTML. 
  • JavaScript is a scripting language that runs in the browser and makes the page interactive.

Frontend Frameworks

Frontend frameworks are packages with prewritten, standardized code structured in files and folders. They provide developers with a foundation of pretested, functional code to build on along with the ability to change the final design. If you look at JavaScript frameworks, there is a field of fierce competition, the leaders being Angular, React and Vue.

When choosing a JavaScript framework, your team's experience will matter most, but you should also take into account the framework’s popularity. Often, more popular technologies have communities that offer ready-made solutions, solve and document problems, and have more experienced users. All of the frameworks in the graph below are widespread and have large communities.

Frameworks downloads in past 2 years
Frameworks downloads in past 2 years. Source: npm trends

Do you need a server-side rendering (SSR) for your web app? If your application is a closed system that should not be indexed by a search engine, a single-page app (SPA) developed on any of the above frameworks is an excellent option.

However, if the application is indexed and search traffic is essential, you will require SSR. An increasing number of search engines identify SPAs, but many SEO experts believe that search bots and SPAs do not work together predictably and recommend using SSR. If you need to choose a technology to enable SSR, then our recommendation is Next.js.

Technologies for Backend Development

The backend part of the development stack includes more components, and there are many more options to choose from here. Backend works behind the scenes and is invisible to users, but it forms the engine that drives the application and implements its business logic.

All backend tech stacks include the following main parts:

  • Operating system in which the development is done.
  • Web server processing requests from the browser and returning the corresponding content.
  • Database storing the app data.
  • Programming language used to create the app code.
  • Web development framework for faster and easier development.

Programming Languages

Let's take PopularitY of Programming Language (PYPL) Index rating which is created by analyzing how often language tutorials are searched on Google. The more a language tutorial is examined, the more popular the language is assumed to be. Next, let's look at some of the top-rated languages according to the PYPL Index:

Python

Python is the top-ranked language, and its popularity has recently been snowballing. It is applicable almost everywhere from web to desktop programs. Development within Python is high-speed and high-quality. 

Additionally, Python has various ready-made libraries. Python is considered the best language for machine learning and BigData, which will likely allow Python to maintain its popularity.

Popular Python frameworks: Django (48K GitHub Stars) and Flask (50K GitHub Stars).

PHP 

PHP is a scripting language that is very popular in backend development. Many content management systems (CMSs) are written in PHP.

Popular PHP frameworks: Symfony (23k GitHub Stars) and Laravel (58k GitHub Stars).

JavaScript (Node.js)

Surprised? Yes, JavaScript is also used on the backend. Node.js is a JavaScript runtime environment built on Chrome's V8 JavaScript engine.

Last year, Node.js celebrated its 10 years anniversary. Over the past 10 years, Node.js has gained recognition among programmers and continues to gain popularity.

Popular JavaScript backend frameworks: express.js (48K GitHub Stars), Koa (29K GitHub Stars), and Hapi (12K GitHub Stars).

Go 

Go is a compiled multithreaded language developed by Google. According to Rob Pike, "Go was designed to solve real-world problems that arise when developing software at Google.”

Once built, programs written in Go are binary files that do not demand any language-dependent runtime environment. While part of the community says Go has everything you need, the other part still uses frameworks for backend development.

Popular Go frameworks: Gin (37k GitHub Stars) and BeeGo (23k GitHub Stars).

Java

Java, like Python, has a wide scope of application. You can use Java to develop Android apps, desktop programs, and backend servers.

Popular Java frameworks: Spring and others.

Other Languages

There are many backend programming language options, such as C# (.NET Framework), Ruby (Ruby on Rails), and others. If your development team suggests a solution not mentioned on this list, do not panic, just take the time to learn about the proposed language. 

Databases

Now that we discussed programming languages, we need to figure out where to store all the necessary data. Below, here is Stack Overflow’s database ratings.

Stack Overflow’s database ratings by popularity
Stack Overflow’s database ratings by popularity, 2019

When choosing your databases, you first need to know about their categories. All accessible databases can be divided into several types:

Relational Databases 

Relational databases are exceptional for developing financial applications and applications where data security is critical. These databases meet the requirements of ACID (atomicity, consistency, isolation, durability), which guarantees the integrity of the executed transactions and the safety of all changes made by a successful transaction.

All data is structured and corresponds to a specific type. If the structure of your data changes often, look in the direction of NoSQL databases.

Popular relational databases: MySQL, PostgreSQL, MS-SQL, and MariaDB.

Document-oriented Databases

Document-oriented database management systems (DBMSs) focus on flexibility, speed, and scalability. By using a document-oriented database, you can store and process unstructured data without predefined types.

Additionally, they do not use SQL standards, so they are often called NoSQL databases. Each database implements its own query language for working with data. 

MongoDB, an example of a document-oriented database, added multi-document ACID transactions in its 4.0 version. Now, MongoDB offers not only flexibility and speed but also guarantees data integrity.

Popular document-oriented databases: MongoDB and DynamoDB.

Caching System

Caching system reduces server lag and relieves the database of heavy loads during peaks in traffic by serving previously used and accessed data. Without the caching system, web apps are often sluggish and offer poor site performance.

The most popular caching systems: Redis and Memcached.

Redis, a popular in-memory data structure store, can provide sub-millisecond response times, ensuring fast performance of high-load applications. Redis is often applied in game development, IoT, and financial apps. 

Web Server

The web server's task is to accept HTTP requests from clients (i.e. web browser, mobile app), forward them to a specific program, and return the HTTP response.

Most used web servers: Nginx and Apache.

Other Technologies 

In addition to all of the above, other technologies may be involved in your project. For example: 

  • RabbitMQ is a broker for exchanging messages between your services.
  • Docker is used for containerizing and automating the deployment of your app. 
  • Elasticsearch document-based data storage and retrieval tool tailored to storing and rapidly retrieving information.

What concerns the operating system, your server will most likely have an OS from the Unix-like family (for example, Ubuntu), but Windows is also possible if your project has specific requirements related with Microsoft products.

What to Consider When Choosing a Tech Stack

Above, we’ve listed various technologies. At this point, you may be thinking, "Okay, I understand that there are a lot of technologies, but which one should I choose for my project?" 

choice of Tech Stack

Your answer will vary by project, as all projects are unique and have specific requirements. You can use several different programming languages and databases within the same project. For example, it would be reasonable if your primary database is PostgreSQL, you store statistics in MongoDB, and apply Redis for caches.

It is simply impossible to answer the above question without familiarizing yourself with the requirement specification and having an idea about the project. However, it's worth paying attention to some general criteria mentioned below.

Project Size and Complexity

For small web applications without complex logic, like landing pages or MVPs, ready-made CMS platforms may be suitable. Choosing an off-the-shelf solution, you save a lot of time and money on the development, but you lose flexibility and functionality. 

If you have a medium-sized (online stores, financial, and enterprise apps) or large (social networks and marketplaces) web application solving non-trivial tasks, then you need to develop an app from scratch using programming languages ​​and frameworks.

Development Team and Budget

There is always the possibility that you will need to hire or replace employees during a project, so you need to think twice about your tech stack before you start development. 

As for costs, it is important to have a general idea of your project budget. In terms of employee costs, let's take a quick look at salaries associated with certain technologies in Stack Overflow.

programming languages with the highest salaries
What languages are associated with the highest salaries worldwide, 2019

Dev Community and Documentation

As we mentioned previously, the more popular the language or framework, the more extensive the community of developers. The more prominent and active the community around the language, the more ready-made solutions and tools exist. 

In a nutshell, popular technologies will have more widely available solutions for non-standard tasks and allow for comfortable, faster, and better development. In the long run, more popularity means you could easily maintain the product in the future.

Possibility of Integrating With Other Solutions

It is usually the case that a project relies on interactions with the application programming interface (API) of third-party services. The presence of a software development kit (SDK) for such services dramatically speeds up and simplifies development.

Please note that SDKs are not available for all popular languages. Therefore, you should pay attention to the documentation of the services used, which languages they have an SDK for, and how complicated development would be without an SDK.

Time to Market

We strongly recommend that you don’t rush development. However, if your deadline plays an important role in your project’s development, then you should make your deadline clear to developers so they can choose an appropriate tech stack that favors development speed.

In this case, you don't need to choose C# or Java because projects that use these languages take a longer time to develop. On the other hand, projects built with PHP or JavaScript can be developed at a quicker pace. 

Third-party integrations will help to add functionality without writing it from scratch. Sticking to a popular technology will also save time on seeking out developers. And to top it all off, well-documented technologies facilitate the development of some features.

Remember, any high-quality project takes time. Using technologies that require less development time may cause the quality of the project to suffer.

Tech Stacks Behind Popular Web Apps

Let's take a look at the stacks that are at the core of some popular web applications that have proved their performance.

  • eBay a global e-commerce store.
Tech Stacks of ebay
  • Wikipedia a multilingual online encyclopedia.
Tech Stacks of wikipedia
  • Facebook the world’s biggest social network.
Tech Stacks of facebook
  • Airbnb an online marketplace which lets people rent out their properties or spare rooms to guests.
Tech Stacks of airbnb
  • Pinterest a social network aimed at helping people share and find new interests.
Tech Stacks of pinterest
  • Reddit a popular news aggregator and discussion platform.
Tech Stacks of reddit
  • Slack a business communication platform.
Tech Stacks of slack

Technology Stack at Orangesoft

At Orangesoft, we have found a perfect technology stack for our projects, uniting the best from the web app development. Our tech stack helps us solve all our tasks and ensures quality and speedy development process. 

We use JavaScript and React.js on the frontend, and we use Symfony (PHP) and Node.js on the backend. As for databases, we use MySQL, PostgreSQL, and MongoDB. 

Tech stack at Orangesoft - development app
Tech stack at Orangesoft

If you are uncertain about the tech stack that you want to use for your project, you can always book our free consultation. From there, all you have to do is describe your project and technical specifications. Our specialists will do the research for you and send you a proposal detailing the best options that you can use to transform your vision into reality.

Rate this article!

(23 ratings, average: 4.95 out of 5)

red-title-line
Insights
Latest Articles
orangesoft

Orangesoft is one of the Best Mobile Game Development Companies of 2020

28 Sep 2020time 2 min
client guides

How to Publish an Android App on Google Play Store: A Step-by-Step Guide

21 Sep 2020time 8 min