JAMStack: The What, Why, and How
You could call the JAM part of your tech stack. If you had a WordPress website, WordPress would be part of your tech stack. Same thing goes for Squarespace, Angular, Linux - they are pieces of software that help run your website. JAMStacks have been growing in popularity for the last few years, and for good reason.
We live in a world where most web traffic is through a smart phone. Website performance has become a standard that we expect, and since 2010 Google has been using site speed in web search ranking. News publications, clothing stores, vast repositories of delectable recipes, even kittens and puppies have increasingly made their way into our lives through the Internet and our mobile devices. It’s incredibly important these days to ensure fast load times for a site regardless of the device we’re using.
So much content, so little time
We needed a way to manage all of that content and thus Content Management Systems (CMS) were born. Joomla, Drupal, and WordPress are some of the most popular content management systems that are helping to run the web right now, and they do a great job. Over the years these systems have been fine-tuned and automated. Performance gaps have been plugged and Infrastructure as a Service (IaaS) has helped to put the power of these solutions in the hands of the many.
Not without fault
In essence these CMS titans have historically taken a monolithic approach to providing a tech stack for a website. The main pain points with this architecture are performance, scalability, and security. The approach we take to develop websites and web applications has progressed toward a decentralized and modular design. This modular architecture means we work with lightweight solutions that have single responsibilities, and this is a catalyst for stomping out some of these issues.
Enter the JAM
We'll keep this at a birds eye view. Here are the main benefits of a JAMStack website:
- Improved Site Performance
- Improved Security
- Dynamic Content
- Lower Cost Hosting and Easier Scaling
- Data Integrity
- Easier maintenance
- SEO Optimized
One of the key differences between JAMStacks and their monolithic predecessors is that they do not rely on a single server to serve content to clients. Instead, the content and webpages will be generated well before someone visits the website, and they are distributed around the world via a Content Delivery Network (CDN). Many tech stacks take advantages of CDNs, but none more than a JAMStack site.
The combination of pre-generated webpages and worldwide distribution is one of the main reasons how this stack excels at performance and scalability. It's also one of the main reasons why this stack provides a more secure website: it doesn't expose a single server to hack or to become susceptible to bugs.
These techniques are not new, but the terminology is. This sort of tech stack has also been referred to as a 'static site' and 'server-less'. Some people in the community felt like those terms didn't provide a whole description of this stack, and they coined JAMStack. They've created the site jamstack.org, it's a great resource to gain some deeper insights.
Spread the JAM
I've been tinkering with JAMStacks for about a year now and I am happily using it on production sites. The ecosystem and tooling for JAMStacks has grown tremendously and I don't see any signs of it slowing down. Instead I see wider adoption of the technique, and with that, a more performant Web. Come join us, and spread the JAM!