I heard about JAMStack from Freecodecamp, this post: https://freecodecamp.org. It was amazing to read about this guy's story.
Time passed and I learnt some ReactJS and time to start playing around with Gatsby came.
First time I did something with Gatsby was helping a community from El Salvador with an issue, don't remember what but it helped me a lot to start hacking up with more code. - The community: https://horchatajs.com
I also noticed they were using a service named Netlify(https://netlify.com) so I started googling around what it was.
At the end ended up loving Gatsby, started searching for services similar to Netlify, some of them are:
You can go and test them out, they all provide free tier like services and to be free they can help you build production ready stuff.
There exist many services which you can use as CMS to host your page content and almost any top company start-up will provide you with an appropriate API service for you to include it on your website.
What “means” making API based platforms, is that you do not need to worry about Backend things while doing frontend, you simply focus on doing Frontend as you love doing.
As an example this Notes. This notes are presented to you by a server-less API powered by Netlify Functions service and to host the content I use GitHub Wiki's, for image resources I use Dropbox, I do not have to worry about servers or that stuff.
Also there's a cool function added to Github, GitHub Actions, that are automated workflows you can include to your projects. I'm using those actions to build an xml rss feed file.
At the end when Webpack, Parcel or any other file bundler technology bundles your files there will be plain vanilla html. This is the fastest way of serving things to the browser.
You can have your page content written in markdown, with help of Static Site Generators you could ship them as HTML pages, you can also template those pages and customize them as you need.
The JAM Stack is a way of making a web app, so that Frontends will only focus on doing Frontend, Backbend pals will only be doing their Backbend APIs. Both of them connect using just using those APIs.
At the end the platform will be serving static content to the client so it's load time is really, really small.
I really love JAM and JAMStack but there are some use cases where you will prefer to use another solution, imagine you are having a website that will serve more than 1K pages, which means the same or more
.html files and assets. This will be really, really hard to maintain, test, etc.
This files will be served to users faster than an SSR alternative, but now there’s a bug on a specific page, you need to deploy this again and wait for the browser cache to reload.
A clear example of where I will not choose JAM Stack can be a big sized E-commerce platform, think of yourself getting an error you don’t know where the heck it exists, now sum up the fact it will live on the client side. It's possible to ship it to production, but such E-commerce will have many items, many client pages, store’s profile, dashboards, etc, etc.
Another huge use case is Twitter , picture this, think about all those frontend pages, tweets, threads, and deeper, and deeper pages this platform will contain, at least this will be a reason to me for not using a pre-rendering solution to build a Twitter.
I appreciate you kept reading this note at this point 😊, but keep in mind that what you read are just my thoughts of JAM Stack.
To help you find out how to manage a big amount of static pages on your project, Quincy Larson explains it all in this presentation.
He shares how JAM has helped Freecodecamp to boost up the way learners ( As me, I learned to code there ) play around with the platform: