One of the most important steps in building a successful web application is choosing the right technology, and as a CTO, that choice is up to you. Web application development requires a server (to run on), database (to store data in), programming language (to code functionality), and HTML+CSS to look good for the user. These are layers that form a technology stack for web development.
In this article, you will find information about what is a web app technology stack, some of the popular tools and basic criteria that can help you make the final decision.
Table of Contents
A technology stack is any combination of components that satisfy all layers of a web or mobile application and directly affect how your application will work. It has a simple anatomy, consisting of two major layers: server-side (backend; the website’s functionality, processes) and the client-side (frontend; the presentation, what the user sees).
A web app also needs a caching system, and the most popular at the moment are Redis and Memcached.
Desktop vs. Mobile adaptation
Not doing a mobile version in today’s world is not an option, the question is whether it comes first or later. According to Hootsuite 2018 report, mobile phones are responsible for 52% of web traffic.
Mobile later means that mobile user experience will not be as good as on the desktop or laptop version, but you also don’t need to worry if the web application development technologies you choose can create responsive design. Mobile first calls for an optimized app that is SEO-friendly and responsive to any screen resolution and functionality. Mobile only applications, as opposed to mobile first, are more expensive to make and you need to choose between native and hybrid development. Projects like that usually have a simple CMS website for marketing the app.
Project size and complexity
All projects can be divided into three categories, depending on the project’s complexity and functionality goals. E.g., are you trying to solve a unique problem or make a better solution to what has already been done?
Small projects – simple applications within a strict deadline and budget. Online stores and landing pages do not require much. A CMS framework, such as WordPress, is enough.
Mid-range projects – large eCommerce stores, government, financial, and enterprise projects usually require a framework and a combination of programming languages. You should also think about cross-platform integrations.
Complex projects – these have more functions, more languages, and more technologies. Social media, big eCommerce marketplace, and cloud applications require more layers.
If you are developing an audio/video streaming or file sharing web application, you need a framework or programming language that supports processing heavy loads. If it is also an app that requires low latency and high responsiveness, like social media, you need technology that can ensure that.
Scalability – an important feature directly tied to your goals. Can the technology you choose handle exponential user growth rate and the addition of new functions? You can scale vertically by adding more powerful hardware, and horizontally – by distributing the web app across more servers and databases. How easy the process will depend on the web framework you choose. E.g., Django, ASP.NET, Ruby on Rails.
Maintainability. An app is easy to maintain, in the long run, if it has a good architecture from the start and has optimized code. Any unresolved issues will reappear later and cause problems. A way around it is adding a testing framework to your stack, such as Selenium, Jasmine, Karma or Protractor.
Security. The Internet is not a safe place and you should think of your own security as much as the safety of your users’ data. In reality, no technology is 100% secure, but some provide better support than others against common web attacks. E.g., Django, Laravel, RoR, Flask.
Availability of staff. One of the pitfalls of using the newest technology, even if it seems right for your project, is that there may not be enough developers in your area. Moreover, if a bigger company is hiring the specialists you need, they will cost more. Of course, if you believe that a certain technology is best for your project, outsourcing that piece of work can save you a lot of money.
Budget. There are many open-source and free technologies that will give you high-quality results. What’s best about open-source technology is that it usually has a large pool of contributors constantly updating it and fixing bugs. Another advantage of open-source technology is that you don’t need to renew the license to maintain and update the app, thus saving money for marketing and higher wages.
Some ideas are truly revolutionary, but you are not the only one thinking of improving something. Developing and releasing them in a short time frame is the only way you can get ahead of your competitors. There are techniques that will save you the time to market (TTM).
Using frameworks, such as Ruby on Rails or Express, allows you to reduce TTM since they give you access to libraries that help with the development process. Third-party solutions help add functionality, that you don’t have to write from scratch. Choosing a popular technology also saves time on finding developers with appropriate expertise. Last but not least, well documented technology, such as PHP, means there will be less issues when developing certain functionality.
There is a great advantage to using a popular web stack. They have a solid core and can be easily customized to the project’s needs. Some of the most popular ready-made technology stack examples are LEAN (Linux-Apache-MySql-PHP), MEAN (MongoDB-Express.js-Angular-Node.js) and .NET.
|Operating system||multi-platform (see alternatives)||cross-platform||cross-platform|
|Data storage||MySql / MariaDB||MongoDB||SQL Server|
|Programming language(s)||PHP, Perl, Python||Angular framework||C#|
|Pros|| || || |
|Type of app||Scalable, dynamic and secure||Single-page applications, dynamic and common websites, landing pages||Small-scale to enterprise level, transaction systems|
|Used by||Zend, Oracle||Google, Samsung, IBM||Microsoft, Stack Overflow, Starbucks, Stack Exchange|
Trello – a web-based PM tool which uses the concept of boards and cards to represent the project and tasks.
Instagram – social media mobile platform for sharing photo and video content.
Reddit – a social network for posting news and creating discussion boards.
Uber – a mobile application that connects riders to drivers; used for ride-sharing and food delivery.
Slack – a live chat collaboration tool for mobile and desktop.
The long-term success of your project heavily relies on the web application stack you choose. There are many great web application technologies out there, but it is impossible to say which one is the best without inspecting your project need. You can opt for the ready-made options (LEAN, MEAN, .NET) or compile your own stack, so long as the technology inside it fits your goals.