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.
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.
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.
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.
Commonly Used Tech Stacks
MEAN (Mongo, Express, AngularJS, Node.js)
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.
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.