A solid foundation, as builders and architects know, is the core of an impressive building. Without this in place, chaos will spread and the community will be in disarray. The tech industry can borrow a leaf from this in selecting the right technology stack for startups.
Imagine a world where Facebook, Apple, Tesla, and other giants in the tech industry failed to employ the right platform for their then inchoate business? The world would not forgive their mistake! Not only would their choice of tech limit/bolster the expansion of their startup, it will also affect the operability of the business.
Unfortunately, a lot of entrepreneurs, when building their business, only focus on the front end and leave this crucial decision to the developer. Unbeknownst to them, the technology stack selected has a tremendous impact on the success of any startup. Here are some questions to ask when considering your options.
Mobile Applications or Web?
This debate transcends the age-long Apple vs Android, Marvel vs DC, Coke vs Pepsi argument. In order to decide, you need to consider your consumers carefully. In 2017, research showed that adults in the US will spend almost 3 hours daily on apps while they barely spend 34 minutes on the web. However, if your service can only be delivered via a website, the choice is made easier for you.
LAMP or MEAN?
A stack which consists of Linux operating system, Apache web server, MySQL database, and PHP, Perl or Python language is regarded as one of the most reliable stacks. They are popular, widely supported, and offer enhanced security features. However, the MySQL database is not as feature-intensive as other options.
MEAN, on the other hand, is a contemporary stack with a wide range of capabilities. It consists of MongoDB database, Express.js and AngularJS framework, with a Node.js language environment. Even though it is very flexible and scalable, it might prove complicated.
A careful evaluation of the different pros and cons and how they affect your startup will help you make an informed decision on your choice of a stack.
What is the Purpose of Your Startup?
It is important to first figure out how your technology will be utilized before implementation. If, for example, you employ a very responsive platform suited for e-commerce for your business; an enterprise mobile application, it will turn out to be a debacle. This should also affect the inherent functionality and usability of the system.
Is There Opportunity to Scale?
The aim of any startup is to become mature and scalable. Your technology stack will go a long way in determining the growth of your business. To give you perspective, Facebook started in 2004 with no inkling of the population explosion to follow. In 2010, they hit 500 million users. 5 years later, their population tripled. And now in 2018, the figure is put around 3 billion.
Your technology stack should support the addition of functionality, services, and integration with more sophisticated technology. For instance, systems that support Service Oriented Architecture (SOA) are reputed to be more market-friendly and they easily adapt to the demands of the market.
While comparA key advantage of choosing MEAN is the fact that JavaScript code can be reused for both the server and the client. But this is rarely ever seen in practice because it will help maintain security if the client and server code bases are kept separate.
But using JavaScript for both the front-end and the back-end makes life easier for developing teams to switch between the two. It makes the workflow homogeneous and also enables two groups of full stack developers to work well together on the application as a whole.
It’s no secret that it can be quite a challenge to switch between PHP or Python for the server and then use JavaScript and HTML for the client. So if you’re more comfortable with JavaScript than other languages, MEAN is the right choice for you.
But on the other hand, end users often use ad blockers and disable JavaScript because of privacy concerns. Most browser extensions also allow the users to actively select the scripts that are permitted to run, so your app won’t work if it’s completely based on JavaScript.
Disabling JavaScript has rendered many websites useless, so the battle continues between users and websites. This has even led to some users being banned from certain websites as this type of user behavior can break web applications.
So although JavaScript comes with the advantage of making your web app look modern, it might not be a feasible solution to reach all users. Further, JavaScript also slows down websites, so its popularity can diminish significantly in the near future. So all this has to be taken into account when making your stack selection.
However, you can also avoid going heavy with JavaScript at the front end and take advantage of the speed offered by Node.JS. But at the same time, PHP is also just as fast when optimized.
Traditional multi-threaded Apache setups are resource heavy, so LAMP can also be an option that ends up being slow. But PHP can be significantly optimized by Nginx or Lightspeed. Yet, replacing Apache with Nginx can be quite a headache to configure.