9 min read
Dec 17, 2020
Insights

What Is a Tech Stack and How Do you Choose The Right One?

Planning to develop a software or mobile app for your business? Learn about the underlying elements used to make your application.

G.M.
Gitanjali MariaSr. Content Analyst

You’ll often hear developers talk about a tech stack when building software applications. They may say that adding certain features to your app isn’t possible with your current tech stack or that your website is slow because of your tech stack.

If these frequent references to the term “tech stack” have left you puzzled, this article is for you. We’ve explained what a tech stack is, how it’s different from—or similar to—a software stack, what is its importance, and how to choose the right one for your business. We’ve also shared the example of a social media giant that revamped its tech stack to become more customer-friendly.

Group 3@1x Created with Sketch.

What is a tech stack?

A tech or technology stack, also called a solution stack, is the set of technologies used to build and run software applications. It includes the web frameworks, programming languages, servers, operating systems, databases, etc., involved in developing and running a web or mobile app. 

For instance, if you’ve built a web application (e.g., a website) using programming language Python and hosted it on an Apache web server, then Python and Apache are the elements of your website’s tech stack.

Two parts of a tech stack

Every technology stack can be divided into two parts:

  • Client side (front end): It refers to the components customers directly interact with or view on their screens. HTML, CSS, and JavaScript are a few examples of front-end technologies. They help design your website’s structure, add formatting elements, and introduce interactive components (e.g., social media buttons, animation buttons), respectively. 

  • Server side (back end): It consists of the technology components customers don’t interact with or see but are necessary for the client-side technologies to work. Programming languages such as PHP, web frameworks such as Django, and servers such as Apache are all a part of back-end development.

*Note: Refer to the appendix for the definitions of common tech stack components.

Server-side and client-side components of a tech stack

Components of a tech stack (Source)

Group 3@1x Created with Sketch.

What is a software stack?

A software stack is a subset of a technology stack and includes only the software components used to build an application. Programming languages, coding frameworks, operating systems, middleware, web servers, and installable files form the software stack. Similar to a tech stack, a software stack has server- and client-side elements.

When you use cloud-based services such as Azure to meet your application’s infrastructure needs, they also become a part of the software stack. In such cases, there is hardly any distinction between your tech stack and software stack.

Tech stack vs. software stack

Tech stack vs. software stack

Group 3@1x Created with Sketch.

3 commonly used tech stacks

You don’t need to build your tech stack from scratch. Here are some popular ready-to-use stacks to save you time and effort. 

1. LAMP

This stack includes the Linux operating system, Apache server, MySQL database, and PHP programming language. All the components are open source; thus, you can customize the stack easily. For instance, you can use Python instead of PHP and keep the other elements the same. The LAMP stack is commonly used to build web applications that can handle dynamic content—i.e., web content that changes according to user characteristics such as in-session behavior, previous interaction data, and preferences.

2. MEAN

The MEAN stack has the MongoDB database, Express.js server, AngularJS framework, and Node.js runtime environment. It allows you to easily scale from a minimum viable product (MVP) to a full-scale product, given the same programming language (JavaScript) is used during all app development stages. It’s suitable for applications such as calendars, maps, workflow management systems, and news aggregation sites.

3. MERN

The primary difference between the MERN and MEAN stacks is that the former uses React instead of Angular as the web framework. This makes it slightly more difficult to work with but offers the benefit of high-quality applications and interactive user interfaces (UIs). Unlike Angular, which has a predefined framework, React allows developers to tweak the codes for creating customized UI elements.

Group 3@1x Created with Sketch.

Tech stacks used in popular applications

Here are the tech stacks of some popular web applications to help you understand the kind of output features and UI experiences you can expect from different tech stack combinations.

Tech stack elements Airbnb Pinterest Uber
Programming language Java, Ruby Python, Java, Go Python, Java, Go, Objective-C
Framework Rails Django, JavaScript MVC Node.js, Apache Thrift
Database MySQL, Hadoop, Amazon RDS MySQL, HBase, Memcached, Hadoop, Redis MySQL, MongoDB, Redis, PostgreSQL
Server NGINX NGINX NGINX
Group 3@1x Created with Sketch.

Why is your tech stack important?

Your app developer will repeatedly tell you choosing the right tech stack is important. Here are some reasons why they say so:

Determines your app’s scalability

Your tech stack is akin to the foundation and girders of a building. Just like they determine the strength of the building and what further modifications it can support, your tech stack decides whether you can add more features to your application, improve its speed, or reduce its size for easier download.

Influences your app’s integration capabilities

Your software should be able to integrate with other third-party applications to offer a full range of features. For instance, if you’re building a payroll management app, it should integrate with human resources (HR) apps. Java, C#, .NET, and NGINX and Apache web servers are some tech stack elements that support easy integration. 

Affects how much your app will cost

Your tech stack choice influences your app development costs. Cost of tech tools and developer compensation directly translate into your app development expenses. For example, developing an app in PHP is less costly than building one in Java or Python, considering the lower developer salaries for PHP programmers.

Group 3@1x Created with Sketch.

How to choose the right tech stack

There is no standard way to choose a tech stack. Your choice will depend on your project’s needs, time to market, and security and scalability requirements. It will also vary based on whether you’re developing a web or mobile app. 

Here are five things to consider when choosing a tech stack.

Factors to consider when buying a tech stack

Despite evaluating the above factors and choosing the right tech stack, you may, at times, have to modify or even rebuild your stack to keep up with changing consumer preferences (e.g., videos and dynamic content) or advancements in app development technology

Case story: Facebook rebuilt its tech stack to meet changing tech and user preferences

When launched in 2004, facebook.com was a PHP website. Over the next decade and a half, the company’s tech team added new layers of technology to the original code to provide users various interactive features. These changes, however, slowed down the site and made maintenance harder. Moreover, some of the new features the team wanted to add, such as “the dark mode,” were difficult to incorporate. This forced Facebook’s tech team to relook its original tech stack to enhance the UI as well as improve its performance. The team decided to completely rebuild its tech stack. In the new stack, it used React, Relay, GraphQL, and JavaScript besides other elements. The overhaul not only improved the speed of Facebook’s website but also allowed it to add new features.

Click here to read more about Facebook’s tech stack.

Group 3@1x Created with Sketch.

Tips to select your tech stack

Today, having a website and/or mobile app is an absolute necessity for your business. And if you're building one for the first time, it can get complicated, technical, or beyond your grasp (at times!). Here are some handy tips for you:

  • Use tried-and-tested tech stacks: Instead of building a tech stack from scratch, look for ready-made stacks that match your project requirements, integration needs, and resource constraints.

  • Build an MVP first: Don’t try to build a full-fledged app or service in one go. First, build a prototype or an MVP that supports the most essential features. Test it with users and then decide on developing a full-function application.

  • Seek help in community forums: Community forums such as GitHub and SourceForge can answer queries around any roadblocks you may face when using a ready-made tech stack. You can also seek freelance developers to build your web or mobile application at a low cost.

Prefer no-code tools for building apps?

Appendix

Definitions of some common components of a tech stack.

  • Programming language: A computer language that programmers or developers use to write codes that run an app. E.g., Java, C, C++, Python

  • Web framework: A standard way to build and deploy web applications on the internet.

  • Database: Hardware and software tools that help organize and store data in a structured manner.

  • Web servers: Hardware (computer systems) and software (server software) that help process web requests and display website or app content.

  • Integrated development environment (IDE): A software application that provides all the needed resources for developers to build a program. 

  • Runtime environment: Software codes, libraries, and other files that support the running or working of program codes.

  • Middleware: Software that connects applications with users’ operating systems. 

  • Operating system: A system software that manages a computer’s hardware and software components and helps them run smoothly. E.g., Microsoft Windows, Linux, macOS

  • Hypertext markup language (HTML): A system that is used to define the structure of the content on a web page.

  • Cascading style sheets (CSS): A mechanism that helps enhance the presentation of content in an HTML framework.

Back to top