Creating a new technology startup is a daunting process. Not only do you need to think of a new and innovative idea, but you also have to create a team, market your idea, and create your application or website. EACOMM, as a custom software developer, is often approached by would-be startups to help them realize their dream. Over the years we have helped create successful startups in the fields of telecommunications, logistics, e-commerce, and marketing. Selecting a Solution Stack is one of the more important decisions we need to make when starting a new software project.
What is a Solution Stack?
A solution stack or software stack is the set of software applications needed to create a platform where a website or application will reside. Over the two decades that EACOMM has been developing software, we have used several solution stacks such as:
LAMP (Linux, Apache, MySQL, PHP): Arguably the most popular solution stack for web application development, LAMP has been around since the turn of the century. Linux is the gold standard operating system for web servers. It is secure, robust, and very stable. Apache is one of the first web servers and despite nearing three decades in existence, is still one of the top web servers being used in the world. MySQL (or sometimes MariaDB) is an open-source relational database that is also nearing three decades of existence. MySQL is proven to be highly stable and reliable as well as fairly easy to learn how to use. Finally, PHP: Hypertext Preprocessor is a server-side scripting language. Through PHP, a webpage can access databases, run server applications, and access server resources. The key advantage of using LAMP is that it is 100% open source and as such completely free to use. It is also quite easy to find developers who know this stack, given its popularity. However, its popularity is also its main weakness, in that it is a common target for hackers and PHP is known to have several security flaws. LAMP deployments can also be difficult to scale once your startup has gained popularity.
WAMP (Windows, Apache, MySQL, PHP): A variant of the previous stack that replaces the Linux Operating System with Windows. This is often used as an initial development environment for projects that will eventually migrate to the LAMP stack once it goes live. The reason for this is most desktops are running Windows. With the familiarity and popularity of the Windows User Interface, it is easy to see that a lot of people find it simpler to deploy and maintain a WAMP than a LAMP stack. However, deploying WAMP in a live environment further opens up your system to security issues as most viruses target Windows-based machines.
WINS (Windows Server, IIS, .NET, SQL Server): For large corporations and government agencies, there can be resistance to using open-source applications. WINS is a Microsoft-developed solution stack that, while much more expensive to deploy than Linux-based stacks, comes with support and warranties from its developer. For risk-averse organizations, WINS is a viable platform to utilize, especially if money is not an issue.
MEAN/MERN/MEVN (MongoDB, ExpressJS, Angular/ReactJS/VueJS, NodeJS): These three solutions stacks are all built around: MongoDB, a NoSQL database that uses JSON-like document schema; ExpressJS, a backend web application framework; NodeJS, a cross-platform opensource web server; and a choice of either Angular, ReactJS, or VueJS which are all front-end JavaScript development frameworks. These solution stacks have strong advantages in terms of scalability and security. They also allow developers to focus their skills on a single programming language: JavaScript. As a modern solution stack, they can easily take advantage of the scalability that cloud infrastructure offers through virtualization and containerization.
Choosing a Solution Stack
Choosing the correct solution stack can spell the difference between the long-term success or failure of a technology startup. Hence, one should consider several factors to ensure the solution stack to be deployed is apt for the project:
- Project Scale: Large deployments requiring scalability and high performance would probably entail using modern stacks such as MEAN/MERN/MEVN as these were specifically designed to scale easily. When performance or scale is not a major issue, simpler stacks such as LAMP might be much quicker and more affordable to deploy.
- Developer Skillset: At the end of the day you want to choose a solution stack familiar to your developers. It would be too much to ask for your team to learn a new solution stack just for a specific project and the risk of failure will be high.
- Support and Community: It is important to consider the availability of technical support for any long-term IT Project. Newer, open-source solutions stacks that lack a strong community has a high risk of obsolescence. The same goes with licensed solution stacks not backed by larger corporations. As such, it is critical to review how active a stack’s open-source community is or how stable the author’s organization is.
- Project Cost Implications: It is critical to review how selecting a specific solution stack will affect the overall project development cost. While most solution stacks are open-source and free, the cost of development can still vary greatly depending on the skillsets needed by developers and how easy it is to use the solution stack for the project to be developed. For example, Java programmers tend to have higher salaries than PHP programmers. For licensed stacks such as WINS, initial hesitation to potentially pay expensive annual licensing fees might actually turn out cheaper for the project when taking into account the ease of development, availability of knowledgeable developers, and ready access to technical support.
- Security: For apps or websites expecting high traffic or visibility and for those handling sensitive information, security should be a main concern. Hence, historically vulnerable stacks like WAMP, LAMP, or even WINS might not be viable options unless ample security measures are made.
Last Words…
Remember that the solution stack to be used in developing the technology infrastructure of your startup is a critical decision that can affect the long-term viability of your new business. While deploying using cheaper or more popular options would help you get to market quicker, it might affect the scalability and performance of your system once your startup gains popularity. Hence, when planning out your initial 1-3 years as a business, take into account how your target growth might affect the solution stack you are looking to use. If you see rapid growth, better to invest in scalable, secure, high-performance stacks from the start. If growth is slower or if the system is not too performance-dependent, then starting on simpler solution stacks would not only save you money but also get you to market much quicker.
Start your conversation today with one of EACOMM Corporation’s system architects to find out how best to approach the custom software development of your highly innovative and breakthrough startup!