October 2, 2023
In today’s fast-paced digital landscape, it's crucial to select the right tech stack (combination of technologies) that will help your tech startup grow and scale efficiently. In this blog post we break down the ins and outs of each of the main layers and show you the results from talking to over 200 tech startups about what technologies they use. Our goal is to help you on the way to choosing the right tech stack for your startup.
A technology stack is a set of technologies, programming languages, and software products that are used together to create a web, mobile, or desktop application.
So, why is it called a stack? Imagine a stack of pancakes (sorry, I'm hungry) - each pancake makes up a different layer or piece of technology. In a tech stack, each layer is responsible for something different. Take for example the front-end component of your stack - this is the technology that users will interact with, another layer might be the backend which is responsible for computation and data storage. Each layer of the stack provides a crucial function to your application.
In a tech stack you can have many layers and as you get more nuanced use cases those layers can grow. However, most startup tech stacks are comprised of four parts:
We talked to over 200 startups and found that the vast majority are using PERN (PostgreSQL, Express, React and Node.js). Hang tight, we'll break down the programming languages and components of this stack later.
In this next section we'll break down each layer and offer guidance on the pros and cons of each technology.
The database is a crucial element in your startup tech stack. The architecture of the database can make a dramatic difference depending on which you choose.
When people talk about databases you'll usually hear them talk about a SQL database or MongoDB. When people refer to a SQL database they are referring to a relational database (see below) that uses SQL such as PostgreSQL or MySQL. SQL-based databases have long been the industry standard in web applications and remain so today. In a SQL database, information is stored in tables that relate to one another.
MongoDB is a very different no-SQL database that does not store data relationally the way SQL does. Instead of tables, MongoDB stores data in a JSON format.
Relational databases derive their power from being able to store enormous amounts of information and retrieve it quickly. Imagine a database with one monster table with millions of columns of information - it would be exceptionally slow to load and access data from. Relational databases offer us the ability to look up data from multiple tables using keys.
For example, imagine a database with two tables. One table includes a record of purchases, the other includes a record of customers. The purchases table includes the item description, the date that item was bought, the quantity bought and a customer ID. The customer table includes the customer name, phone number, email and other relevant contact information. If you wanted to know the phone number of the person who purchased a specific item, you'd tell the relational database to match the customer ID from the purchases table and retrieve the relevant contact info.
MongoDB is a NoSQL database that represents a shift away from traditional relational databases. Unlike SQL databases, which store data in tables using a schema, MongoDB uses a dynamic schema. This means you can store records without first defining the structure, such as the fields or the types of their values. Data in MongoDB is stored in BSON documents, which are binary JSON (JavaScript Object Notation) formats. These documents are stored in collections, which you can think of as equivalent to tables in relational databases.
Each document can have a different number of fields, the content and size of each document can be different from each other, and the data structure can be changed over time. This flexible and dynamic approach is particularly useful when dealing with data that is diverse and doesn't fit neatly into a table, or when the structure is likely to change.
If you're dealing with transactions or structured data, SQL is for you. If you're dealing with unstructured or dynamic data, then MongoDB may be the right choice. That being said, MongoDB is very adaptable and has been gaining in popularity.
You could spend all week (or even year) reading about the pros and cons of MongoDB and SQL. So we want to simplify things for you: we've seen lately that PostgresSQL is beating out all other SQL databases and MongoDB in popularity among startups. To learn more about the differences between it and its rival MySQL check out this article. In other words PostgreSQL is a safe bet.
That being said, if you're familiar with MongoDB and know it would meet your needs, then the MERN tech stack may be worth considering (MERN is the same tech stack as PERN just with MongoDB instead of PostgreSQL).
A backend framework, often referred to as a server-side framework, is a crucial part of your tech stack that acts as the backbone of your web application. It provides the analysis and logic to make your application function properly, handling requests from the user interface, processing these requests, interacting with the database if necessary, and sending a response back to the user interface.
The debate here is typically between Javascript-based (e.g. Next.js or Express.js) and Python-based back-end frameworks (e.g. Django or Flask). Javascript is the world's most popular programming language and is the industry favorite for numerous reasons. However, Python is typically the language of choice when it comes to all things AI and we've seen it gaining in popularity due to the explosion in AI-related startups.
The Python vs Javascript debate is extremely nuanced. For technical details check out this article. In a nutshell though, Javascript frameworks are popular due to their speed and scalability; however, if you're looking to undertake a massive project with numerous calculations and machine learning, then Python might be what you need.
In our study we found that Javascript frameworks were the clear winner with Express.js being the crowd favorite. Unless your product will be incorporating AI or machine learning Express.js is a safe bet for your startup.
Other frameworks based upon Java, PHP and Ruby have been around for a while, but are not nearly as popular as Javascript or Python-based frameworks when it comes to startup tech stacks.
The front end library is the part of your application that creates the interface your user will interact with (buttons, images, text). There are several front-end libraries (most of them based on Javascript) that simplify, organize and speed up user interface creation.
React is an extremely popular JavaScript-based library that was originally developed by Facebook. There are several reasons for its popularity:
These are just some of the reasons why React is a popular choice for front-end development today. It was also the clear winner in our survey. React is definitely a safe bet for startups.
While we have seen PERN (PostgreSQL, Express, React, Node) come out as the clear favorite among the 200 startups we surveyed, it's still important to be aware of other popular technology stacks that have been around for a while.
The Flutter technology stack, developed by Google, is designed to be suitable for mobile app-based startups and utilizes the Dart programming language. Flutter is best suited for B2C and C2C projects where the primary focus is on mobile.
Ruby on Rails, often referred to as RoR, is a server-side web application framework written in the Ruby programming language. It provides default structures for databases, web services, and web pages, and encourages the use of web standards such as JSON or XML for data transfer, and HTML, CSS, and JavaScript for display and user interfacing.
RoR is admired for its simplicity and speed, making it a go-to choice for rapid application development. It's robust, secure, and dependable, which makes it a reliable choice for many startups. Furthermore, it boasts a large and supportive community of developers, ensuring that assistance is always within reach.
However, it's important to note that RoR may not be the best choice for large-scale applications, as it can be inefficient and challenging to scale. Also, it can be more labor-intensive from a coding perspective which may mean it's the wrong tech stack for you. Despite these challenges, many startups still choose RoR over PERN due to its flexibility and ease of use.
The LAMP has been around for a long time, so it's worth mentioning here. It is comprised of of:
It's clear that with so many tech stacks available there's a lot to consider when choosing one! We recommend asking an expert, like a fractional CMO or Software Architect before embarking on a decision that will certainly define the future of your infrastructure! The best developers already have jobs and are expensive - however, with us you can hire them fractionally! There's no better way to get high-value advice on your tech stack!
In conclusion, selecting the best tech stack for your startup is a crucial decision that can greatly impact the success of your business. By considering factors such as scalability, cost, security, and ease of use, and drawing inspiration from the tech stacks used by successful companies, you can make well-informed decisions when selecting the stack that's right for you. Additionally, don't go it alone! When making a decision this critical, you should absolutely get expert help.