When you’re building a new app or software solution, before you can begin the actual development, you have to decide just what language, framework, and technology will power your development and your product. Choosing the right technology stack for your project, team, or entire company can feel daunting, especially if you’re not exactly an expert on all this.
Luckily, we’ve got you covered with some strategies and approaches on choosing the technology stack for your new product.
What is a stack?
A stack refers to any combination of software products and programming languages. Technically, there are two types of stacks: a technology stack and an application stack. A technology stack is a more generic term of any software that serves as the infrastructure for a computer, depending whether it supports a server or a client computer.
Today, though, we are usually talking about application stacks, the programming languages and frameworks that developers rely on when building an application.
Two sides of application development
From a developer’s perspective, applications are divided into two sides: the server-facing side and the client-facing side. The server-facing side is often known as the back-end, as in back-end development, because it’s not something the client or user will see or engage. The client-facing side, on the other hand, is known as the front-end.
Software that supports the server side and drives the functionality of the app includes the web framework, chosen programming language(s), database, web server, and OS that builds on the server.
Choosing a program language can be tricky, but each language has an associated framework, which provides tried-and-true application program interfaces(APIs) of common apps and functions, such as data access and authentication, so your developers can tweak the wheel instead of reinventing it. Common examples of languages and their frameworks include:
- Ruby uses Ruby on Rails
- Python uses Django
- JS uses Node.js
- PHP uses Laravel
- C# uses .NET
Frameworks on front-end are optional but can help build rich interactive experiences or provide a standardized format for clean, responsive web pages.
Tips for choosing/determining your technology stack
Choosing a technology stack is overwhelming, especially when non-techies are involved or in charge of it. There are a lot of theories behind how to choose your technology stack, but no clear-cut answers. Instead, let’s explore some common approaches:
- The path of least resistance. If you’re just getting started with developing an app, keep it simple. Industry experts know that a new product is more likely to fail than to succeed, so testing potential interest before spending pouring tons of cash and countless hours into developing something. For this, stay agile: create a basic product landing page, build a single feature using a common language and – voila – you’ve begun development!
- Size matters. Similar to keeping it simple, the size of your software solution matters too. If you’re building a small project or want to test the waters, start with a simple solution like a content management solution (CMS) or WordPress, which support multiple programming languages and already have a lot of out-of-the-box APIs so you don’t have to reinvent the wheel. This won’t work for large or complicated projects, but you’d be surprised how quickly you can reduce your time to market with these options.
- Tried-and-true stacks. Skip the rigmarole of decision making and opt for a tried-and-true stack. One of the most common stacks is LAMP, which means you’re using Linux, Apache, MySQL, and PHP. Or, if you’re inclined to Ruby oy Python, you can use these in place of PHP. Other common stacks include:
- Ruby on Rails (ROR)
- MEAN, comprised of MongoDB, Express.js, AngularJS, and Node.js.
- Open-source options. A lot of developers favor open-source languages and frameworks because they have built-in options and tend to be more secure – because so many people are using them and updating them, you don’t have to build everything from scratch. A big bonus is that you can refocus your energy and resources on the business side, not the technical side, of your project.
- Get technical. If you’ve got enough knowledge and know-how to choose a custom stack, you already know that it’s not only about professional, functioning software. Instead, consider these criteria, too:
- Users. Know who your users are, who are they and how will they work, what browsers do they use. This helps you determine whether you should design for mobile first/later/only, or perhaps your web design is more relevant.
- Processing size. The more processing and data your app handles, the more it needs a language and framework that supports speed and high performance.
- Low latency.
- Scalability and maintainability. As customers buy and use your product, is your app ready to be scaled up for size and performance? If not, you may lose customers who aren’t willing to wait around for updates.
- Security. This component becomes more important by the day. Is the stack you’re choosing the most secure it can be? Does it update its security protocols often?
- The ecosystem. You may want to choose a brand-new language and framework that seems perfect for your goal – but if there’s no ecosystem (experts, online tutorials, conferences, community), you may struggle to find the support and answers you need to use it effectively.
- Long-term support. All technology has a lifecycle – as it grows, there are more resources for support and the vendor is likely in business, offering customer service and updates. But if you’re going with a newer company, their technical support may not be reliable or, worse, around for long.
- Cost. Last but not least, the cost of your stack is vital – if it’s too pricey and you spend too much time on developing and testing, you won’t make your launch date, adding significantly to your overall cost.
Ultimately, the best guidance may be this: Consider your product, consider your myriad options, and then just get started. You could spend months determining the best technology stack, and in that time, you’ve lost any competitive edge. Or, you may think you’ve built the best stack for your needs, only to actually get to work and none of it feels or goes quite right.