What Is a Tech Stack? Building the Perfect Dev Toolkit

Written by Coursera Staff • Updated on

A tech stack refers to all of the technologies that a development project needs to function. Explore the components of a tech stack and tips on how to choose the best tech stack for your project.

[Feature Image] An aspiring developer researches tech stack uses and components as part of their coursework.

A tech stack refers to the full suite of tools that a development team uses to create a project, like a mobile app, website, or video game. This includes components from both the front end, also known as the design side or client side, and components from the back end, also known as the server side or technical side. If you are planning a development project, you will need a tech stack to support your work, and if you are planning a career as a software or other kind of developer, you will need a tech stack for your resume. Explore the components and options you have when putting together a tech stack. 

What is a tech stack?

A tech stack describes all of the technology you need to create a development project. In the past, tech stacks were fairly straightforward; whether you were designing an app, a game, a website, or something else, you could choose from a few different options to help with each technology. 

As companies began to use software-as-a-service models to offer technology via the cloud, developers started to have more options for which technology they would learn, list on their resume, and eventually deploy in their development projects. Advancements in cloud computing, artificial intelligence, and virtual reality, also increased the number of tools and technology you might choose from because software programs can be more complex and offer new kinds of functionality than they did before. 

Today, you have many different components and tools to choose from when creating a tech stack for your project or resume.

Tech stack components

If you are planning the tech stack for a development project, you’ll need to consider what tech you’ll use to perform all of the different tasks that the project will need to be functional. While this will depend wildly on what you are creating, a few key components of tech stacks include: 

  • Operating systems: You will need an environment to code in, such as Linux, iOS, or Android. 

  • Programming language: To add functionality to your project, you will need programming languages such as Java, Swift, Ruby, Python, Scala, C+, or Javascript.

  • User interface: You may need technology that supports the client side or design side and that end users will interact with, such as HTML and CSS or frameworks like Bootstrap, Tailwind, React, jQuery, or Ember.js. 

  • Frameworks: You will need back end frameworks to help provide the logic needed for common functions like allowing users to log into the website. Examples can include Django, Laravel, Spring, Express, and .NET. 

  • Runtime environment: You may need to select a runtime environment that the application you’re building will use to operate, allowing your app to run on multiple platforms. This may include Java Runtime Environment, Node.js, or Common Language Runtime. 

  • Servers: Your server will help you receive requests from users and interact with your database, as well as other tasks like load balancing, like Apache HTTP, Nginx, Azure, Cloudflare, Google Cloud, and AWS. 

  • Databases: You will need tech to help you store data and retrieve that data as needed, such as MongoDB, MySQL, Redshift, Snowflake, or Splunk. 

Common types of tech stacks

Tech stacks commonly help describe the technology used for a development project, like a website, video game, or mobile app. The concept isn’t isolated to development, though. Any professional who needs to use a suite of tools to perform their work will need a tech stack, or they need to at least choose the tools they will use in their work. For example, a college or university might use a tech stack to manage its curriculum, students, catalog, student retention, and more. A newsroom will need technology to manage its digital content, advertising, subscribers, and more. 

Within development projects, the range of tools and components you may need in your stack depends on the size, complexity, and functionality of your project. For example, some projects might require an AI tech stack, a cloud computing tech stack, or a VR tech stack. Learn more about full-stack, front-end, and back-end tech stacks. 

Full stack tech stack

A full-stack tech stack gives you the technology to work with both front-end and back-end technologies. If you pursue a full-stack tech stack while training, you’ll be in the position to work as a full-stack developer and perform a lot of different kinds of work for a website or development project. If you’re planning a tech stack for your project, you’ll need a full stack even if you don’t personally have all of those skills because a development project requires tech on both the client and server side. 

A few popular examples of a full stack tech stack include: 

  • LAMP stack: Linux, Apache, MySQL, and PHP 

  • MEAN stack: MongoDB, Express.js, Angular, and Node.js

  • MERN stack: MongoDB, Express.js, React, and Node.js 

  • MEVN stack: MongoDB, Express.js, Vue, and Node.js

  • Ruby on Rails: Ruby on Rails is considered a tech stack because it is a framework with integrations for all the other components of a tech stack, like JavaScript and CSS. 

Front-end tech stack

You will need a front-end tech stack to form the client side of your website, app, or game. The front-end tech stack can sometimes be more straightforward than the backend because websites typically use a few key programming languages—HTML, CSS, and Javascript—to create the user interface. You will also use frameworks and front-end libraries, such as Bootstrap, jQuery, Vue, React, Unity, or Angular, built on Javascript to add more interactivity and functionality to your project. You may also develop a front-end tech stack if you plan to become a front-end developer

Back-end tech stack 

You will need a back-end tech stack for the server-side or technical part of your development project. If you consider the components that you’ll need in your tech stack, you might see why the back-end can be more complicated than the front end. The exact stack and tools you will need depend on the functionality and type of program you’re building, but you should consider components like databases, servers, runtime environments, programming languages, and back-end frameworks. You may build a back-end tech stack of skills if you want to become a back-end developer

Choosing the right tech stack

Assembling a tech stack for your project or resume is important, and following a few guidelines can help you organize your options. 

If you have a development project that you need to determine a tech stack for, you can start by thinking about what the program is, what it will accomplish, and how users will interact with it. The tech you choose will support those goals without too much unnecessary functionality. You can also identify tech that you know you want in your stack and work backward to build a stack that complements that tech. You may also want to consider whether your tech stack will scale with your project, the cost of different technologies, and ease of use so that everyone on your team is comfortable using the technology. 

If you want to build a tech stack for your resume, it’s important to choose the right tech because the skills you have will affect the jobs you get. For example, if you develop a front-end tech stack but want to work as a full-stack developer, you will have skill gaps that you need to fill. In some cases, the tech stack that a company uses can give you insight into their company culture, which means that you can choose the tech stack you learn to subtly influence the company culture you’re qualified to work in. 

Build your tech stack on Coursera

A tech stack is a complete set of tools that you will need to do your work, whether you are determining the tech stack for a development project or choosing the skills you want to list on your resume. You can find courses, Professional Certificates, Specializations, and Guided Projects on Coursera to help you gain experience with the technology required for software development. 

To pursue your skills and a career as a full-stack developer, consider the IBM Full Stack Software Developer Professional Certificate. Or, you could specialize in the front-end with an option like the IBM Front-End Developer Professional Certificate. Or, if you want to work as a back-end developer, you can enroll in the IBM Back-End Development Professional Certificate

Keep reading

Updated on
Written by:

Editorial Team

Coursera’s editorial team is comprised of highly experienced professional editors, writers, and fact...

This content has been made available for informational purposes only. Learners are advised to conduct additional research to ensure that courses and other credentials pursued meet their personal, professional, and financial goals.