June 14, 2018
Reusable APIs—Any complex business logic such as user databases and content management are processed server-side and served as APIs to the frontend.
Markup—The HTML markup is prebuilt at deploy.
In short, JAMStack is a web development architecture that’s about developing websites using tools that are loosely coupled . The objective is to decouple the user interface from the Content Management System (CMS).
In most popular CMSes, (e.g. WordPress, Drupal, Django CMS) the CMS is responsible for both managing content and displaying the user interface, usually through the use of templates specifically designed for that CMS.
In the JAMStack architecture, the responsibilities of managing content and displaying it are separated.
If you’re sure that your needs extend beyond simple requirements, or if you’re frustrated with conventional CMSes, here’s a breakdown on why JAM Stack is worth a shot.
With most traditional CMSes, only the seasoned veterans are on the ball. Everyone else may struggle to implement specialised business logic on CMSes, especially when the CMS was designed for other purposes (I’ve seen a case where a logistics system was built on top of a blogging CMS—nothing short of a miracle).
Even though learning a new architecture, migrating your codebase, and training the team may incur a high cost in both time and money, the benefits outweigh the costs.
Using front-end frameworks like React can greatly increased productivity. Component-based approaches and more organised state management within websites have enabled better and faster responses to business changes.
With JAMStack, you can replace tools in your architecture with ones that are more suited for the task, or in response to business growth and new goals.
This may not make a lot of difference if you are building a single landing page or a simple blog. But if you’re going to build a website with plenty of features, dynamic content, and interactive components, you’ll want to ensure that you’re not limited to the tools or architecture that’s provided by your content management system.
You can deploy your whole website onto a Content Delivery Network. Services like Netlify allow you to do this with very minimal effort. This means content can be downloaded quickly from nearby servers as opposed to a single server that could be distant from the user’s location.
As the user interface is separate from your CMS, it is significantly harder to hack JAMStack websites. If you’re using a 3rd party CMS service to manage your content, the hacker would effectively be required to hack the service provider—which has better detection and prevention measures compared to most self-hosted websites.
A comprehensive Database (MongoDB) Service https://www.mongodb.com
A State of the Art Static Site Generator https://www.gatsbyjs.org
Deploy to an ultra-redundant global CDN https://www.netlify.com