Which Tech Stack Should I Choose?
We talk to a lot of people or companies with an idea for a web application. Because of their industry expertise, they see a way for a web application to provide serious value to themselves and other members of their industry. They have an idea for how the application should work.
But when they go to hire a development team to implement their vision, they are faced with a confusing landscape of technologies, developer types, and acronyms. Particularly, they are faced with the question of what web application technology stack would be best for their desired application.
This article seeks to accomplish two goals:
- Describe the common web app tech stacks, how they are different, and what benefits they have
- Put the tech stack choice into perspective
What Is a Web Application Technology Stack?
A web app tech stack is a collection of various software elements that contain all of the capabilities you need to web build applications. In web application development, tech stacks typically consist of:
- An operating system (Windows, Linux)
- A web server (IIS, Apache, Nginx)
- A database (SQL Server, MySQL, Postgres)
- A programming language (C#. Ruby, PHP)
- A Web framework (.Net, Rails, Laravel)
Application development teams usually standardize on one tech stack to focus their technical expertise. You may have heard a few of these in passing if you’ve been glancing through technology solutions or have friends in the IT world, for example: .Net, Ruby on Rails, or LAMP / LEMP. Here’s what each of these means:
|.Net||Windows||IIS Server||C#||.Net||Sequel Server|
|Ruby on Rails||Linux||Apache||Ruby||Rails||Mysql / Postgres|
|LAMP / LEMP*||Linux||Apache / Nginx||PHP||lots of choices||Mysql / Postgres|
There are also other web application tech stacks (MEAN, etc…) but for this article, we are sticking to the most common web application tech stacks.
Tech Stacks: How do they compare?
Asking a web developer what the differences are in tech stacks can be really confusing. We’ve tried to take a look from a non-technical person’s perspective, evaluating some business metrics that can be affected by tech stack choice.
Performance is usually the metric a potential web entrepreneur considers most important initially. Performance describes how fast a page loads, or how fast the application can manipulate data or process an image, etc. In general for web applications, we’re talking differences of tens of milliseconds.
There are many costs associated with web applications, for example hosting cost, technology licensing, and paying for developers. These costs are highly dependent on the underlying technology of the application.
Finally, the supply of people able to build your app in a specific technology is a critical issue when thinking about the long-term evolution of an application. Being able to change or scale your development team according to the application’s needs is critical to the long-term success of the application.
With all this in mind, here is how we would rate the different technology stacks across these metrics.
|Performance||Licensing Cost||Hosting Cost||Developer Cost||Developer Supply|
|Ruby on Rails||Medium||None||Medium||High||Medium|
|LAMP / LEMP||Medium||None||Low||Medium||High|
Looking at this table what jumps out is:
- .Net = Fast and Expensive
- Ruby on Rails = Medium all around
- LAMP / LEMP = Least Expensive
So Which Tech Stack Should I Use?
Looking at the metrics above, it would seem that the defining question is: “Can I afford high performance?” If so, go with .Net, otherwise choose between the remaining two.
However, we think this is the wrong question.
Usually, in the big picture, it really doesn’t matter. This is not the question you should be stuck on.
If you have an idea that you think is really valuable, the first thing to do before deciding to build it is to validate it. It’s your idea, it is supported by your experiences, and it might be perfect the way it is. But the problem is that, as frustrating as it is, other people in the world think differently than you, including your target customers. Before betting your corporate budget, or personal 401k on your idea, you should really test it out. Specifically, you should test out the assumptions the applications success relies upon.
In this context, if one of the assumptions is blazing fast performance, you should probably go with a .Net stack. However, if performance is an obvious ‘nice to have’, you can open yourself up to a much richer developer marketplace, with less expensive developers and hosting requirements, by looking at RoR or LAMP options.
From our perspective, the right tech stack to use is the one that helps you validate the assumptions the fastest, by allowing you to build out the application cost-effectively and get it in front of real people quickly.
If you have an idea for a web application that could improve your business or even be valuable to others, take the next step, not by picking a tech stack, but by mapping out the critical assumptions you need to validate. It’s not always straightforward, and we’re always happy to help map these things out.
Drop us a line if you’d like some help with your project!
*At Purpose Built we choose the LEMP (Linux, NginX, MySQL, PHP) stack for all our applications. This allows us to keep our customers’ ongoing hosting costs very low, and protect them from technology licensing costs. For example, a typical Linux-based hosting environment can be as inexpensive as $5/month while Microsoft Windows hosting environments are typically hundreds of dollars a month. Meanwhile, with the abundance of solid PHP developers available, our customers are not locked into using our services forever, should they choose to change. We feel it’s the responsible choice for our customers.