How To Pick The Right Tech Stack For Your Web Application

So you have this great idea for an application. You’re so excited to get it built so you can see your idea realized… but how do you get started? One of the most important decisions to make before you get started is what tech stack you are going to use.

Image for post
Image for post

What is a tech stack?

But first… what even is a tech stack and why is it so important? Your Tech Stack will be your collection of software, technologies, frameworks, libraries, and other tools used to build your application. As you would imagine, there are many choices to choose from. Before we delve into how you should be making this decision, why does picking the right stack even matter?

You may be eager to get the ball rolling and just randomly choose your tech stack as you move along. This would be the equivalent of just haphazardly choosing a car to go off-roading in. You may be ok if you happened to choose a truck, but if you happened to choose a 2-door convertible then you will be in for some trouble at some point.

If you wind up choosing the wrong tech stack, you could easily increase the amount of time it takes to get a Minimum Viable Product (MVP) or set yourself up in a position that it is very difficult to scale your application. Choosing the right tech stack will make sure your code is easily maintained, your application can scale, and there will be sufficient documentation to help you for your specific purpose.

The two most important parts of the stack can be broken up into the frontend and the backend. Frontend would be the client-side and backend would handle the servers and databases.

Image for post
Image for post

Factors to Consider

So now that you understand why this decision is so important, what should be the major deciding factors?

Project Requirements — What is your web application even supposed to do? This will determine what technologies would be best. Do you have a complicated front end that requires a lot of views and interactions with the user? Then it would be smart to use something like React to handle your state management and break your frontend down into different components. Do you need real-time updates? You may want to look into utilizing WebSockets which are much faster than the traditional HTTP Protocol. Trying to gather data from different websites? You could look into using a web scraper like Puppeteer.js.

Speed- You will most likely be concerned with how long it will take you to build your project. You may have mapped out your MVP and decided on some key features that you want to get implemented as soon as possible. Certain frameworks are known for fast development such as Ruby on Rails. You could also consider using Node which allows you to carryover Javascript to the backend which could also lead to faster development time because you wouldn’t need to learn a new language if you only knew Javascript. Choosing a stack with ample documentation and large communities of supporters will make it easier to develop your project faster and overcome hurdles with greater ease.

Scalability & Maintenance- You want to choose a stack that will allow you to handle the increased demand for your application. This could mean either more users or a need for more features. You also want to make sure that as your technologies update, you will be able to handle the maintenance that will come along with it.

Security- You always want to make sure that your users’ data is being handled in a responsible and secure manner. Besides following general web security best practices, you could even offload some of this responsibility by choosing the right Third Party Integrations. For example, if you are trying to utilize users’ personal bank information you could use something like Plaid, or if you are implementing a payment feature you could use Stripe. Offloading security risk to other companies is a great way to ensure that your users are safe. You will also need to make sure that the rest of your tech stack is compatible with any of these technologies.

Image for post
Image for post

Commonly Used Tech Stacks

MEAN (Mongo, Express, AngularJS, Node.js)

This stack is a modern framework that allows developers to make their applications very fast while still allowing reliability and high-performance while scaling. Angular has a very fixed structure and provides many standard components for developers. The use of Node.js allows the entire frontend and backend development to be written in Javascript. It uses the Model View Controller (MVC) architecture which separates the input, processing, and output of an application. This allows for faster development and provides multiple views.

NERD (Node.js, Express, React, DB)

The NERD stack is very similar to MEAN with the major difference being the use of React instead of Angular. React is also a library, while Angular is a framework.

While Angular is more rigid, React allows for more freedom when building out the front end. Because of this increased freedom, more planning and organization will be necessary. This stack also allows for Javascript to be used throughout the entire stack.

LAMP (Linux, Apache, MySQL, PHP)

The LAMP stack is older but still very widely used. It also supports fast development and scales well with increased demand. Its popularity stems from its widespread support and security features. The users also get access to the most reliable CMS engines and host anywhere. LAMP tends to be more secure than other stacks because of its well-established encryption practices and continuous security updates.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store