Today, every business looking to win willy-nilly taps into the tech sector. Companies build software to streamline their processes, perfect user experiences, and seize new growth opportunities. And every successful application sits on a tech stack.
That’s why business owners need to have at least a basic understanding of what tech stack is, which options are available on the market, and how to choose a tech stack that gets their company ahead.
Table of Contents
- What is a Tech Stack?
- Why Your Technology Stack is Important
- Front-end and Back-end Technology Stack
- Things to Consider While Choosing a Tech Stack
- Top 5 Tech Stack Models
- What Are The Differences Between Mobile and Web Apps Tech Stacks?
- Tech Stacks Behind Popular Apps
- Choosing the Right Technology Stack for Your Project
What is a Tech Stack?
Tech stack is the barebones version of any software product. It’s a combination of programming languages, frameworks, databases, servers, development tools and plugins, and other technology layers that make up any web or mobile application.
A tech stack is defined by an operating system, programming language, web server, and database at a bare minimum. An excellent example of a popular tech infrastructure that’s been driving a wave of web 2.0 applications is LAMP. The acronym stands for:
- Linux (an operating system — the most basic environment for running applications)
- Apache (a web server responsible for serving an app to users over the network)
- MySQL (a database where all app’s files are stored)
- PHP/Perl/Python (programming languages used to create the core of an app)
Together, these tools form a LAMP tech stack, which is still pretty popular these days, by the way.
Why Your Technology Stack is Important
On the one hand, as a business owner, you may think that choosing a tech stack when custom developing an app is a task best handled by a CTO or product manager. These folks have a programming background and are way more versed in app development.
On the other hand, a solution stack is so strongly linked to business operations that leaving the decision solely to technical people is akin to risking your entire company’s future.
That’s why the importance of a business owner’s participation in the process is hard to overestimate. Here are the things you should consider when tech folks come to you with suggestions.
App development budget
“How much will it cost to build an app using this tech stack?” should be one of the first questions you raise with your team. Buying into a tech infrastructure by a specific vendor implies using accompanying technologies throughout the development process, including programming itself and setting up DevOps operations.
Check out our article How to Implement DevOps.
Time to market
“Can we leverage this tech stack to ship our product faster?” is the next question you and your team should tackle. Some tech stacks require more time to set up the development environment. With others, app developers can start coding with minimum setup shenanigans, which means your product will be delivered faster.
Maintenance and support
Finally, your technology stack for software development should provide enough flexibility to host immediately planned features and the options you envision in your app in a year or two years.
The choice of a tech ecosystem will influence how easy it is for your app developers to upgrade and customize a product, especially if you decide to pivot from your original idea.
Make a list of these business requirements for your digital product and run it by your development team to make sure that together you make the right decision. As you can see, it will have a massive effect on your business.
If you leave the technology decision up to your technical folks, you risk ending up using technologies that are most hyped about but not necessarily align with your project needs.
Front-end and Back-end Technology Stack
When you hear developers or CTOs talk about the technology stack for an app, they typically differentiate between a client-side tech ecosystem (aka front-end stack) and a server-side tech infrastructure (aka back-end stack). What are those?
Front-end tech stack
Everything developers use to build a customer-facing piece of software belongs to the front-end tech stack. Some would argue that this is the most fun part of the development process as you’re creating engaging interfaces where all interactivity happens.
Depending on the devices you’re targeting with your application, your front-end tech stack will have a different core underlying technology.
For web applications, it’s going to be:
For mobile applications, your tech ecosystem will include:
- Swift or Objective C for iOS and Kotlin or Java for Android
- React Native, Xamarin, Cordova, or similar cross-platform mobile development frameworks
Back-end tech stack
Back-end or server-side technologies include everything behind the scenes that actually makes an app work. Like an engine running a car, hidden from the driver, a back-end tech stack pushes digits around to surface posts with most likes, calculates mortgages, and processes other data that is then visualized for users in the front end.
When we talk about back-end tech stack, we typically mean:
- Programming languages
- Back-end web frameworks
- Web servers
- Hosting environment
Tech stacks in real life
What happens in actual product development with front- and back-end tech stacks is far from choosing a single version of each and rolling with it. That’s because modern products often span across multiple platforms and feature separate interfaces for customers using an app and employees operating it.
Therefore, many applications we create have a mixture of different front-end and back-end tech stacks. In an ideal scenario, we have several front-end tech stacks (e.g., one for a mobile customer-facing app and another for a web app for admins) and shared server-side technology for the back end.
Things to Consider While Choosing a Tech Stack
Besides the development costs, time to market, and maintenance considerations, there are some other parameters that absolutely need to be factored in when you think about the best tech stack for a project.
What software platforms and hardware equipment will your application need to work with? Will you have to build out APIs or leverage existing third-party integration mechanisms?
Even if you’re just starting and haven’t bought into a CRM, ERP, or other heavy-weight enterprise software yet, you should seriously consider what systems your app will work with.
Functional and non-functional requirements of an application will absolutely dictate a preferred technology stack for your project.
To give you an example of a functional requirement, it can be mobile geofencing. The feature tracks mobile user actions within some location boundaries. It pushes your developers to use native languages: Swift (for iOS) or Kotlin/Java (for Android).
As for non-functional requirements, they include things like:
- How many users will be using the app simultaneously?
- How quickly should the app process user actions?
- Should we split app functionality into microservices?
Tech stack maturity
Another point to consider when choosing a solution infrastructure is tech stack maturity. Is there an established ecosystem of third-party libraries, tools, and frameworks that will help you develop the app faster? How well is this tech stack documented? Is there a credible open-source community around it, or is it a proprietary technology that will lock you into a vendor for years?
Of course, the rule of thumb is older tech stacks have more developed ecosystems with plenty of support documentation and pluggable solutions.
Developer resources availability
There’s a reason why some classic tech stacks (e.g., LAMP) are more popular than others. Business owners need to carefully assess the developer talent pool for different tech stacks they contemplate for building their solution.
Even if you’re not bootstrapped and ready to pay generous salaries to developers that are in high demand, the issue with resource availability may arise later on when you bring in additional talent or want to swap someone out.
Flexibility and scalability
Once your digital product is out to customers, how easy will it be to make adjustments? Can you freely replace some tech ecosystem components and upgrade others to address the requirement for increased throughput caused by the growing user base?
Tech stack flexibility also has to do with your development pipeline:
- Is the toolset robust enough to scale up and down your DevOps workflows?
- Does onboarding for coders and QA engineers take a lot of time?
- What is the downtime for updating a database or other critical elements of the app?
Sooner or later, your app will need third-party integrations to add more value to users by serving more data to and from other applications. So making sure the toolchain you choose is capable of that is definitely worth your time.
Finally, a few words about security. Every business owner, including you, envisions an app that is well protected from viruses and hacking attacks, right? Well, whoever persuades you into using a tech stack solely based on some vague security considerations, doesn’t know a heck about modern tech stacks.
I don’t know a single tech ecosystem that doesn’t provide enough tooling to build even such security-demanding solutions as fintech and HIPAA compliant apps.
At Topflight Apps, we create finance and healthcare apps all the time, using a wide range of popular tech stacks for application development. And every time, we base our decision on the factors outlined above, plus the cost of development and time to market.
Security is kind of a thing in itself and should be considered individually for every stack.
Top 5 Tech Stack Models
LAMP is considered one of the oldest tech stacks, often criticized by younger developers. Nevertheless, this tech infrastructure still remains a viable option for making millions of web applications, especially if those are not single page dynamic apps.
- Apache webserver
- PHP or Python
MEAN / MERN / MEVN
- it’s relatively easier to scale with a noSQL database by modifying database queries
Ruby on Rails
Ruby on Rails, also known as Rails or RoR, is an open-source framework for building web applications. It’s somewhat less popular compared to LAMP and MEAN infrastructure variations, but nevertheless has its merits:
- provides coherent programming guidelines, so there’s a slight chance of coding errors
- comes with lots of ready-made pluggable components, so it’s easier to jump-start a project
- famous for its vibrant open-source community that’s actively contributing to the framework development
Microsoft tech stack
Microsoft tech stack for web apps includes:
- .Net framework
- Microsoft SQL Server
- ASP.NET and Web Forms
- Visual Studio
Unlike other stacks we’ve mentioned, the .Net tech ecosystem is tied to commercial products and implies using Microsoft technologies throughout the app development process.
This solution stack is often found in enterprise environments where 99,9% uptime and instant support are critical. Many companies choose to use Microsoft tech infrastructure because they already work with other solutions by this vendor.
What Are The Differences Between Mobile and Web Apps Tech Stacks?
If you’re thinking, “What kind of a question is that? Mobile tech ecosystems power mobile apps, just like web tech stacks fuel web apps”, I totally understand. There are some caveats when choosing between mobile and web apps, I’d love to point those out.
Mobile app tech stacks
With mobile apps, as a business owner, you mostly need to consider a programming language. When developing a native app for iOS, your options are:
- Swift (recommended)
- Objective C
Developing a native app for Android, you can choose from:
- Kotlin (recommended)
We advise you to rely on Swift and Kotlin for iOS and Android, respectively, because these programming languages are officially supported by Apple and Google and allow you to utilize the corresponding mobile platforms’ feature set to the full.
As for creating a cross-platform mobile app, you can pick from React Native (our preferred framework), Flutter, Xamarin, and a gazillion of other instruments.
Of course, there are more components than a programming language that go into a mobile tech stack. Still, I firmly believe that you should trust your CTO or development team to drive these other smaller choices.
Here’s an example of a typical mobile tech stack for an iPhone app, as an example:
- Swift (programming language)
- Xcode (Apple’s development tool)
- CocoaPods (dependency manager)
- Firebase (back-end logics)
Related: React Native vs PWA: Choosing the right tech stack
Mobile app tech stacks caveat: modern mobile applications always have a server-side. It’s where an app database and logics reside. To that extent, mobile app development taps into web tech stacks, which you need to build a server-side of an app.
Web app tech stacks
It’s a little bit messier with web tech ecosystems — they have been around longer than mobile, and the sheer amount of options may be intimidating at times. When considering a tech stack for a web application, you’re simultaneously choosing several things, besides a programming language, for example:
- web development framework
- database management
- operating system
Web app tech stack caveat: tech infrastructures for web solutions already include both front-end and back-end components. In fact, different combinations of these make up the essence of any technology stack. And best of all, you can mix and match and, for example, turn LAMP into WAMP by choosing to host your solution on a Windows computer.
Tech Stacks Behind Popular Apps
If you look at the tech ecosystems of the most popular technology companies, you’d be surprised by the number of tools they use to power their digital products.
Don’t let these numbers put you off. These companies didn’t start their products with all these tools. In fact, you can build an MVP product with just a couple of technologies.
The reason companies like Pinterest or Airbn
b have an impressive set of tools is because they actually run 17 separate tech ecosystems. Why? Because modern well-architectured apps are no longer monoliths: every meaningful part of the app (e.g., booking) is driven by different types of technologies. For example, ads analytics at Pinterest is coded with:
- Druid (distributed data store)
- MySQL (database)
- Apache Spark (big data processing engine)
- Hadoop (big data framework)
- Kafka (real-time data processing framework)
And that’s just one part of their product. These companies naturally have separate solution stacks for other pieces too. So you can see how these tools can quickly pile up to 40+.
A word of advice. Don’t spend too much time analyzing the tech infrastructure behind popular startups and ignore the tech stacks of such tech giants as Facebook or Uber. For instance, Facebook runs on 36 technologies today, but they started with LAMP (Linux, Apache, MySQL, and good old PHP).
Stackshare.io is a wonderful site to research common tech stacks and ask for advice from developers with hands-on experience in the technologies you’re curious about. You can also peek at tech stack examples at the companies with relevant products and check what’s trending.
Choosing the Right Technology Stack for Your Project
Let’s sum up the takeaways that you, as a business owner, should be aware of when choosing a tech stack for your application.
Don’t leave the decision about a solution stack to app developers. Otherwise, you risk sticking with some trending technologies that are not a great fit in the long run.
Prioritize your software requirements. Your decision about a tech stack should align with the number of users you hope to attract and its ability to satisfy their immediate needs.
Weigh up your development budget and time to market constraints. Software development technology stack will influence the cost of building your app and your overall agility with shipping a customer-ready product.
Remember about picking a tech stack for a server-side when building a mobile product. Because mobile tech stacks typically don’t include back-end components, you need to figure out a web tech stack in addition to defining mobile technologies.
Research the preferred tech stack on stackshare.io. The site is an incredible storehouse of knowledge for analysis and comparison of various technology stacks.
Wrap up by preparing a technology stack document. To simplify the onboarding of new engineers, create a complete list of technologies and tools you’ll use on a project.
If you’re planning a web or mobile app and need help from a development company that knows how to code and design to select a technology stack for your application, schedule a call with one of our experts.
Frequently Asked Questions
Does the fact that I'm involved in selecting a toolchain for a project mean that I need to oversee the app's architecture?
No, your lead developers and CTO should be able to take care of that.
I'm looking to start with just a web page for now. Do I need to pick a tech stack anyways?
Not if you don’t plan to integrate (use the same data between) your site with the app you will build.
How to choose a technology stack if I'm bootstrapped and need to create something quickly to verify my business idea?
Go with LAMP, or better yet, explore a rapid prototyping option.
Are there services that help with deploying standard back ends?
Yes, take a look at Firebase, Backendless, and Kinvey.