Codebrahma

Work

Choosing The Right Tech Stack For Your Product

Starting to build a new product and seeing your idea take share can be an exhilarating feeling. But founders, specially those without a tech background, have a hard time deciding which technology stack should they use for their product. The information overload on the internet can sometimes only add to the confusion. If you are in such a position, this article will help you reduce the variables in your decision making and help you conclude faster.

What Is A Tech Stack

Let’s start from the basics. A tech (technology) stack is a set of technologies, programming languages and software products that is used to create a functional web (or mobile) application.

A typical web application is divided into two parts:

  • Backend (concerning server side)
  • Frontend (concerning the user/client side)
### Backend Tech Stack Backend is the umbrella term for programming the business logic, working with the Database, server side hosting and deployments. The client side (website/app) communicates with the backend for processing user requests, accessing the database and executing simple CRUD (create, read, update, delete) operations.

One of the most popular backend stacks, until the recent times was LAMP which is an abbreviation for Linux, Apache, MySQL and PHP. These are the backend technologies used – PHP as the scripting language, MySQL as the database, Apache as the web server and Linux being the server operating system.

Python – Django framework is another very popular backend stack used by entrepreneurs to quickly hack together a working prototype.

Javascript which was mainly a browser scripting language until a few years ago, has seen tremendous rise in popularity as a server side programming language. A complete Javascript based stack (including the frontend) called MEAN has become one of the more popular choices for tech stack for MVPs. MEAN stands for MongoDB, Express.js, Angular.js and Node.js. MongoDB being the nosql database, Express and Node running on the backed while AngularJS is used to render the interface. Due to its open source nature and availability of extensive libraries available, a lot of modern web applications are being built on the MEAN stack.

how to choose the right tech stack for your software product

Frontend Tech Stack

Frontend is the part of the application a user interacts with. It could be a website, web app or a mobile app. When building for the web, the frontend consists of three technologies:

  • HTML – the markup language
  • CSS – the style sheet
  • Javascript – browser scripting language
[Google’s AngularJS and Facebook’s [ReactJS](/react-js-development/) are two of the most popular frontend frameworks in the market today. They both are language independent, meaning no matter what tech stack you’ve used for your backend – you could use either of these frameworks to create impressive user interfaces. While we have teams working on both AngularJS and ReactJS – we’re a bit more biased towards using ReactJS for frontend, specially due to the React Native library for mobile. ] For CSS, Twitter’s Bootstrap has been the goto framework since launch. The interactive components in Bootstrap are built on JQuery.

When building applications on mobile, using the native languages is the first preference due to more control and easier hardware access. Java for Android and Objective-C/Swift for iOS. Although, there are plenty of cross platform frameworks available, none have caught the developers attention like React Native.

factors influencing the choice of your tech stack

Factors Influencing Choice Of Tech Stack

There are lot of factors that could influence a company’s choice of tech stack. Objectively, to help with decision making, we believe the following factors are the most important.

Stage of your business

Depending on which stage your business or product is, you technology stack may or may not play a very important factor. For example, if you’re just starting out, your goal would be to get to the market in the shortest time possible with a working prototype. In such a case any language/framework/CMS tool that lets you put together a working prototype and has the shortest learning curve should be your goto. Ruby on Rails is considered fast for development due to a vast number of ‘gems’ available. Working prototypes can also be build on WordPress 🙂 If your business is within the Finance or Banking domain, you might want to go with languages like Java or .Net (C#) due to compliance and regulatory issues.

Availability of talent

Availability of developers who are going to build your product is one of the most influential factors defining your company’s tech stack. Your developer friend might be gushing about the awesomeness that is Go, but you might have a hard time finding solid Go developers easily. One of the best ways to gauge a programming language’s popularity and available developers is to regularly visit sites like Github and Stackoverflow. The number of questions and answers around a particular language could give you a fair idea about the community around that language. Number of contributors for a particular framework/library on github is also a helpful indication to the popularity of the language.

If you’re concerned about the scalability of your product, known that unless you have very specific & extreme requirements, almost all languages would be able to handle your traffic. More often than not, applications don’t scale well because of poor architecture and product design rather that the choice of programming language.

In our humble opinion, a bias towards decision is way more important that fretting about the right tech stack early on. Choose whatever tech stack you and your dev team feel most confident with. If, however, you have any specific concerns don’t hesitate to drop us a line here.

Written by
Posted in
Development
Tags
If you want to get more posts like this, join our newsletter