Mar 28, 2020 • ☕️ 3 min read
JAMstack is an abstract solution stack which focuses on categories of tools to work with non-SSR websites; coined by Mathias Biilmann, the CEO of Netlify, many years ago; The idea is to push all the complexity into the front-end build process.
Markup — Templated markup should be prebuilt at deploy time, usually using a site generator for content sites, or a build tool for web apps (e.g. Gatsby.js, Webpack).
This workflow decouples building and deploying, replaces databases and server-side code with APIs and build processes, depends on many third-party services, and leverages heavily on continuos integration and deployment (CS/CD).
Static site generators are getting super popular for last 3 years, getting started with technical blog or landing pages is just couple minutes away!
The Benefits of JAMstack is similar to static websites:
JAMstack has a perceived impression of simplicity. Over time, as more features are added, the build steps become more complex, multiple APIs are added, and suddenly everything feels slow. In other words, the development experience begins to suffer.
This stack recommends using many many external services which are often free/cheap to start but ridiculously expensive to scale. Their unpredictable future pricing and features can cause anxiety and intimidating migration.
User-generated content is another area that can cause a steep rise in the complexity of static sites. Adding features like comments, ratings, likes is a pain in the neck! Adding third-party scripts can have a negative impact of page performance.
Ultimate your system seems very fragmented, makes it hard to test and run multiple staging environments.
Don’t get yourself trapped in that rabbit holes of external services. JAMstack seems easy, cheap, and fun to start but you’ll be moving away from it sooner or later!
Having full control over the experience by owning platform is always better than depending on tons of external services
The rise of JAMstack is overrated, it’s just a fancy name is being promoted heavily by founders/creators of tools/services related to static rendering sites.
If you want to learn more about solution stacks in general and JAMstack in specific, check out the following links:
ABI stability enables OS vendors to embed a Swift Standard Library and runtime in the OS that is compatible with applications built with Swift 5 or later
Prerendering is a rendering strategy when you pre-render your client-side rendered applications to feed crawlers better
Linters are tools that analyze source code to detect problems based on formatting rules and code quality rules then output as warnings or errors