Tech Stacks Explained

Learn about different tech stacks and what you should have in yours

What is a tech stack?

To help you understand why it’s essential to have the right layers in your technology stack, this page will cover:

A technology stack (tech stack) allows you to combine software, tools, and services to build a web or mobile application. Each layer of a typical tech stack is responsible for a separate type of task, either presentation, application logic, or persistence.

Where do tech stacks come from?

The concept of a technology stack has been around since the early days of the web. The earliest webpages were simple “static content.” To retrieve content, webpages used a rudimentary method of calling an external program called Common Gateway Interface (CGI). A CGI script would allow the web server to execute a program to process user requests. Many of these early programs were handcrafted in the C programming language.

Almost immediately, early web developers began experimenting with better frameworks and abstractions for building web software. Perl emerged as a more straightforward and accessible language for writing this code. But it wasn’t quite a tech stack yet.

After more innovation and evolution, various technology stacks began to emerge. Rather than writing out HTML by hand, libraries and page templating frameworks for the presentation layer logic started to become common while the rest of the program was free-form. Things like relational databases provided a clear way to manage and express data access for app developers, so the persistence layer and concepts like connection pools emerged.

Technology stack layers

People use different names for the same stack layers, so for our purposes we’ll simply refer to them as the top layer, middle layer, and lowest layer. What’s more important is the task each layer is responsible for, and we’ll review those responsibilities from top to bottom.


Technology stack top layer: Presentation

The presentation layer of a tech stack is where formatting and localization occur. For example, a website may have one logo and set of colors, but as styles change, you might want to change the look and feel. Another example of the presentation layer at work is personalization. If a browser request comes from a country where the users want temperatures presented in Celsius instead of Fahrenheit, the information provided will be different.


Technology stack middle layer: Application logic

Application logic goes in the middle layer of your tech stack. For example, the web browser request may include a location (e.g., Austin, Texas) and time zone (Central) that the application logic needs to resolve into the right database query.

The middle layer may be spread out using a microservices-based architecture, which allows various application parts to be implemented independently through well-described service interfaces.


Technology stack lowest layer: Persistence (or database)

The persistence layer is typically the lowest layer of the stack, and can be as simple as a set of files in a file system. Managing data in a basic file system, however, requires a developer to develop ways to index and access the data themself – a daunting task.

Instead, most developers choose a database. Originally, the go-to database was a relational database because they were the most common. Over time, however, NoSQL databases have become another popular option for developers because of NoSQL’s flexibility, scalability, and broader capabilities.

What are the different tech stacks?

The LAMP stack (made up of Linux, Apache, MySQL, and PHP) became one of the first popular stacks. Linux became the most frequently used operating system; Apache, the most frequently used web server; MySQL, the most frequently used database; and PHP, the most frequently used page templating and programming language.


Tech stack examples

The following list is just an example of how diverse and interoperable technology stacks can be:


WIMP

Windows OS, IIS web server, MySQL database, and PHP app layer


MAMP

Mac OS, Apache web server, MySQL database, and PHP app layer


FAMP

FreeBSD OS, Apache web server, MySQL database, and PHP app layer


LAPP

Linux OS, Apache web server, PostgreSQL database, and PHP app layer


LNMP

Linux OS, NGINX web server, MySQL database, and PHP app layer


MEAN

MongoDB database, Express.js app controller, Angular.js app presentation, and Node.js


LYME

Linux OS, Yaws web server, Mnesia database, and Erlang app layer


LYCE

Linux OS, Yaws web server, CouchDB database, and Erlang app layer


ELK

Elasticsearch search/statistic aggregator, Logstash logging retrieval, Kibana graphical presentation


Jamstack

JavaScript presentation, APIs for data access, and Markup (static or template content)

Couchbase technology stacks

As a cloud database platform, Couchbase plays a critical role in technology stacks. Because it integrates a set of data access and management capabilities commonly required by app developers, Couchbase makes it easier to scale and grow.


The CEAN stack

This stack uses Couchbase, Express, Angular.js, and Node.js. It’s similar to the MEAN stack but uses Couchbase as the database instead. CEAN even has a community-driven project scaffolding tool.


The COdE stack

This stack uses Couchbase for the database, Ottoman.js for the object document mapper (software that makes it easier to map programming structures into databases), and Express.js for app routing.

Conclusion

It may be helpful for you to think about abstracting the app or service you’re building for your users as a tech stack. This is a good way to carefully consider each of the individual components – and more importantly, by thinking of the responsibilities of each layer separately, you’ll be able to build a more flexible system architecture with components that are more interchangeable.

Ready to get started?