This is a guest post by Eric Fulkert.
Every sector has a “tastes great, less filling” argument. PC vs Mac. For startups, tech stacks fall into this category. Tech stack discussions drive quiet people into a bloodthirsty rage. Everyone seems to have an idea on the tech stack they love. Anyone in the startup world should understand stacks, and where they fit.
What is a stack? For startups, a stack is the programming framework and servers you use to power your application. Most applications have a server side tech stack, and a client side stack.
The tech stack you pick for your startup can make or break your future. Your stack choice can impact:
Talent – Some stacks are easier to find talent for than others
Runway – The price of talent varies between stacks
Scale – Some technology scales better than others
Exit – Some technology is worth more than others
Hosting costs – Different stacks have different costs
Security – Some platforms offer better security options
Back end stacks often revolve around a few high level points. The back end delivers the logic and files for your app. Your customers never see the back end.
Your front end stack interacts with the back end. Customers feel the effects of a sluggish back end. Your back end stack is like air: no one thinks about it until it’s missing. Back end stacks break out into several components.
The first component is the server technology and hosting. In years past, these were different items. The rise of the cloud has caused these items to blur together. Two examples are Linux and Windows Server. Amazon Web Services and Microsoft Azure offer hosting for both platforms where you never see the server OS.
Removing the server OS from your management saves time and money. Some server OS’s support programming languages, security, and scale better than others. Knowing what server/hosting mix to use is driven by your programming language. Some hosting providers offer services that just host your code, without you ever knowing about servers.
The second component of your back end stack is your programming language. Most applications are built in one language. Some larger or specialized apps might use several. Programming languages are like people. Each language has areas they excel at. Most programming languages have frameworks. A framework brings prebuilt functions to perform tasks like authentication, file management, etc. A good framework saves you time and money in development.
The third component is databases. Databases store data in a recallable format via queries. There are a range of database servers, but databases follow two formats. The first is SQL, or structured query language. SQL databases store data that be put into neat tables like a spreadsheet. SQL databases want similar data in a collection, and need a field to be the primary key for the data.
The second database format, NoSQL, is designed to handle data that doesn’t follow a tight structure. NoSQL allows data to be assigned to collections. Collections can contain groups of any type of data. Many applications will use both. There are a range of servers and services for both SQL and NoSQL.
The final component is web servers. Web servers deliver the content and process the connections to your front end. Web servers are often overlooked in the rush to the cloud. The two most common, Apache and Microsoft IIS, have different feature sets.
The common example is how to scale your web servers to handle larger loads. Apache and IIS scale in different ways. IIS is ideal for Microsoft programming languages. IIS only runs on Windows. Apache can run on Windows, Linux, and several other server OS’s. Your workload and programming language will drive your webserver choice.
So what stack to pick? That requires a detailed review of your business case and growth plans. Don’t pick a stack because it’s what your developer knows. Many startups missed out on a nice exit because they picked tech that wasn’t used in their vertical.
Eric built his experience working in the tech sector for 20 years. He is CEO of Campus Suite, a content management and communications platform for schools and colleges across the US. Eric is also COO of Soundstr, a Brandery graduate backed by Gracenote, and COO of Craftforce, a skilled trades marketplace. He helps Cincinnati startups as a advisor for Cintrifuse. Eric brings his experiences and methods from running multiple companies to the startup ecosystem. His key skills include team management, platform design and development, process design, and inbound marketing. Connect with Eric on LinkedIn
Feature image credit KNLphotos2010. Image has been cropped.