Software developers upended app design by tearing up their code and sprinkling it around the web. Now the same trend is hitting web design.
An emerging philosophy known as Jamstack offers developers the prospect of building faster websites served from edge-computing networks that access custom content and features through APIs, reducing their reliance on distant servers. It's somewhat similar to a trend in enterprise app development called microservices, in which big, "monolithic" blocks of code are broken down into lots of smaller pieces.
Jamstack backers like Netlify CEO Matt Biilmann think that by decoupling the front end and back end of the website, web developers will see increased performance and flexibility from allowing browsers and content-delivery networks to do more of the heavy lifting required to build a modern site. It could also allow them to more quickly and safely update sites.
"If we take this architectural constraint of the decoupling and say that you have to work within that architecture, then we could make the workflow for teams of web developers just incredibly straightforward, and give them huge benefits in terms of time-to-market and execution speed and iteration speed over traditional approaches," Biilmann told Protocol.
Others are more skeptical about the real-world benefits of a concept that seems to have its greatest traction among the developers who are always searching for the next shiny, new thing.
"I think that a decoupled approach is great, just kind of like compressing your images using PNG or JPEG can be great, because it's something in the toolbox that you can use as part of solving a customer experience," said Matt Mullenweg, founder and CEO of Automattic, the company behind one of the most popular site-building tools ever in WordPress. "But it can also be a solution in search of a problem."
Still, these ideas are part of a general trend toward edge computing, as well as the more basic idea that systems that allow frequent changes to web applications permit developers to add new features very quickly.
"What it reminds me of [is] right at the beginning of the internet becoming interactive," said John Graham-Cumming, chief technology officer for Cloudflare. "It is giving you that experience of just the freedom to update something very, very rapidly as a developer with a lot more safety and safeguards than that 'edit the PHP or the Perl on the server' style."
More than the sum of its parts?
The three legs of the Jamstack stool — JavaScript, APIs and markup languages — are some of the most widely-used technologies in modern software development.
JavaScript has been the most popular programming language used by respondents to Stack Overflow's annual developer survey for eight years in a row, according to the 2020 version. All modern browsers come with dedicated JavaScript "engines" for rendering web pages on the fly, compared to the early days of the internet when all the content had to be loaded from a server.
APIs are the connective tissue of internet-connected software, allowing software applications to exchange details with each other about their plans and purpose. And markup languages provide a method for modifying web pages without altering the actual text and image content, such as the HTML language that renders the end of this sentence in italics.
Early Jamstack backers like Biilmann realized that by combining these technologies with version-control software like GitHub, websites could assemble pages for visitors without having to complete the round trip to a database at a far-away cloud provider or on-premises data center. Instead, developers can use edge networks like Fastly and Akamai — which are already serving site content like images from endpoints on those networks much closer to the end user — to cache pre-built pages and render them in the browser with JavaScript, making API calls for anything else they need.
"If you have a large content-based website, the traditional approach would be that every request to that website would hit a web server that talks to a database and builds that page and sends it back," Biilmann said. Jamstack allows developers to incorporate modern ideas like continuous integration/continuous delivery (CI/CD) systems that assemble components very quickly from content-delivery servers, all coordinated by APIs.
"As long as we can do that, we'll essentially solve all scalability and security and performance problems," Biilmann said. "You can't get faster than serving a pre-built piece of content directly out of a CDN."
Business teams are constantly asking their developers to add new tools on sites to unlock business insights, and Jamstack allows those development teams to introduce new features without bringing performance to a crawl, said Aly Cabral, director of product for Cloudflare Workers.
"In that world where you get access to compute directly where that static site content is, then you're not paying any performance tax by adding a lot of value to your website," she said.
A balancing act
Mullenweg isn't sure that Jamstack allows its users to completely avoid taxes.
To be sure, as CEO of a company and developer of an open-source project that currently runs 40% of all the websites in the world, Mullenweg is not a neutral observer when it comes to emerging web technologies. But he sees some irony in vendors like Netlify and Cloudflare extolling the virtues of decentralization and decoupling just as long as you run your website on their platforms, using their technology, for a fee.
"To the extent that any point of the stack is not open source, you are trading off control and autonomy," he told Protocol. He's all for the general ideas behind Jamstack — "Decentralization is my life's work," he said — but argued last year that you can get the same performance benefits along with better security and reduced costs by running open-source WordPress on a CDN like Fastly or Cloudflare.
And depending on how you look at the world, the fact that Jamstack allows developers to implement services from a variety of providers is either a great idea or a terrible idea.
Jamstack proponents want to incorporate website components from a number of different companies that are laser-focused on a particular capability, such as Stripe's credit-card processing services. This decoupled approach also makes it easier to implement concepts like serverless computing on the back end of a site, freeing developers from having to know anything about the hardware running their sites.
But Mullenweg sees echoes of the "widget" era of web development more than a decade ago, when lots of companies pitched website owners on implementing their social-media sharing buttons for social media networks, or third-party commenting systems. Some of those companies, like Max Levchin's Slide and Disqus, raised lots of money only to fall out of favor with site owners that wanted simpler solutions.
"As you get into more advanced functionality, [the] Jamstack approach can become quite complex," he said.
'Peak centralization'
Still, the internet is so central to all our lives that consumer expectations have changed when it comes to site performance and functionality, which only guarantees more complexity. And there are signs that after a period of intense centralization in computing with the rise of the cloud, businesses are looking for a different approach.
"We are at peak centralization right now," said Microsoft CEO Satya Nadella in April. "As computing becomes embedded everywhere in our world, transforming how we interact with people, places, and things, and as the physical and digital worlds converge, we will require more sovereignty and more decentralized control."
There are many factors driving the push for decentralization, but two of the biggest are easy to understand.
Applications delivering data in real time — a rapidly-growing category — will struggle with the latency caused by a more tightly coupled, traditional approach. And looming data localization laws under consideration around the world could force decoupled application designs that can work with multiple back-end systems in the same countries as their end users.
"I think we're going to see people adopt Jamstack, especially in line with these sort of edge technologies or easy deployment methods, pretty rapidly," said Graham-Cumming. "I think this is going to become a mainstream way of doing things because it is such a nice experience as a developer, and in general, developer experience wins."