Tech stack varies between different types of apps, industries, and project scales. Some tech solutions mature faster than others. Some gain popularity and stay trending for years. Some become obsolete and get abandoned.
With the growing number of choices, it becomes harder to decide what technology stack will better meet the requirements of your project. It’s especially difficult as no person has tried everything and could share an unbiased opinion.
Anyway, you need to decide how to build your software and do it quickly. This article describes what’s important when choosing a startup stack and what steps can help you make the right choice.
What is a tech stack or a solutions stack?
Those terms are used to define the combination of technologies a company uses to build and run a software project. It may include everything from the programming languages and frameworks your developers use to third-party services they connect via APIs.
A software project can start with a few core technologies on its list and end up with a hundred or more as it scales and its needs evolve. Let’s name some software subsystems and components that usually make a tech stack:
- operating systems
- programming languages
- servers and cloud computing platforms
- databases and database management systems
- backend and frontend frameworks
- web service APIs
- performance monitoring services
- business intelligence and analytics tools, etc.
This blend of solutions is called a ‘stack’ because the whole tech ecosystem of the project has a layered structure. With layers build one upon another you get strong internal dependencies between the different tools you use. This makes some components difficult to drop or change at the later development stages. But that’s not the only thing that makes choosing a tech stack an important stage in your project development.
A tech stack can make or break your project
Of course, the tech stack you choose in the beginning won’t be set in stone. You’ll add and drop technologies as you go. That said your initial decisions will influence who’ll be on your team and what you’ll be able to build on your budget within the desired timeframe.
Technology stack influences your project cost
In terms of cost, your first concerns may be the licensing fees to pay for any proprietary technology on your stack and ongoing payments for the software infrastructure you use. But other factors influencing your project cost in the short and long-run:
- Recruiting expenses. The more mature and popular technology is, the more talent there is for you to choose from. For example, with 42% of mobile app developers using React Native and only 18% using Cordova, choosing the former for your tech stack promises a faster, simpler, and therefore cheaper hiring process.
- Developer’s salaries or hourly rates. It’s difficult to correlate technology and the money you pay your developers because of many other factors, like location or cooperation model. Anyway, simpler technologies have a milder learning curve and allow the work to be done by less experienced specialists that charge less.
- Software maintenance expenditures. Programming languages and frameworks influence your software architecture, codebase size, and ease of its maintenance. It’s best if you choose technologies allowing you to update, scale, and modify your software in a cost-efficient way.
Apart from that, major changes in the tech stack potentially can bring in unplanned expenses and create barriers on your way to success. Whether you decide to rewrite your code with another language, migrate your data from one database to another, or change your hosting provider, it all needs time and money. This is why putting some additional thought into your tech stack selection from the very beginning may pay off in the future.
Tech stack motivates developers on your team
Technologies may potentially provoke a conflict of interest between you as a business owner and developers working for you. Quite often businesses want stability and choose a proven tech stack while developers want to innovate and chase new tech. For many companies, it becomes difficult to retain developers if their tech stack is boring and doesn’t inspire their team.
Most likely your project doesn’t require technology innovations. It may not be in your interest to choose the edge tech to attract developers who are always chasing the latest new fashion. Although the development process will be exciting in this case, it may result in unnecessary expenditures.
However, if you choose an old-fashioned tech stack nobody is passionate about anymore, you’ll have hard times trying to bring new people into your company. Before you make a decision, get yourself aware of recent discussions on developer communities and Github activity around the components of your stack. The best tools will have a vibrant community and active contributors.
Tech stack affects the time to market and scalability
When building software from scratch you may have a trade-off between the fast development cycle and good performance on a large scale. Whatever you put in priority, it will work fine as long as you align it with your go-to-market strategy.
If you plan on a soft launch to try out your business idea, a rapid prototype may be the thing you need. To keep the momentum, you can go with the easiest and cheapest solution. After you see that your idea works well, you’ll re-build it with more robust tech knowing what features are in demand. But if you expect your product to quickly gain traction, choose a more robust technology from the start so that your software won’t crash soon after launch.
How do you pick the right tech stack?
It’s not always obvious what tech stack to choose because most projects can be built using various blends of tech. Let’s look at three steps that may help to put your thoughts in the right direction when building your technology stack.
Set up priorities to reach your business goals
Even if your idea is innovative, your software will belong to a particular type, such as a real-time app, or an IoT app, as well as belong to a particular industry. The type of your app will define the hardest challenges you’ll have to solve and things you can’t compromise on, like security or high-load operation.
Every type of software and business have their champions between programming languages. You’ll look at what’s recommended in your case:
- Python is great for computation and statistics and is often used for developing AI
- Java is a go-to for financial software and enterprise apps that prioritize security
- PHP is the most frequently used language for dynamic websites and web apps
- C++ and C# are the best choices for game development due to good performance
After you decide on a programming language, your future considerations will be narrowed by its ecosystem.
Know what technologies are often used together
Although there are no two similar projects, some technologies get often used together. Providing sufficient capabilities for projects of particular types, such sets of components become popular tech stacks and get their names.
- MongoDB database
- Express.js on the app controller layer
- Angular, React.js, or Vue.js on the app presentation layer
- Node.js webserver
LAMP, LNMP, or LLMP stack for simple web apps and dynamic websites:
- Linux (operating system)
- Apache, Lighttpd, or Nginx webserver
- MySQL database
- Perl, PHP, or Python scripting language
Native iOS and Android technology stack for mobile applications development:
- Objective-C or Swift language, Apple Xcode toolkit, iOS SDK
- Java or Kotlin languages, Android Studio, Android Developer Tools, Android SDK
Using mature technologies and proven stacks is often reasonable. If you choose a standard tech stack, it will be easier for you to find a team because many developers have worked with this tech before.
Check what unicorns and your competitors use
Research what competitor companies or market leaders use to build their software. Companies now rarely make a secret of the tech they use and disclose their technology choices on corporate blogs or services like StackShare. Here are some technology stack examples of famous companies:
Uber tech stack:
- Programming Languages: Python, Java, Go, Objective-C, Swift
- Frameworks: Node.js, Apache Thrift
- Libraries: Backbone.js, React, jQuery
- Databases: MySQL. PostgreSQL, MongoDB, Redis, Cassandra
- Servers and cloud computing services: NGINX, Amazon EC2
- Stream processing services: Kafka
- Big data processing: Apache Spark, Hadoop
- Real-time analytics: AresDB
Airbnb tech stack:
- Frameworks: Rails
- Libraries: React
- Databases: MySQL, Amazon RDS, Redis
- Servers and cloud computing services: NGINX, Amazon S3, Amazon EC2, Amazon EBS, Amazon ElastiCache
- Content delivery network: Amazon CloudFront
- Big data processing: Hadoop, Presto, Airpal, Druid
- Workflow management: Airflow
Netflix tech stack:
- Frameworks: Flask, React, Node.js
- Libraries: React, WinJS
- Databases: MySQL, PostgreSQL, Amazon RDS, Amazon DynamoDB, Cassandra, Atlas-DB
- Servers and cloud computing services: Amazon S3, Amazon EC2
- Big data processing: Hadoop, Presto, Amazon EMR, Pig
- Deployment services: CloudBees
Knowing what industry leaders choose to power their apps will help you see what technologies get more trust and support. Also, it’s reasonable to think that if a particular stack worked for a project similar to yours, it might work for you as well. However, you shouldn’t blindly copy others’ technology decisions, because they could have been made before better solutions appeared.
Need help with choosing your tech stack?
At Proxify, we’ve dealt with projects of different sizes, types, and industries, which allowed us to accumulate solid experience in building tech stack for startups. With a network of experienced developers, we stay on top of trends and changes in the tech world. Becoming our client, you can count on our expert advice and help in making grounded tech decisions.
We know that selection of technologies is difficult. But you shouldn’t let the doubts drive you off the track. Even if you haven’t decided on the tech stack yet, don’t hesitate to reach out to Proxify. We’ll help you choose both the best tech stack and people for your project.