The Ultimate Guide to Choosing the Best Tech Stack for Startups in 2023

Find the right tech stack for your startup

Oct 2, 2023

Pancakes representing a company's technology stack
Pancakes representing a company's technology stack

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.


What is a tech stack?

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.


Layers of a Tech Stack

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:

  1. Database (such as PostgreSQL or MongoDB) - stores your data

  2. Back-End Framework (such as Express) - performs business logic on your data

  3. Front-End Library (such as React) - builds the user interface that your clients will interact with

  4. Scripting Language or Runtime Environment (such as Node.js or PHP) - runs scripts and other operations



TL;DR - Spoiler Most Startups Are Using PERN

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.



Guide to Choosing the Right Layers

man considering two different choices

In this next section we'll break down each layer and offer guidance on the pros and cons of each technology.



Database

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.



MongoDB or SQL

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.



SQL-based (Relational)

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.



NoSQL Databases (MongoDB)

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.



MongoDB vs SQL

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.



The Most Popular Database

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).



Back-End Framework

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.



Python vs Javascript

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

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.



Front-End Library

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 - the Industry Standard

React is an extremely popular JavaScript-based library that was originally developed by Facebook. There are several reasons for its popularity:

  1. Component-Based Architecture: React promotes the use of components, which are reusable and combine to build complex UIs. This makes code easier to manage and boosts productivity.

  2. Fast: React uses a virtual DOM (Document Object Model), which optimizes rendering and improves app performance. When a component's state changes, only that component will be updated in the virtual DOM, not the entire page.

  3. One-Way Data Binding: React ensures that the flow of data is in one direction, which helps keep everything modular and fast.

  4. Flexibility: Unlike other frameworks, React is just a UI library, so it doesn't dictate the architecture of your entire application. This flexibility allows developers to choose other libraries or frameworks that best suit their specific needs.

  5. Strong Community and Support: React has strong backing from Facebook and an active community of developers. This means a wealth of resources, tutorials, and third-party libraries are readily available.

  6. Use Across Different Platforms: With React Native, developers can use the same style of components to build mobile applications, making React versatile across multiple platforms.

  7. Learning Curve: Other front-ends like Angular have steep learning curves. React has a fairly subtle learning curve with phenomenal documentation.

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.



Alternatives to Consider

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.



Flutter

Google Flutter

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.



Flutter vs PERN

  • Flutter, backed by Google, is specifically designed for mobile app development, while PERN is a versatile stack used for web application development.

  • Flutter uses the Dart programming language, whereas PERN uses JavaScript.

  • Flutter supports cross-platform development, allowing you to write code once and run it on multiple platforms. PERN, on the other hand, doesn't have this cross-platform capability.

  • Flutter ensures UI consistency across different screen sizes and platforms. PERN doesn't directly manage UI consistency, as it depends on the specific front-end technologies used.

  • Flutter's Hot Reload feature allows developers to see changes in real-time, speeding up the development process. PERN doesn't have a built-in feature like this, but it can be achieved through specific libraries or tools.

  • While Flutter is ideal for B2C and C2C projects with a primary focus on mobile, PERN is more suited for web-based applications.

  • PERN, being a JavaScript-based stack, benefits from the popularity and extensive community support of JavaScript. Flutter, though having strong support from Google, is still growing its community.



Ruby on Rails (RoR)

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.



Ruby on Rails vs. PERN

  • Ruby on Rails utilizes the Ruby language, while PERN uses JavaScript for both front-end and back-end development. This could be beneficial if your team has expertise in Ruby, but could be a disadvantage if they are more proficient with JavaScript.

  • Ruby on Rails embraces the Convention over Configuration philosophy, which results in less time spent on configuration files and thus faster development.

  • Ruby on Rails is known for its emphasis on simplicity and productivity, with a language that is easy to read and write. However, JavaScript, used in PERN, is currently more popular and has a larger community.

  • PERN is a full JavaScript stack, which ensures consistency in language throughout the stack. This can enhance performance and make the codebase easier to maintain.

  • Ruby on Rails has faced criticism for its performance in comparison to Node.js, which is used in PERN. However, for many applications, this performance difference may be negligible.



LAMP Stack

The LAMP has been around for a long time, so it's worth mentioning here. It is comprised of of:

  • Linux (operating system)

  • Apache

  • MySQL

  • PHP



Lamp Stack vs PERN

  • LAMP, an acronym for Linux, Apache, MySQL, and PHP, is a traditional tech stack that has been around for many years and is widely used for web development. PERN, on the other hand, is a more modern tech stack that uses PostgreSQL, Express, React, and Node.js.

  • LAMP is based on PHP, a server-side scripting language, while PERN uses JavaScript for both front-end and back-end development, providing consistency in language throughout the stack.

  • LAMP is often used for more complex, enterprise-level applications, while PERN is often used for more dynamic, interactive web applications.

  • LAMP might be harder to learn for beginners, especially if they are already familiar with JavaScript, which is used in PERN stack.

  • LAMP can be more difficult to set up and configure compared to PERN, which is known for its simplicity and ease of use.

  • While LAMP offers numerous advantages, such as being open-source, cost-effective, and straightforward to configure and maintain, it's not the right tech stack for mobile development.

  • Despite some drawbacks, like challenges in debugging and maintaining, LAMP remains a popular choice for web app development.



How Expert Assistance Can Help in Choosing the Best Tech Stack

programmer looking at a laptop with an overlay of data on the front of the screen


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!



Summary

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.

Let's grow your team.

Fraction helps companies tap into the best software talent - employees at top tech firms. Fraction taps into their spare capacity, providing you with access to top developers, designers, product managers, and software architects.

See Developers

See more tech stacks

Fraction helps companies tap into the best software talent - employees at top tech firms. Fraction taps into their spare capacity, providing you with access to top developers, designers, product managers, and software architects.

See more tech stacks

Let's grow your team.

SEE REVIEWS REVIEWED ON
Read our reviews on