The JAM stack is a new way of building websites and apps that are fast, secure and simple to work with.

JAM stands for JavaScript, APIs and Markup. It's the fastest growing new stack for building websites and apps: no more servers, host all your front-end on a CDN and use APIs for any moving parts.

When the LAMP stack started to gain prominence in the late 90s, it grew out of a set of constraints that are no longer present. Browsers were primitive document readers back then, and just about anything dynamic, social or interactive had to happen on the server. The only form of affordable hosting was shared hosting. Deployments consisted of uploading files through FTP. Version control was mostly absent from the day-to-day workflows of web developers.

Today browsers are the operating system of the web, and are able to run complex applications completely client side. They are capable of consuming and interacting with an ever growing amount of APIs and services across domains and infrastructures. CDNs (Content Delivery Networks) have gone from being a luxury only large corporations could afford, to being the natural way to cut down the time to first byte for sites and apps of all sizes. Deployment models have shifted from cumbersome manual uploads to automated processes triggered by ever-present version control systems.

The JAM stack is the stack for this new reality. Instead of FTPing server-side code to a shared server, we push to git and our code is instantly built and distributed onto CDN nodes across the world. Instead of depending on a database for every request we serve, we use build tools to ship full sites and apps ready to run directly in the browser. Instead of mixing persistence, HTML generation, credit-card transactions, authentication, etc, all together, we separate these concerns and consume well defined APIs from our front-end.

The JAM stack uses markup languages like HTML, CSS and Markdown to format and style our content, client-side Javascript to make it interactive and engaging and APIs to add persistence, real-time sync, real-world interactions, comments, shopping carts, and so on.

Browsers are the new operating system. Servers are abstracted away by CDNs and APIs. Sites are either database free and generated up front, or consume hosted database services directly from the browser. JavaScript is in charge of any dynamic programming during the request/response cycle and runs entirely on the client.

Spread the JAM!

Fork me on GitHub