This website uses cookies to better the user experience of its visitors. Where applicable, this website uses a cookie control system, allowing users to allow or disallow the use of cookies on their computer/device on their first visit to the website. This complies with recent legislative requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user’s computer/device. To learn more click Cookie Policy.

Privacy preference center

Cookies are small files saved to a user’s computer/device hard drive that track, save, and store information about the user’s interactions and website use. They allow a website, through its server, to provide users with a tailored experience within the site. Users are advised to take necessary steps within their web browser security settings to block all cookies from this website and its external serving vendors if they wish to deny the use and saving of cookies from this website to their computer’s/device’s hard drive. To learn more click Cookie Policy.

Manage consent preferences

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
Cookies list
Name _rg_session
Provider rubygarage.org
Retention period 2 days
Type First party
Category Necessary
Description The website session cookie is set by the server to maintain the user's session state across different pages of the website. This cookie is essential for functionalities such as login persistence, ensuring a seamless and consistent user experience. The session cookie does not store personal data and is typically deleted when the browser is closed, enhancing privacy and security.
Name m
Provider m.stripe.com
Retention period 1 year 1 month
Type Third party
Category Necessary
Description The m cookie is set by Stripe and is used to help assess the risk associated with attempted transactions on the website. This cookie plays a critical role in fraud detection by identifying and analyzing patterns of behavior to distinguish between legitimate users and potentially fraudulent activity. It enhances the security of online transactions, ensuring that only authorized payments are processed while minimizing the risk of fraud.
Name __cf_bm
Provider .pipedrive.com
Retention period 1 hour
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to support Cloudflare Bot Management. This cookie helps to identify and filter requests from bots, enhancing the security and performance of the website. By distinguishing between legitimate users and automated traffic, it ensures that the site remains protected from malicious bots and potential attacks. This functionality is crucial for maintaining the integrity and reliability of the site's operations.
Name _GRECAPTCHA
Provider .recaptcha.net
Retention period 6 months
Type Third party
Category Necessary
Description The _GRECAPTCHA cookie is set by Google reCAPTCHA to ensure that interactions with the website are from legitimate human users and not automated bots. This cookie helps protect forms, login pages, and other interactive elements from spam and abuse by analyzing user behavior. It is essential for the proper functioning of reCAPTCHA, providing a critical layer of security to maintain the integrity and reliability of the site's interactive features.
Name __cf_bm
Provider .calendly.com
Retention period 30 minutes
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to distinguish between humans and bots. This cookie is beneficial for the website as it helps in making valid reports on the use of the website. By identifying and managing automated traffic, it ensures that analytics and performance metrics accurately reflect human user interactions, thereby enhancing site security and performance.
Name __cfruid
Provider .calendly.com
Retention period During session
Type Third party
Category Necessary
Description The __cfruid cookie is associated with websites using Cloudflare services. This cookie is used to identify trusted web traffic and enhance security. It helps Cloudflare manage and filter legitimate traffic from potentially harmful requests, thereby protecting the website from malicious activities such as DDoS attacks and ensuring reliable performance for genuine users.
Name OptanonConsent
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonConsent cookie determines whether the visitor has accepted the cookie consent box, ensuring that the consent box will not be presented again upon re-entry to the site. This cookie helps maintain the user's consent preferences and compliance with privacy regulations by storing information about the categories of cookies the user has consented to and preventing unnecessary repetition of consent requests.
Name OptanonAlertBoxClosed
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonAlertBoxClosed cookie is set after visitors have seen a cookie information notice and, in some cases, only when they actively close the notice. It ensures that the cookie consent message is not shown again to the user, enhancing the user experience by preventing repetitive notifications. This cookie helps manage user preferences and ensures compliance with privacy regulations by recording when the notice has been acknowledged.
Name referrer_user_id
Provider .calendly.com
Retention period 14 days
Type Third party
Category Necessary
Description The referrer_user_id cookie is set by Calendly to support the booking functionality on the website. This cookie helps track the source of referrals to the booking page, enabling Calendly to attribute bookings accurately and enhance the user experience by streamlining the scheduling process. It assists in managing user sessions and preferences during the booking workflow, ensuring efficient and reliable operation.
Name _calendly_session
Provider .calendly.com
Retention period 21 days
Type Third party
Category Necessary
Description The _calendly_session cookie is set by Calendly, a meeting scheduling tool, to enable the meeting scheduler to function within the website. This cookie facilitates the scheduling process by maintaining session information, allowing visitors to book meetings and add events to their calendars seamlessly. It ensures that the scheduling workflow operates smoothly, providing a consistent and reliable user experience.
Name _gat_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _gat_UA-* cookie is a pattern type cookie set by Google Analytics, where the pattern element in the name contains the unique identity number of the Google Analytics account or website it relates to. This cookie is a variation of the _gat cookie and is used to throttle the request rate, limiting the amount of data collected by Google Analytics on high traffic websites. It helps manage the volume of data recorded, ensuring efficient performance and accurate analytics reporting.
Name _ga
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga cookie is set by Google Analytics to calculate visitor, session, and campaign data for the site's analytics reports. It helps track how users interact with the website, providing insights into site usage and performance.
Name _ga_*
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga_* cookie is set by Google Analytics to store and count page views on the website. This cookie helps track the number of visits and interactions with the website, providing valuable data for performance and user behavior analysis. It belongs to the analytics category and plays a crucial role in generating detailed usage reports for site optimization.
Name _gid
Provider rubygarage.org
Retention period 1 day
Type First party
Category Analytics
Description The _gid cookie is set by Google Analytics to store information about how visitors use a website and to create an analytics report on the website's performance. This cookie collects data on visitor behavior, including pages visited, duration of the visit, and interactions with the website, helping site owners understand and improve user experience. It is part of the analytics category and typically expires after 24 hours.
Name _dc_gtm_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _dc_gtm_UA-* cookie is set by Google Analytics to help load the Google Analytics script tag via Google Tag Manager. This cookie facilitates the efficient loading of analytics tools, ensuring that data on user behavior and website performance is accurately collected and reported. It is categorized under analytics and assists in the seamless integration and functioning of Google Analytics on the website.

Technology Stack for Web Application Development

  • 476092 views
  • 14 min
  • Jan 04, 2020
Gleb B.

Gleb B.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Tags:

Web

Share

What’s the most important thing to consider when you’re developing a top-notch web application? No doubt it’s the technology stack your app will be based upon.

The choice of a relevant tech stack is particularly challenging for small businesses and startups, since they usually have limited budgets and, thus, need a technology stack that provides the most bang for the buck to get their projects off the ground.

The right tech stack is, to a great extent, the key to your project’s success, while the wrong choice of web app development technologies may be a reason for failure.

We’ve decided to give you a helping hand and reveal the criteria for choosing the most appropriate tech development stack for your web application.

What Is a Technology Development Stack For Web?

Before moving on to the criteria for choosing a modern web technology stack, you should clearly understand what comprises the process of web application development.

Without going too deep into details, there are two sides to web development: the client side and the server side. The client side is also called the front end. Server-side programming involves an application (and a backend programming language that powers it), a database, and the server itself.

Client-Side Programming

Client-side (i.e. frontend) web development involves everything users see on their screens. Here are the major frontend technology stack components:

  • Hypertext Markup Language (HTML) and Cascading Style Sheets (CSS). HTML tells a browser how to display the content of web pages, while CSS styles that content. Bootstrap is a helpful framework for managing HTML and CSS.
  • JavaScript (JS). JS makes web pages interactive. There are many JavaScript libraries (such as jQuery, React.js, and Zepto.js) and frameworks (such as Angular, Vue, Backbone, and Ember) for faster and easier web development.

Server-Side Programming

The server side isn’t visible to users, but it powers the client side, just as a power station generates electricity for your house.

The challenge lies mainly in the choice of server-side technologies for developing your web application.

As for server-side programming languages, they are used to create the logic of websites and applications. Frameworks for programming languages offer lots of tools for simpler and faster coding. Let’s mention some of the popular programming languages and their major frameworks (in parentheses):

  • Ruby (Ruby on Rails)
  • Python (Django, Flask, Pylons)
  • PHP (Laravel)
  • Java (Spring)
  • Scala (Play)

Node.js, a JavaScript runtime, is also used for backend programming.

Your web application needs a place to store its data, and that’s what a database is used for. There are two types of databases: relational and non-relational (the latter being subdivided into several categories), each having its pros and cons. Here are the most common databases for web development:

  • MySQL (relational)
  • PostgreSQL (relational)
  • MongoDB (non-relational, document)

A web application needs a caching system to reduce the load on the database and to handle large amounts of traffic. Memcached and Redis are the most widespread caching systems.

Finally, a web application needs a server to handle requests from clients’ computers. There are two major players in this domain:

  • Apache
  • Nginx
Tech Stack Diagram

To develop a web application, you need to select the server, database, programming language, framework, and frontend tools that you’re going to use. These web development technologies build on top of each other and are, in fact, collectively called a stack.

The Technology Stack at RubyGarage

At RubyGarage, we have found a perfect technology stack for our projects, uniting the best from the web app development. Throughout our work, we’ve managed to figure out which frameworks work better, which SQL data storage fits the projects naturally, and which programming languages are the best fit for a wide range of projects. Altogether, these technologies help us deliver products faster and keep high quality. Depending on your business needs, we can rework a technology stack, for instance, add necessary libraries or frameworks. Below you can find our choice for both frontend and backend web app development.

technology stack
The Technology Stack at RubyGarage

How NOT to Choose a Web Technology Development Stack

Now that you have a general understanding of what a web technology stack is, we’d like to draw your attention to the common practices that entrepreneurs and startuppers follow when choosing the technologies for their projects.

Though these practices may sound reasonable, following them may botch up your whole project.

So, what do businesses usually rely on when choosing a technology stack? Here are the most common practices that you should avoid:

#1: Don’t Choose Based on Competitors’ Experiences

Learning from the experience of your competitors may be the right strategy, but not when you’re picking a technology stack. Remember that your project is unique and your ultimate goal is to beat your rival companies.

Therefore, how can you be sure that the tech stacks used by your competitors are truly suitable for your project? If you initially make the wrong choice, you’re likely to face the need to modernize your technology stack in the future, which isn’t cheap.

#2: Don’t Choose Based on Personal Preferences

It’s possible to rely on your personal preferences when choosing a technology stack for a web application. However, there’s a pitfall: this approach works well only for people with a solid background in web development.

For example, if you have relevant experience in web application development or if you’re a chief technology officer, your tech stack preferences may be totally correct. But if you don’t have in-depth knowledge of the web development process, this strategy might lead you to failure, as you are likely to pick the wrong components for your technology stack.

#3: Don’t Choose Based on Previous Projects

No matter how successful your previous projects turned out, you fulfilled them in the past. The technology stack components you used at the time may be outdated now.

Moreover, your projects aren’t the same: the tech stack you use for one project may be inappropriate for another.

#4: Don’t Choose Based on Online Research

Today, the internet is full of surveys, comparisons, and other information that helps you select a technology stack for web applications.

However, there’s a problem: you’re likely to come across sources that will express the exact opposite opinions, providing seemingly strong proofs. Which source should you believe?

Choosing a technology stack is all about practical experience. You can make the right choice only if you’ve applied some technologies and know how well they work. If your knowledge is merely theoretical and based on online research, your chances of picking relevant technologies are very low.

Choosing a tech stack based on internet research only is like trying to fix your car after reading the manual but without having any practical skills. You may do it right, but more likely you’ll have to bear losses for the damage you’ll cause.

Project Failure Image

Criteria for Choosing a Tech Stack

Having learned what you shouldn’t do when selecting an appropriate tech stack, it’s now time to move on to the core of our article, in other words the criteria you should consider.

Criterion #1: Type of Web Application

The first thing to decide upon is the type of web application you’re developing. A tech stack is a toolset for creating a web app, so you need to fully realize what you’re planning to build in order to pick the appropriate tools. You should find a toolset that provides unique advantages for your web application.

In terms of complexity, all web projects can be divided into three types:

  • Simple. These web applications are created with the help of out-of-the-box solutions (such as CMS software, for example). Examples: landing pages and simple online stores.
  • Mid-level. These apps have more functions than simple apps and are built with the help of frameworks. Examples: apps for large ecommerce stores and enterprises.
  • Complex. These web apps have lots of functions and integrations; they’re developed with the help of different web development technologies and may be composed of several programming languages. Examples: social networks, large ecommerce marketplaces, fintech software, etc.

Knowing the type of web app you’re developing isn’t enough; you should take its business goals into account as well. This is important, since your business goals impact the choice of technologies for development. Your web app can be tailored for:

  • Processing heavy loads. If your web project relies on load processing, you should opt for programming languages and frameworks that can provide this. Examples of such projects are video/audio streaming apps and file sharing services.
  • Low latency. A different tech stack is required to make your web application highly responsive and to reduce latency. Social networks are probably the best example of websites that require low latency.

Criterion #2: Time to Market

Time to market (TTM) is extremely important when choosing a tech stack for startups and for small businesses. The faster you develop and release your application, the more ahead of competitors you’ll be. Moreover, the less time development requires, the cheaper the development cost.

TTM heavily depends on the technology stack you select for your web application, and here’s a list of issues you should consider when choosing a proper stack:

  • Out-of-the-box solutions. Check whether a technology has some out-of-the-box solutions for adding some necessary functionality to your web application. For example, the Ruby on Rails framework allows developers to use lots of open-source libraries (called gems) that facilitate the development process and significantly reduce TTM.
  • Integration with third-party solutions. Make sure the tech stack you choose supports integration with third-party solutions, as it’ll help you add the functions you need to your web application without reinventing the wheel.
  • Developer availability. Even if you’ve decided upon the tech stack, there’s still a problem: you need developers to do all the coding. You should check whether you’ll be able to find developers with expertise in the technology stack you choose. And remember that building a web application is just the beginning. You also need developers to maintain it after launch.
  • Documentation and developer community. Producing good code is difficult, and any development team may stumble over some tricky issues. It may take quite long for a team to find a solution, which means, in turn, a missed web project release deadline. That’s why you should find out whether the technologies you’re going to select have large developer communities and rich documentation.
  • Frameworks by Popularity on GitHub
  • Easy to test. A web application contains many lines of code, so bugs are inevitable. Needless to say, removing all bugs requires a lot of time and slows down development. To counter this problem, choose technologies that are easy to test. Some technologies are based on a so-called test-driven development approach, which implies that testing goes first and coding comes after. Test-driven development allows you to guarantee your code and product quality and speed up development in the medium and long term.

Criterion #3: Web App Development Cost

Needless to say, turning your idea into a real-life web application isn’t free of charge and requires investment. The choice of a website technology development stack has a direct impact on the development cost. There are two main issues you need to take into account:

  • Developer salaries. Web developers are highly skilled professionals who are rather well-paid. Their salaries, however, depend on the technologies they work with. Consequently, your expenses will be different depending on tech stack. You should remember that the more advanced the technology is, the higher the developer salary will be.
  • Average Developer Salary USA
  • App maintenance cost. Creating a web application is just one side of the coin; maintaining it is the other. To reduce maintenance costs, you should opt for free open-source technologies. For example, the Ruby on Rails web development framework is available with the MIT licence, which means it can be modified, upgraded, and used without any restrictions.

Criterion #4: Security

Our world has gone digital over the last two decades and so have criminals. Cyberattacks are the biggest threat to online businesses: according to a forecast by Juniper Research, annual financial losses from data breaches are expected to reach a mind-blowing $2.1 trillion by 2019. Today, governments and corporations are working hard on ensuring the highest level of cyber security possible.

No doubt, you want your web application to be secure. Hence, you should pick technologies that allow you to create a really secure app. There are lots of different opinions as to which programming language is the safest, but in truth no language guarantees 100% safety.

Every web development technology serves its purpose, so you should choose the right tool first and follow security guidelines second. Most web development technologies have security guidelines where all steps for preventing threats and minimizing vulnerabilities are given. You need to make sure that your web app is created in accordance with the appropriate security guidelines.

Criterion #5: Scalability

Scalability isn’t a feature to turn tail on when developing a web application. No doubt you wish to see your web project grow and gain popularity. In general, there are two kinds of scalability:

  • Horizontal scalability, which means the ability of a web application to accommodate more requests. In other words, an app must be able to work if the number of users grows dramatically.
  • Vertical scalability, which means the ability to add new components to a web application without damaging its performance.

You should think of scalability in advance and choose an appropriate technology stack for your needs. This may seem a difficult choice as you’ll probably come across a number of contradictory opinions. However, we recommend relying not on someone else’s words, but on concrete examples of why exactly a certain technology is scalable.

Technology Stacks Behind Successful Web Projects

By now, you are almost certainly curious about some modern web application stacks. Let’s take a look at what technologies power some of the most successful web projects:

  • Airbnb, the world’s most well-known hospitality service that helps millions of people find rental apartments and short-term lodging, is largely based on Ruby on Rails.
Airbnb Tech Stack
  • Shopify helps entrepreneurs power their online stores. Ruby on Rails is the core technology behind this super-successful web service.
Shopify Tech Stack
  • Quora is a question-and-answer website where people can find answers to each other’s questions.
Quora Tech Stack
  • Instagram, a mainstream social networking application, is built with Python.
Instagram Tech Stack
  • Product Hunt is a popular service that allows users to share information about products and find new products on the web.
Product Hunt Technology Stack
  • Codecademy is an online educational platform that offers free coding classes in 15 programming languages, including Ruby, Python, and Java.
Codecademy Technology Stack
  • Pinterest is a social network aimed at helping people share and find new interests.
Pinterest Tech Stack
  • Reddit is a popular news aggregator and discussion platform.
Reddit Tech Stack
  • Coursera is a venture-backed educational platform that offers a variety of online courses on different subjects.
Tech Stack Behind Coursera
  • Facebook is the world’s biggest social network with almost 2 billion active monthly users.
Technology Stack at Facebook

Pick a Technology Stack According to Your Project

As you can see, selecting the right tech stack is a real challenge, but the core idea that should guide you is as follows: choose the technologies according to your project. You shouldn’t rely on time-proven technologies only, even if they have been used by some large and successful companies or prominent projects have been accomplished with their help.

You should always be realistic and take all pros and cons into account. The wrong choice of a technology stack may end in financial losses, so if you aren’t experienced in web development, leave the choice to professionals. A team of professional web developers will be able to choose the right tools for delivering a top-notch web application with all the functionality you need.

CONTENTS

Tags:

Web

Authors:

Gleb B.

Gleb B.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Rate this article!

Nay
So-so
Not bad
Good
Wow
202 rating, average 4.64 out of 5

Share article with

Comments (17)
Sanjay Rana Sah
Sanjay Rana Sah over 6 years ago
Very effectively expressed in simple language. Many thanks!
Reply
Gleb B.
Gleb B. over 6 years ago
Thank you for your kind words, Sanjay! We're happy that our article helped you.
Reply
Mike Coulson
Mike Coulson over 6 years ago
great share, it will he.lp many web developers to focus on points before choosing right technology for their project
Reply
Gleb B.
Gleb B. over 6 years ago
Thanks, Mike! We're glad that our article helps web developers.
Reply
Fred Ramirez
Fred Ramirez over 6 years ago
Excellent and written for guys like me.
Reply
Gleb B.
Gleb B. over 6 years ago
Thank you, Fred! We're happy to be helpful.
Reply
Clémence Knaébel
Clémence Knaébel over 6 years ago
Hi, excellent article! I am trying to figure out where CMS like Drupal stand: they would be replacing all components from front-end to back-end language by a visual programming system built on php, leaving only the database to be external, is that right? Thank you!
Reply
Gleb B.
Gleb B. over 6 years ago
Thank you, Clémence! Generally speaking, yes, content management systems like Drupal replace the need for frontend and backend programming and allow you to create websites without any coding skills. However, Drupal provides a set of functional modules, so if you need something unique in your project, you're likely to need some coding.
Reply
Dinesh Shakthy
Dinesh Shakthy almost 6 years ago
All ideas provided here are unique and that actually applicable for real-time business projects!! Thanks for sharing this blog and resource !!
Reply
Maryna Z.
Maryna Z. almost 6 years ago Dinesh Shakthy
Hi there! We're glad you enjoy our work. Thanks :)
Reply
Digicorp
Digicorp over 5 years ago
Great job! You have written such a fantastic article on choosing the right tech stack to develop a web application. This piece explains the major insights related to technology stack. This is an excellent resource in web application development explaining client & server side perspectives.
Reply
Gleb B.
Gleb B. over 5 years ago Digicorp
Hi! We're glad to hear that you enjoyed our article! Keep up with our blog updates for more useful information ;)
Reply
Soumendu Mukherji
Soumendu Mukherji over 5 years ago
Gleb and Vlad... Hats off to your clarity, simplicity and honesty with which you have written this article. Very Informative and balanced. Keep on churning more. Cheers
Reply
Gleb B.
Gleb B. about 5 years ago Soumendu Mukherji
Hi there! Thanks for your kind feedback! Keep up with our blog updates for more useful information ;)
Reply
Willium Kally
Willium Kally almost 5 years ago
Nice post, it's really informative. Anyone can get knowledge from this article. Nowadays web development is very popular and everyone wants to know about that and you've done a great job to post about it. Thank you so much for sharing it with us.
Reply
BoTree Technologies
BoTree Technologies over 4 years ago
This article articulates technology stack in the perfect manner. I have been looking for such articles for a long and thankful that I finally stumbled upon this one. Thank you for taking out the time to write this piece.
Reply
Duy Tran
Duy Tran about 4 years ago
Thank you for the information. I was out of web dev for a good while and I was looking for something like this to get me back on track!
Reply

Subscribe via email and know it all first!