WTF is JAMstack?
jamstack.wtf
jamstack.wtf
The article is also loaded with BS:
> Faster performance. Serve pre-built markup and assets over a CDN
Just like every single-page app.
> More secure. No need to worry about server or database vulnerabilities
Total BS. A form post is an API call by another name. Your server and database are just as vulnerable via an API.
> Less expensive. Hosting of static files are cheap or even free
Just like every single-page app.
> Better developer experience. Front end developers can focus on the front end, without being tied to a monolithic architecture. This usually means quicker and more focused development
Really? And templating languages do not exist on the backend? The only difference is where the processing occurs, and a single-page app has just as much templating whether the template is rendered in-browser or on-server. Often it has a lot more.
> Scalability. If your product suddenly goes viral and has many active users, the CDN seamlessly compensates
Ahem! API?
The same happens here. Take an existing concept. Stick a new label-term on it. Market it like you're the inventor of this revolutionary concept to the unaware. Profit.
It makes tricks like React pages rendering without javascript possible, and works with pretty much any language that can manipulate strings (awk, sed & curl build process, why not).
If your api is only used during the build step, scaling is really easy like tfa mentions.
In pure JAMstack, APIs are used only at the build step, and you don't have to expose them. You get your content such as blog posts from the API, render them to html and store on CDN.
Monolithic architecture refers mostly to Wordpress. With JAMstack you separate your CMS from your frontend, and you can manage your content with a service like https://www.contentful.com/ that doesn't define how the content gets rendered.
[1] https://www.youtube.com/watch?v=grSxHfGoaeg
Google's HTTP 203 show about JAM stack [2] talks about doing sites claiming the do static site rebuilds "every second" and debates whether static site rebuilds would scale for a large site with lots of old content like the BBC or New York Times.
Comments normally would probably be something like Disqus but I've also seen a demo of a Netlify dev doing a hacky hijack of their forms function which allowed you to approve a comment then re-render based on approved comments.
You can also setup a CD system that builds every X seconds/minutes/hours/days/etc.
It's just a different way to build websites. I think it's useful for marketing websites but not as helpful when you need a true app.
[1] https://www.gatsbyjs.org, also checkout: https://www.gatsbyjs.org/showcase/
Whether or not JAMstack is less complicated is a question for another day. What's important is that Netlify owns the hype here and is doing a very good job of leveraging it.
https://www.namecheap.com/domains/registration/results.aspx?...
- GitHub for version control
- AWS CodePipeline for building and deployment (include cache invalidation)
- NextJS to statically export my site built in React
- S3 to host my content
- Cloudfront as my CDN
- Route53 to manage my domain (that I got from Google Domains)
- API's are hosted on a different stack
I didn't use a service like Netlify because I wanted to reduce the number of vendors that had access to my user's data (like IP address etc. etc.)
Static site generation had an image problem, because people thought that having a static site meant that they would not be able to have dynamic content on their site.
JAMstack is basically a way of rebranding static sites saying that you should generate the pages you are serving and push them to a CDN edge network for TTFB speed, but you can still make them dynamic by using API calls to anything that needs to access a DB, etc.
It's a way of showing people that we should be doing more things statically when we can, and separating out dynamic components into their own APIs.
I did just implement Netlify CMS in a project though. Super easy to get set up and it's open source. It's missing some things from more polished CMSes that you might expect, like editor roles, but it's still pretty young. The project lead is really responsive and I have high hopes for it long term.
JS shows up in the themes / customization, but for the most part you're only dealing with Markdown
What about bandwidth costs? With Google and AWS, bandwidth is expensive — have you considered the case where your blog gets suddenly super popular, or maybe DoS attacked? ... to me, that feels dangerous o.O what do you think?
I like Hugo too b.t.w., I've written a blog comments plugin for Hugo (and others), link in my profile.
Not that weird though. We've, for example, turned "build" into a noun.
But no, apparently "build" has been screwed up since the 1660s[1].
[1] https://www.etymonline.com/word/build#etymonline_v_18047
I’m all for SPAs for products that reach a certain level of complexity. They are 10x more capable, but take 10x the work.