What is a tech stack?

If you’ve been working in the tech sector, the phrase “tech stack” should be familiar to you. However, there’s a difference between familiarity and understanding. Knowing what this piece of jargon means is essential – especially if you’re involved in product development

Whether you’re building a small app or an entire digital system, success depends on a clear understanding of “tech stack.” Let’s run through what precisely a tech stack is, why it is important and what it looks like.

Tech stack: an in-depth definition

First things first, it’s good to know that a technology stack can go by other names. It is also often referred to as “technology infrastructure”, a “solutions stack” or a “data ecosystem.”

Although the tech stack has its origins in the software development community, it’s a term that can be associated with marketing services too – these are called martech stacks, and when you’re talking about sales services’ it becomes sales stacks. But whatever someone names it, it is essentially a list of all the technology services used to construct and operate one single application.

There’s a reason the term tech stack has been coined. It’s a concept that makes communication between developers easier as they can share and demonstrate information about how an application is built. This is because a tech stack rapidly summarizes the programming languages, frameworks, and tools that a developer needs to be able to interface with the program. It is a map of all the underlying elements of a web or mobile application that makes it easy for everyone to understand.

A tech stack can be a tough concept to grasp, but once you’ve got your head around it, it’s very useful to understand why tech stacks are so important for digital development.

Why is your tech stack important?

The chances are that if you’re currently reading this article, you’re not a developer. This is because a developer would likely already have a solid grasp on the tech stack in order to do their job. In reality, the people who really need to understand the meaning of a tech stack are the ‘non-techie’ people, such as the project managers, stakeholders and entrepreneurs that are building the idea out.

So, perhaps you’re more of an ideas person working on a digital product that’s been built on tech stack and you might ask yourself, “is it really necessary for me to spend time wrapping my head around tech terminology?”. The answer is yes.

It is important to understand tech stacks because the technology that’s been employed to create your application will play an integral role in how your app works, and how it will behave in the future….

For example, the make up of your tech stack will heavily influence the scalability of your product. Also, some server systems are made for high-read operations but these are often less effective when faced with high-write traffic. This kind of knowledge could help you massively if your team wants to transition the app from local file storage to cloud file storage.

Gaining a proper familiarity with the strengths and weaknesses of your tech stack before the project starts is a surefire way to ensure you reap the advantages of the strengths of each tech stack, whilst mitigating potential weaknesses.

Which tech stack should I use?

Different projects, with different aims, will require different stacks. It’s the DNA of your application. And due to the fact that, like DNA, there are so many various combinations possible, it’s really hard to generalize. There’s got to be a thorough understanding in order to get the most out of your product.

This is a very important point. Making an informed decision about your tech stack before you start building, is paramount. It is possible to significantly alter the makeup of your tech stack, but it could potentially cost a lot of time and money, so it’s worth getting some professional advice before you dive in. You don’t want to realize you need something different halfway through a development project – unless you have an unlimited budget! But we all know that’s never the case.

Let’s explore this a little further. Because preparing a tech stack for a long term development plan can be a balancing act. On one hand, as a developer, if you fail to accurately project how your application will grow, you’ll find yourself in a position where you’re forced to add additional services that don’t quite fit with the product. Such ad-hoc additions can make an app clunky and difficult to manage. However, if developers eagerly expect exponential growth, they are likely to invest heavily in the extra tools and services needed to handle this growth. This leaves them vulnerable to running out of money before the product ever actually starts operating successfully.

So how can we navigate this tricky tightrope? One solid rule is that, if in doubt, app developers are safer using technologies and languages that have been given time to mature. These are always a more reliable option, as their flaws have had time to surface and be fixed.

In terms of development strategy, it’s often best to create minimum-viable products like web apps using open source tools. This means that you can prove concepts before investing in them. Then, with one eye on future growth requirements, the team can search for certain tools that offer the flexibility to send data to the other tools in the stack.

What does a tech stack look like?

Remember, tech stacks are by their nature all very different. Two different companies with different digital aims might need two tech stacks that are diametrically different.

However, the tech stack process will generally look like this:

  • First, development teams need to decide on which technologies they need.
  • From there, they’ll develop upwards on a core coding language. If additional tools are needed, they can be added along the way.
  • Then, when companies have a product in mind, they’ll usually start with the front end. That’s the part of a product that faces the customer.
  • Once that concept is clarified, the design team has to decide what form of back end technology should be used to deliver that.
  • The group of technological services that results from this process is the ‘stack’.
  • It’s intuitive imagery – each additional service builds up those beneath it in the stack. This gives developers scope to customize their application.

Although this is the general process, there is no one size fits all as customization is key. If a developer is in the process of designing a digital product that needs to be accessed by millions of people on a daily basis – like a social media app for instance – it’s likely they’ll utilize programming languages that are strong with high-read operations. High read operations are systems that can be accessed by lots of users simultaneously without failing. Whereas if an application has been created to gather information via crawling, high-write languages will be preferred as the basis of the stack.

No matter the overall aim of the app, all tech stacks are divided between the back end and front end. This is also known as server-side and client-side. Imagine a tech stack like a mobile phone – the back end is the internal hardware that is driving the whole thing along and the front end interface would be the screen and the casing. Essentially the parts that allow the user to interact with the phone.

There are various frameworks, languages, and software products that can make up a stack. So, establishing a language and framework, you might create your web application with Ruby on Rails. This in turn may be given access to a database created with PostgreSQL. Most products will need to be hosted on a server and hosting on some servers, like Apache, requires additional elements in order to function. In the case of Apache, the app would need something called Phusion Passenger.

When it comes to the client-side of a tech stack, it’s likely to utilize HTML, CSS, and JavaScript. These are the technologies that translate an application into a format that can be read from the internet browser of a user.

A case study: Facebook

A social site like Facebook is composed of a combination of coding frameworks and languages. These include JavaScript, HTML, CSS, PHP, and ReactJS.

Facebook recently released a huge version, called “The New Facebook”. In this new format, the front-end was totally rewritten using React and Relay with the goal of optimizing an interactive user experience.

Facebook’s tech stack is made up of various bundles of technology and now looks like this:

  • Application and data (16)
  • Business tools (2)
  • Dev Ops (10)
  • Utilities (8)

Tech Stack Awareness

Tech stacks are obviously the realm of developers. However, that doesn’t mean that non-developers can’t gain a basic understanding. It’s actually very important that everyone in the process of digital development is aware of how technology stacks influence the performance of the product.

This doesn’t mean that everyone in the company must be fluent in coding. Having a fundamental grasp of tech stacks will help everyone in their role to create a great application.

Learn more about developing the best digital products possible, and get in touch to find the best tech stack for you.



Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

seven + fourteen =

Jeff Francis

Jeff Francis is a veteran entrepreneur and founder of Dallas-based digital product studio ENO8. Jeff founded ENO8 to empower companies of all sizes to design, develop and deliver innovative, impactful digital products. With more than 18 years working with early-stage startups, Jeff has a passion for creating and growing new businesses from the ground up, and has honed a unique ability to assist companies with aligning their technology product initiatives with real business outcomes.

Get In The Know

Sign up for power-packed emails to get critical insights into why software fails and how you can succeed!

EXPERTISE, ENTHUSIASM & ENO8: AT YOUR SERVICE

Whether you have your ducks in a row or just an idea, we’ll help you create software your customers will Love.

LET'S TALK

When Will Your Software Need to Be Rebuilt?

When the software starts hobbling and engineers are spending more time fixing bugs than making improvements, you may find yourself asking, “Is it time to rebuild our software?” Take this quiz to find out if and when to rebuild.

 

is it time to rebuild our software?