What is a Tech Stack and How to Choose One?
“Tech stack” is one of those phrases that gets thrown around a lot, but like most technical buzzwords, it’s not always clear what it means. If you ask someone about their stack, they might tell you what coding languages they use or what platforms they build in.
So, what does it really mean?
Read our guide to learn what a tech stack is and how to choose one for your next project.
What is a tech stack?
A tech stack is a set of technologies used to build a website, a web app, or a mobile app. It consists of two elements: the front end and the back end.
The front end is the client-side technology. It’s what users see when they interact with a website. Front-end development focuses on graphics, buttons, and how things behave when someone interacts with them.
If you think of development in more human terms, the front end is like your face and sense of style. It’s what people see when they look at you, but there’s a lot more to you than what people see.
Front-end tech stacks usually consist of three elements:
- HTML – Hypertext Markup Language (HTML) is used for structuring and placing content. Think of this as the framework that tells everything where to go.
- CSS – Cascading Style Sheets (CSS) determines how the content displays. It controls colors, fonts, layout, etc. Think of this as the paintbrush that tells everything how to look.
- JavaScript – Enables interactivity and enhances the functionality of a website or app. This is the part that tells everything what to do.
The back end is the server-side technology. It supports the inner workings of a website or app.
If the front end is your face and clothes, the back end is your skeleton, muscles, and organs.
These are the behind-the-scenes pieces that make the visible portions look and act the way they do.
The back end consists of a:
- Programming languages like JavaScript, PHP, or Python. A programming language is the type of code a developer will use to create your application.
- A framework like Ruby on Rails, Django, or Laravel. The framework is a set of components whose purpose is to simplify the development process.
- Database like MySQL, PostgreSQL, or MongoDB. This is where your code lives.
- A server like Apache, Nginx, or IIS. Your server is a computer program or a physical machine that stores, processes, and delivers (or serves) your coded content to users as a website or application.
The difference between web and mobile app tech stacks
Mobile app tech stacks use platform-oriented technologies like Kotlin for Android or Swift for iOS.
These technologies run mobile applications on specific platforms. To create an application that works on all devices, you will need to create two versions to work on both Apple and Android.
Desktop works differently. Unlike with mobile apps, you don’t need to download a web app to your device to use it.
Web app tech stacks use resources that are available in an internet browser. There are many internet browsers, and your tech stack should work with all of them. However, it’s wise to test your websites and online applications on all the most popular browsers to ensure it works the way you expect.
Why is your tech stack important?
Your tech stack determines what kind of app you can build. It also has an impact on what kind of engineers you hire. Developers specialize in specific technologies because there are too many for a single person to learn.
While it’s not impossible to change your stack mid-project, it’s a huge undertaking. That’s why deciding on a tech stack before starting any major work on your app is crucial.
What to consider when choosing a tech stack
- What type of project is it? Is this a project just for mobile? Do you need to build out your website?
- How big is the project? Consider the size of your project and scalability needs.
- What’s your budget? Look beyond initial development costs. Do you need to pay for training and ongoing maintenance?
- What’s your deadline? If you need to get to market fast, don’t choose complex technology.
- What are your security needs? Think about sensitive data and any industry requirements.
- Does your team have the right experience? You can adopt new technologies, but consider the learning curve and future recruiting needs.
Popular tech stacks
You don’t have to build from nothing. These popular tech stacks are excellent starting points.
LAMP
LAMP is one of the most popular tech stacks. It’s short for Linux, Apache, MySQL, PHP.
Each of LAMP’s layers is open-source and free to use.
It’s simple to modify this tech stack to fit your needs. For example, you could use Windows instead of Linux or Python instead of PHP.
MEAN
MEAN is short for MongoDB, Express.js, Angular.js, and NodeJS. It’s a popular tech stack for teams looking to build an app quickly.
MEAN is an end-to-end JavaScript stack. Because it’s end-to-end, you can use a single programming language throughout the entire stack. In other words, you can reuse code freely across your entire app.
All of MEAN’s layers are entirely free and open-source.
MERN
MERN is a variant of MEAN that uses React instead of Angular.js.
The integration of React gives this tech stack a powerful code library. It also allows for full-stack development. MEAN is a popular choice for building single-page apps with interactive user interfaces.
Examples of tech stacks
According to StackShare, these are the tech stacks Pinterest, Uber, and Airbnb use.
- Python
- Nginx
- React
- MySQL
- Redis
- Django
- Hadoop
- Qubole
Uber
- jQuery
- Python
- Node.js
- Nginx
- React
- Java
- MySQL
- Redis
- Kafka
- Go
- Swift
- Objective-C
- Backbone.js
Airbnb
- JavaScript
- Nginx
- React
- Java
- MySQL
- Redis
- Rails
Where to go from here
Your tech stack is a big decision. Talk to your lead engineer or work with a freelance developer to get into the details and make the right choice for your project.
To prepare for that conversation, here’s what you should do next:
- Write down your project specifications. Describe what you want to accomplish with as much detail as possible. If you can, try mapping a walkthrough of the user’s experience. Include a list of platforms where you want the finished project to be available. Decide what needs to be done immediately and what parts can be saved for future phases.
- Determine your budget. Figure out how much you can spend now, what you can budget for future phases of development, and what you can set aside for ongoing maintenance. If you need to hit specific revenue goals to continue future phases of development, be clear about that.
- Decide who’s building this project. Are you handling everything in-house, or is this something you’ll outsource? Are you willing to hire specialists so that someone on your team can own this project?
When you’re ready to start your build, these resources can help:
How to Write a Job Posting to Attract the Best Developers
Expert Advice to Help You Manage Your Software Team
The Ultimate Guide to Fantastic Team Communication
Read our full article on how to build a tech stack.
For more tips and advice to help you grow and manage your team, subscribe to the Hubstaff Blog.