July 19, 2019
When developing a new web application, you want to do everything possible to make it a huge success. Where do you begin? Any successful web app starts with the right tech stack.
Tech stack is a term used to describe all the different types of technology used to build an application. The particular tech stack used for a web application will be different than the one used for a mobile or hybrid app. There are endless combinations of technologies that could be implemented for an application. Your choice will depend on the type of solution you are creating, the kind of team you are working with, and your overall vision for the end result.
Let’s take a look at some of the basics of what makes up a tech stack along with a few best practices to help you choose what’s best for your development project.
Understanding the tech stack: front-end vs. back-end
There are basically two main focuses of any web development project. The front-end – also called the user-side – is what the user sees and experiences on the screen when they access a website. The back-end (server-side) is the programming that goes into the application to create the actual machinations of the site. The client never actually sees the back-end.
A back-end tech stack is made up of five major components: the programming language, framework, database, operating system, and web server.
The programming language selected will determine the framework used for development. For example, JS works with Node.js, Python works with Django, Ruby works with Ruby on Rails, etc.
A database is simply the place where all the information gathered and used by a software program is stored. Popular databases include Oracle, MySQL, and MongoDB.
Operating system refers to the software program that manages all the functionality of an application. Microsoft Windows, Apple’s macOS, and Google’s Android are all examples of operating systems.
Finally, the web server functions as the general hub of the application, handling all incoming network requests and returning web pages to the front-end.
Now that you have a general idea of what comprises both the front and back-ends of web development, it’s time to choose the perfect tech stack for your project.
7 steps to choosing the right tech stack
1. Create a roadmap
The first step to choosing the right tech stack is to define your goals and create a detailed roadmap for your web application development.
What are you trying to achieve with your web app? Why are you creating it in the first place? Will it be a single-page application (SPA) or multiple pages? What is the project size and timeframe? How many developers do you have available and what are their specialties? What is your budget?
You need to get crystal-clear on exactly how you want your application to function before you can even begin to consider what types of technologies you will use.
2. Take a look at other companies’ tech stacks
Do a little due diligence to see what other companies similar to yours are using for their tech stacks.
Some of the most popular tech stacks are ROR (Ruby + Ruby on Rails), LAMP (Linux + Apache + MySQL + PHP) and MEAN (MongoDB + ExpressJS + AngularJS + NodeJS.)
There are numerous articles and websites online that detail the exact tech stacks used by companies such as Facebook, Uber, and Airbnb. Knowing what others are doing in your industry can help point you in the right direction when it comes to choosing the best technologies and solutions.
3. Ask the experts
Once you know exactly what you are trying to achieve and the technologies you think you want to use, it’s time to get some expert advice. This knowledge can come from your own in-house IT team or you can seek help from a consultant or dedicated development partner.
It is important to get feedback from the people that will actually be building the web application, as they will have first-hand knowledge of which technologies will work best. Engaging your development team from the very beginning can save you a lot of time and headaches down the road, as everyone will have a say in the planning and will have a clear understanding of their roles.
4. Determine your timeframe and budget
How much time and how much money do you have to work with? Can you deliver the project within your expected timeline with the current team? Are you rushing to be the first to market for this type of web app so a speedy development period is a must?
There are certain programming languages that are faster than others as well as tools and technologies that are lower in costs (or even free in open-source software situations.) However, you need to keep in mind the cost of maintenance and updates for your particular tech stack. Your budget and timeframe will have a huge influence on which of these tools you decide to use.
You should also consider whether or not you need to hire an outside development team, either to augment your current team or to build the entire application. Having a team that you can scale up or down as needed is a huge benefit.
5. Analyze your team’s strengths and weaknesses
Who is developing your web app? What programming languages and technologies do they specialize in?
The quality of your application lies in the hands (well, really the fingers) of your developers. Leveraging their expertise and choosing tools they are comfortable using can speed up the process and result in a better product.
In some cases, you may need to work with a dedicated development partner that can provide qualified coders to fill in any knowledge gaps.
6. Keep security top of mind
Customers will not use your web app if they don’t feel that their personal and sensitive information is safe from hackers.
When deciding on your tech stack, you must keep security top of mind. In addition to making sure that all of the technologies will work well together and deliver a stellar web app, you also need to create a bullet-proof layer of security.
7. Plan to scale
The whole point of creating an amazing web application is because you want it to grow and be profitable. What if it becomes the next Facebook or Pinterest?
Are you prepared for heavier than expected traffic?
Certain technologies are better for scaling than others. For example, Ruby is a slower programming language than PHP, which is slower than Java. Do your research as to which solutions are going to be able to handle the pace at which you want to grow.
The perfect tech stack will make it easy and cost-effective for you to scale both the app and your business.
Choosing the best stack for web development is important because it affects the overall performance of the application, which ultimately determines the user experience. If you don’t use tools that are best suited for your particular product, users may experience frustrating slow-downs, error messages, and other types of bugs.
Since you only get one chance to make a first impression on a potential customer, you really want to utilize the best technologies
The article was written by Alex Sokolov who is Senior Software Engineering Manager. Alex is professional with 10+ years’ experience in software development, building and mentoring engineering teams.