The best tech startups have three key characteristics. First, they have a talented, capable team. Second, they have a fantastic idea. They also have the right startup tech stack to implement it. It’s impossible to stress the last point enough. The world’s best ideas will find serious headwinds if the founders elect to use complicated, cumbersome, or outdated tech.
Consider the following egregious example. Let’s suppose, in theory, a founder with a talented team and a fantastic idea decided to use Fortran to power their website (yes, believe it or not, such a thing exists). Most developers don’t know Fortran, and the framework doesn’t have a blossoming community behind it. Even if the founders could somehow get their idea working, it’s questionable how stable the product would be or scalable.
There aren’t many founders looking to run their new sites on Fortran, but this absurd example illustrates how important picking the right tech stack is. The right stack acts as a tailwind, enabling your startup to get off the ground faster and fly further than you would have imagined otherwise. Conversely, the wrong tech stack can be a headwind, giving you constant agony and slowing down your momentum.
So how do you, as a founder, pick the right stack in 2020?
Let’s look at this question in-depth, including looking at some of the best tech stack examples.
Why Is the Startup Tech Stack Important for Teams?
With everything going on during the initial launch of a company, the question of which tech stack to use might seem lower on the priority list. After all, there are legal questions, getting prototypes done, meeting with investors, and many more activities. You might pick whatever you’ve used in the past or whatever your team is comfortable with, and run with it.
However, this can be a recipe for problems later, for a few key reasons:
- The tech stack you choose now is often very challenging to adjust later. Rewriting a whole system from Python to PHP is no easy task. Migrating all your databases and connectors from MySQL to NoSQL would be equally challenging.
- Migrating from one cloud or hosting provider to another is also problematic. The resources that you have on AWS, for example, won’t map 1:1 with Azure, leading to potential issues from migration.
- Changing the stack is costly for many reasons. It might mean hiring new developers or retraining the ones you have.
The startup tech stack you choose now will likely be with you for the most crucial stages of your startup’s funding process. The stack you select must be robust, resilient, and able to scale well. Your startup’s needs at ten unique daily users will be much different than when you have 1,000,000 daily users!
Some Definitions When Discussing a Startup’s Tech Stack
Unfortunately, there’s no uniform definition for what a “tech stack” is. This article assumes that the term “tech stack” is quite broad. It’s everything you’ll use to build your product: the programming languages, frameworks, libraries, servers, programs, and platforms.
To help narrow this term down, consider what will be the focus of your product?
Is it an AI product, a mobile application, or something altogether different?
Pick each component that your new product needs (mobile app, server, development workstations, etc.). There will be some combination of hardware and software involved in each component. That combination is your tech stack.
For example, let’s consider Facebook since most of us have a Facebook account, so it’s a readily accessible example. At its core, Facebook has two mobile applications (iOS and Android), a web presence, and some server infrastructure.
Therefore, Facebook’s tech stack refers to the hardware and software used to build those mobile applications, run the necessary server code, run the website, and communicate with the infrastructure.
Facebook, at its core, uses PHP and React to power its web presence. The server infrastructure is custom, as Facebook now has 30,000 web servers. On the mobile application side, Facebook has never disclosed what it uses, but we know there is some React Native, native code, and HTML5 in there. For Facebook Messenger, it uses native iOS and Android code.
As a founder, you have to decide what your product’s tech stack will be. Or, in other words, where will your software run and what languages and frameworks will power it?
What Are the Top Factors When Selecting Your Startup Tech Stack?
When selecting your company’s tech stack, there are a few factors that should guide your decision.
How expensive the language or platform is should be your number one consideration.
However, founders shouldn’t think of these expenses solely in terms of upfront licensing fees. Instead, what are the upfront costs in addition to the ongoing maintenance expenditures that a particular tech stack will use?
Are there security or liability costs?
For example, CentOS Linux is completely free, and Red Hat costs a minimum of $350 a year for one server. However, Red Hat often gets security patches for significant issues within hours or days. CentOS might not get them for weeks or months.
If you have customer data on your server, that $350 fee might be worth it to ensure it is as hack-proof as possible!
You’re generally best to pick a standard, well-known, open-source technology that gives you the features you need. That will ensure your ongoing maintenance and labor costs aren’t sky-high.
The longer your project takes to come to market, the harder it will be for you to succeed. You might have a competitor get their idea out first, which means you’ll have to play catch-up. Or, you might run out of money fighting a tech that takes frustratingly long to use.
Pick technology solutions that will empower your startup to achieve more. Don’t choose technologies that will be a burden to your team and company. Pick tech that is easy to integrate and has plenty of third-party controls and support. These features will make it easy for you to use.
Plan for 10,000,000 users, not 10 users. Your startup won’t survive long if only ten people use your app or service, so you should be thinking about scalability from the start. Pick a technology that will scale as your startup grows.
There are all too many horror stories of startups working night and day, only to have their product crash on the first day and receive significant negative press. Even big companies are susceptible to this, like Disney+, which crashed on launch day due to unanticipated demand.
Be ready for your app to succeed and pick a server-side tech, like PHP, Ruby, or Python, and cloud infrastructure, like AWS or Azure, that scales with it!
What Are the Benefits of Choosing the Right Startup Tech Stack?
Choosing the right startup technology stack is vital not only because it will last for much your startup’s duration, but also because it brings benefits to your business. The right tech stack will help your business in three crucial ways.
First, the right tech stack will make it easier to develop a minimum viable product (MVP).
This term represents the minimum set of features that need to be included in your product to make it work. For example, the MVP of a file uploading site might be a simple user interface that lets the user choose a file, upload it to your server successfully, and download it again. It doesn’t necessarily need all the fancy UI bells and whistles or features such as pausing an upload and resuming it.
Your MVP is the first version of the project that you can ship and pitch to investors.
Since getting from idea to MVP is such a time-consuming process, choosing the best full tech stack is essential to getting something up and running fast, so that investors and customers alike are interested in what you’re offering!
A fantastic application and web technology stack will also make it easier to find developers to add new features. Ideally, when your startup is growing, you want to be able to add devs quickly to implement things for which customers are asking.
If you’re stuck finding the one person in the country that knows an obscure language, you will have difficulty iterating fast enough to retain and pique customers’ interest.
Finally, a good stack is just plain fun for developers to use!
It has documentation, lots of examples, and it performs well. In turn, you’ll get a clean, robust codebase that has fewer bugs. And, when there are bugs, your devs will be able to fix them faster, leading to higher customer satisfaction. Choosing the right stack promotes healthy software practices. Those practices will make your devs’ lives easier so they can produce better software for your customers.
What Are the Drawbacks of Choosing the Wrong Startup Tech Stack?
There are typically two problems with choosing the wrong stack for your new startup.
The first one is the most obvious, and that’s that you might code yourself into a corner. You might adopt a legacy stack that fewer and fewer developers are interested in using. That will make it harder to find quality talent. Fixes for bugs for this stack will be slower, which may expose your company to legal liability. Or, you might find that it doesn’t scale well. These will all negatively impact your customers’ and developers’ lives.
The other problem with a lousy stack is that the only way to fix the problem might be a complete rewrite, which could be prohibitively expensive and jeopardize your whole startup. As an example, suppose you pick technology X for your startup. After working with X for six months, you find that it seems flaky around 10,000 users. Maybe it can’t work across multiple machines, and the biggest VM you can get with AWS can only handle 10,000 users. The only way out of this problem might be to rewrite the entire codebase in a language that scales like Ruby or PHP.
That’s likely not a trivial undertaking, though. You’ll need devs that can code PHP and ensure there are no regressions. It might be a two-month undertaking, and, in that time, an up-and-coming competitor might make take some of your customers.
At best, choosing the wrong tech is a minor inconvenience. At worst, though, it can be a miscalculation that leads to insolvency.
How Do I Choose the Right Startup Tech Stack?
Choosing the right startup tech stack isn’t trivial. It requires careful consideration to ensure that you’re making the right choice.
The first step to choosing the right stack is first to identify where your software will run. Is this a mobile app? If so, do you want it on Android and iOS? Is this a web app, or both a mobile and web app? The stack you choose depends mostly on the platform on which your code will run.
Next, think about what kind of product it will be. Are you building a client-only application? Then you might want one of the native (Swift or Kotlin) frameworks. Are you building an advanced AI algorithm? Then C and CUDA might be for you. What you’re making and where it will run will drive most of the tech stack discussion.
Plan for how many users you expect in the first few months of your startup. While you should pick a stack with scalability in mind, you don’t necessarily need to implement advanced caching within PHP if you have five visitors a day to your website. Figuring out your expected load makes it easy to understand what frameworks you should use.
Finally, last but not least, what is your initial goal? Are you looking for a proof-of-concept? If so, then you might want to favor techs that offer rapid prototyping. If, on the other hand, you’re looking for an MVP, you might want to focus on using a framework that is robust and scalable, even if it takes a little bit longer to code.
Which Startup Tech Stacks Do the Unicorns Use?
So far, we’ve analyzed more of the hypotheticals regarding tech stacks, but we haven’t gone into as many specifics. If you’re looking to choose a tech stack that works for your business, you probably want one with a “vote” of confidence from a large, well-known company. After all, if it’s good enough for Facebook to run, for example, indeed, the tech is robust enough for your site!
Let’s see what five familiar tech companies use.
- Facebook – PHP, React, Cassandra, Jest
- Letgo – PHP, Symfony, MySQL, Python
The Ideal Startup Tech Stack for 2020
Keeping the above in mind, here’s the ideal tech stack for a startup in 2020.
Node.js with Express
- For startups, Node.js with Express is often the fastest way to arrive at a prototype. It also scales well when the site becomes busier.
Bottom line: If your backend will be relatively lightweight, Node.js with Express offers rapid prototyping. You can showcase progress quickly!
PHP with Symfony
PHP is an old framework that has withstood the test of time. Developed 26 years ago by Rasmus Lerdorf, PHP has fantastic performance, stability, and flexibility for startups. With Symfony, your business gets the standard MVC development paradigm and can rapidly prototype new APIS.
- PHP is very customizable and easy to maintain. No matter what you want to do in PHP, you can do it.
- Its dynamic typing makes it a pleasure to use, for the most part. It also makes it very well-suited for web applications.
- Facebook uses PHP, so it scales well!
Bottom line: More complex sites can often use PHP to write their backends efficiently and with scalability in mind.
Python with Django
Python is a relative newcomer to the webspace. However, with Django, it’s a powerful one. Many of the world’s top tech companies use Python for its simplicity and rapid development. Django is a fully-featured web framework to enable developers to build sites rapidly.
- Django handles many things nicely for developers. For example, it implements user authentication, which leads to more rapid prototyping.
- Python’s unique syntax and structure mean that most people – even non-technical people – can pick it up and make some changes. The fact that it is so easy to edit speeds up the entire team!
Bottom line: If you want a fast, robust framework with a language that makes it easy to prototype, Python and Django are for you!
Database Startup Tech Stack
MongoDB is one of the world’s most popular NoSQL databases. Used by some of the most well-known sites worldwide, MongoDB offers fast, efficient retrieval of document-based data.
- NoSQL databases are the best option when you want to store your data in a non-tabular fashion. With MongoDB, your database entry can contain almost anything.
- MongoDB scales well and does not have too large of a footprint.
Bottom line: If you think your app will need to store your data more flexibly, use MongoDB.
MySQL is, arguably, the most popular database in the world. In 2010, Oracle bought MySQL, but its free and open-source heritage lives on in MariaDB (nearly the same as MySQL, just entirely free and open-source).
- Stores data efficiently in a tabular manner.
- It scales well. Even tables with hundreds of thousands of rows work in MySQL.
Bottom line: MySQL or MariaDB are the best options for storing your data in a tabular fashion. Any data that has a well-defined structure is frequently better in a SQL-based table like MySQL.
Developed by Facebook, React simplified UI development significantly. By dividing all development pieces into components, properties, and states, React made it incredibly easy to start building complex sites.
- Very easy to prototype. The declarative architecture makes it easy to mock UIs and do other prototypes.
- It’s efficient and looks great. The virtual DOM that React provides makes it very performant. React ensures that only the components that need updating, actually update.
Bottom line: Select React for your frontend development. It’s growing in popularity, and more and more people are learning about it. You’ll be able to find top-quality developer talent if you choose to use React.
AWS is the most massive cloud globally and ranks #1 in terms of the number of customers. Azure is closing the gap, but most people use AWS.
- AWS has tremendous flexibility.
- They have the most robust infrastructure as compared to other cloud providers.
- AWS can handle pretty much any website. Most big-name sites that you’ve heard are already on AWS.
Bottom line: AWS should be your go-to provider for cloud services. If you don’t need the cloud, you can skip this!
Until Flutter came along, React-Native was (and still is) the most common cross-platform development solution. Developed by Facebook, React-Native makes it easier to bring mobile apps to life.
- Declarative programming makes life significantly easier. It’s a significant paradigm change, but the result is cleaner, more testable code than other platforms.
- React-Native is remarkably quick for a cross-platform solution. Unless your app is incredibly complex, you shouldn’t see too much of a speed hit using React-Native vs. native.
Bottom line: With an established community and a “write-one run on Android and iPhone” attitude, you should consider React-Native for your cross-platform development needs.
Native (Kotlin for Android and Swift for iOS)
Those looking for the best possible performance and the latest and most outstanding features develop their apps using proper native code. For the Android ecosystem, this has historically meant using Java. However, Google is trying to transition to a language called Kotlin, which compiles to JVM bytecode. For the iOS ecosystem, most new development is happening under Swift, a well-designed language that superseded Objective-C.
- Developing your apps using native APIs enables you to use the latest features and always have the fastest execution times.
- Optimization, including debugging performance, is often easiest on native code because there are no layers of abstraction in between.
Bottom line: While it is tedious to maintain two codebases, there are scenarios where you want the best performance and latest features. In those cases, native development is the way to go!
You Can Choose the Best Startup Tech Stack for Your Business
While choosing the best startup tech stack for your business might seem daunting at first, it mostly boils down to one question: where do you see your startup in five years? Picking the right tech means choosing the languages, cloud technologies, and frameworks to help you achieve those goals as quickly as possible.
Consider some of the technologies listed above. There’s a good chance that you’ll be able to use a combination of them to tackle the problem your startup is trying to solve and get happy customers!