5

So I've been reading a lot about this new front-end architecture called the JAMstack, which is basically the modern way of building static web applications. Any dynamic pages are pre-built at build time and served as static pages instead of being built on request at run time. This way, sites can be hosted on a CDN and any further dynamic behavior is handled on the client using JavaScript and APIs (serverless).

Now my question is, what is the difference between using a serverless architecture and the JAMstack? Is JAMstack just a fancy name for a purely serverless architecture? What would a serverless architecture look like that isn't considered JAMstack?

Any help clearing up the difference between these two terms would be greatly appreciated! I've tried finding an answer on Google, but couldn't find anything.

2
  • jamstack.org appears to be agnostic to what's behind the APIs
    – jonrsharpe
    May 3, 2019 at 21:36
  • Honestly, I think this is a question you should ask "JAMStack" directly. A "serverless architecture" is one in which you don't explicitly manage hardware resource (virtual or otherwise). You write code that someone else installs, invokes, and scales hardware to run on your behalf... roughly speaking. "JAMStack", as far as I can tell, has nothing to do with that problem space ...
    – svidgen
    May 3, 2019 at 21:37

2 Answers 2

4

I think you misunderstand the concept of 'Serverless' technology. IMO it's a very misleading and confusing name so you are not alone in this.

using JavaScript and APIs (serverless).

Using Javascript and APIs is not the definition of serverless. The client is not relevant at all to serverless technology. Here's a very in-depth article on serverless technology. It's quite long so here are my key takeaways:

  • The term really means two (related) things
    1. Vendor managed applications and services.
    2. Custom services that are deployed in a 'serverless' platform.
  • There are almost surely servers involved, you just don't deal with them
  • The main advantage is that you have essentially no cost when functions are not being used
  • The main disadvantage is that there is some latency when you need to "wake" up your function

It's possible that your APIs called by your web page are built on serverless technology but there's nothing about the scenario of 'a webpage using APIs' that implies this is the case.

6
  • There are ways to go "serverless" without an actual server, like distributed databases. May 3, 2019 at 21:58
  • Ok thanks, so I get what serverless is and with JAMstack, everything is serverless so you dont need to administer or manage your own server at all. I guess where im really confused is this: if you build an app where everything is serverless, would the developer of such an app still be considered a Fullstack developer? Or is that what is considered a JAMstack developer because they don't actually manage a back-end, only front end + cloud services? May 4, 2019 at 0:02
  • Also, is it more common to use serverless architecture in combination with your own backend for certain parts? Or are most serverless apps completely serverless? May 4, 2019 at 0:15
  • @RobertHarvey What's your definition of server? I would tend to agree with this one: "In computing, a server is a computer program or a device that provides functionality for other programs or devices, called 'clients'." Are you saying there's no programs or devices handling these distributed database requests?
    – JimmyJames
    May 6, 2019 at 13:37
  • @MikeRomero4 The term "full-stack" developer is a very poorly defined one. I don't think it is terribly meaningful, honestly. Most developers don't know how to write machine code for the architecture their code executes on even though it's part of their 'stack'. I think really what people mean by this is being able to build an application from start to finish. It doesn't mean you are an expert in every piece but you could do it if pressed.
    – JimmyJames
    May 6, 2019 at 13:44
-1

Jamstack and serverless have a lot of overlap. Jamstack’s goal is to serve your website or application from static storage. This static storage itself is serverless (you don’t manage it yourself), but that doesn’t mean that Jamstack is always serverless. For example, if you’re using Ruby for your backend, you’re not serverless.

Serverless, which is how you manage your backend, doesn’t mean that you’re developing with a Jamstack architecture but probably using some key components.

You can read more details here: https://snipcart.com/blog/jamstack-serverless-backend.

Not the answer you're looking for? Browse other questions tagged or ask your own question.