In this article, we write a complete guide to help you know more about technology stacks. You will then start planning how your app stack will work.
One thing I would like to prevent is creating your own Frankenstein tech-stack! It is critical to understand which elements are missing from your stack. They will come back and haunt you later. So it’s essential to set up your tech-stack correctly from the start, constantly evaluate progress, and strive for an entirely balanced approach.
You can read more about this philosophy in our article: “The Complete Guide to Your Technology Stack.” It explains many common mistakes developers make when choosing an approach. It also covers what tools you should use to improve your coding efficiency.
Design a simple application that will work in the browser or on the server (or both) but not simultaneously! When choosing technologies, it’s better to choose one side and master that technology rather than tries to be a jack of all trades and master neither.
As for the technology stack, choose the best tools (libraries/modules) that fit your use case:
If it’s an intentionally complex app requiring a large team of developers working together on many different aspects, we suggest the MEAN stack. It’s designed for high-performance, large-scale web applications.
If it’s a small project or the first project of a startup company, then we suggest using a client-side solution (JS / HTML5). It will provide you with everything you need to build an MVP product. Later you can switch to server-side modules when your app starts to gain traction.
It’s also a good idea to keep the back-end logic as simple as possible by avoiding complex business rules and operations. Instead, use an ORM (Object Relational Manager) or similar tool to access data in any form, whether it’s a complex data structure or an array.
Depending on the use case, it’s good to have some standard communication protocol between the front and back ends. This will make it easier for developers working on both sides of the project.
Write on App Stack Specifications and Points: The complete Guide to the Technology Stack.
Integration with APIs (like google maps) that require an active connection to a remote server or back-end since they provide data in multiple forms and formats from different sources;
It would be best if you supported real-time communication between the users of your app, such as chat applications or games;
You need to cache some data for offline usage. This way, you can load and display important information even if there is no internet connection (when traveling, in remote areas).
The application is run on a server – a computer accessed through a network connection like the internet. The server may be remote or located in your building (if you rent an office). Here are some scenarios where writing logic on the server-side might come in handy:
You need to communicate with 3 rd party APIs, and it’s easier and faster to do so if you don’t have to convert data between multiple formats;
party APIs, and it’s easier and faster to do so if you don’t have to convert data between multiple formats; You need to provide users access to the application from any device or any location or want your app to work better with mobile devices (by caching some data for offline usage);
You need to cache your data, and you have a dedicated server for that purpose;
Your server has a lot of CPU power available, so there is no problem with executing programs that might take a while.
We’ve discussed pros and cons related to both approaches, but what if we told you it’s possible to write an application where some logic is on the client-side and some is on the server? Well, it’s true! It’s called a hybrid app.
Hybrid apps are web applications that load both AngularJS (or its equivalent) and Node.js (or other technologies like Meteor or Play Framework). Many developers prefer this solution and choose to use React or AngularJS on the client-side and Node.js for running logic on the server.
Read more about building hybrid apps stack in our post: How to build a hybrid app based on Meteor framework?