Video Summary and Transcription
Today's Talk discusses the new frontier of e-commerce at the edge, focusing on headless commerce and the benefits it offers. The edge, an intermediate server, can improve website loading by rendering HTML on the server and reducing latency. Venger, an open-source headless e-commerce framework, is introduced as a solution to cache API responses at the edge and improve performance. The Venger online shop demonstrates excellent performance, highlighting the benefits of headless and edge computing in e-commerce.
1. Introduction to E-commerce at the Edge
Today, I want to talk about the new frontier, e-commerce at the edge. There are two major trends: headless and the edge. Headless commerce is a buzzword that refers to serving JSON through a JSON API instead of serving HTML. It involves removing the head from a monolithic architecture. Let me explain further.
Hi there! My name is Michael and today I want to talk to you about the new frontier, e-commerce at the edge. I've been building e-commerce applications for well over 15 years, from old school PHP 5.4 to now Node.js TypeScript and more modern tooling and that's what I want to talk about today.
I want to tell you about the future of e-commerce and that consists of two major trends that I want to cover today, one being headless, the second being the edge. Let's cover what I mean by these.
First of all headless. Here's a Google trend chart for headless commerce. As you can see, more and more people are searching it, there's a lot of interest there. But what does it mean? Let's Google it and find out. When we Google it, we'll see the first page is just ads. If we scroll down and try and find out what it actually means, we will get, one after the other, content marketing blog posts. What can we tell from this? What can we tell from this? It's a buzz word, that's what we can tell. And if we try and read these and find out what it means, we're going to get lost in jargon and keywords. Let's skip that and I'm going to show you a diagram to make it simple.
We want to build a web-based e-commerce application, an online store. What do we need? We need a server. Okay, we need a database to store our product, customer, and order data. We need some business logic. This is what's going to take that data, put it into some templates, apply some business logic, and produce the website and all of its functionality. We probably have some cloud services, some caching layer, maybe, some third-party APIs to call out to, but at the end of all that, we're going to serve to our customer some HTML. That product data from the database has been put in a template and the server is returning HTML. This is what's known as a monolithic architecture, a traditional architecture for a web app. It's been around for a very long time and will be around for a very long time. This is good, but we're not talking about that now. We're talking about headless. Headless is different. How do we get from monolithic to headless? Well, it's simple. We've just got to remove the head like that. Now, what's happening? So we're no longer serving HTML from the server. Instead, we're serving JSON through a JSON API. That could be a REST API or a GraphQL API.
2. Headless Commerce and its Impact
The client takes data and turns it into HTML using a JavaScript-based framework. This approach, known as headless commerce, has gained popularity in the content management and e-commerce spaces. Examples include using WordPress as a headless CMS, as well as pure headless offerings like Commerce Tools and Venger. Even traditional monolithic systems like Shopify are embracing headless commerce, indicating that it is a trend that will shape the future of e-commerce.
The client is responsible for taking that data and turning it into HTML. Typically, that would be a JavaScript-based framework. We'd take the JSON and put it into a template. This is nothing new. We've been doing it for a long time. We used to call it things like AJAX. Now it's being referred to as Headless. But that's all you need to know. I'm sure you've done it. If you've been building single page apps, you've been using this already probably. Nothing new. But that's what we mean when we're talking about headless.
Headless commerce is this applied to an e-commerce application. Let's look at some examples. So Headless really caught on big in the content management space, first of all. You've probably heard of some of these services and projects. WordPress is an interesting one. This is like the original old school monolithic CMS system, the granddaddy. But it's in here because you can use it as a headless CMS. It has a rest API, and it has a GraphQL API. So you can use it just like this. In the commerce space, there's lots of software as a service and open source products as well that you can use to build in this way. Again, you have pure headless offerings like Commerce Tools and Venger. And then you've got companies like Shopify, which traditional monolithic system, but have recently bet really big on Headless. And this is fantastic. You've probably heard of the Hydrogen Project and you've probably also heard that they acquired Remix as well. So this shows that a real big player and Shopify is one of the real big players in the e-commerce space. They're betting big on Headless. And this is a very good sign. And this is a sign that this is a trend that is really here to stay and it's going to drive the future of e-commerce.
3. Benefits of Headless Commerce
Headless commerce offers numerous benefits. It allows serving multiple clients through the same API, enables the use of any technology for front-end development, and provides freedom in choosing tools and platforms. With a headless architecture, developers are no longer constrained by outdated tooling choices and can leverage the innovative JavaScript node ecosystem.
So we've learned what Headless is, but why are people interested in it? Why is it so big? Why is it the future? Let's look at some of the benefits.
So first off, we see that it's pretty easy now that we've separated the client from the server. We can now serve multiple clients through the same API, a mobile app, maybe an in-store point of sale system and who knows, even an internet connected fridge where you can order your groceries through the same API.
And now that we've decoupled the UI, it means that we're no longer bound to the templating systems imposed on us by a monolithic system, be that the the templates of Magento that you see here or the WordPress style templating system that's used in WooCommerce or liquid templates used by Shopify. A decoupled UI means that we can use absolutely any technology that we want to build our front ends. And this is a key point because in e-commerce, it's not uncommon that the server the platform itself is very long-lived. It's a big investment and it's going to last five years, ten years, even more. By decoupling the UI, it means we're no longer constrained by whatever technology the back end platform is built on. We can build the front end with whatever we like. Remix, for example.
And that brings us to tooling. Let's take an example of Magento. This is a very big open source commerce platform. The last major version came out some years ago, maybe seven or so years ago. And at the time, they had to choose what are they going to build that UI layer on. So the tools that were available at the time looked something like this. And they chose some of these. Like Knockout, RequireJS. And that was a fine choice back then. Now if you were to start a new project and someone said choose whatever tool you want, you may not choose these. I personally wouldn't choose those. I would choose something maybe more like the ones on this side. And the key point here is that with a headless architecture, you are free to do that. You're not constrained by tooling choices that had to be made a decade ago. You can use what makes sense now. And that's a huge thing in terms of not only developer productivity, developer happiness, but also in the results you can get in terms of the experiences you can create for your customers. And this also highlights a strength, a massive strength of the JavaScript node ecosystem, this incredible innovation, this pace of innovation. Some people call it JavaScript fatigue. But on the positive side, we have an amazing array of tools that we can use, and there's continuous innovation. And the innovation is not only in frameworks and build tools, but it's also in the actual platforms that we can run our code on.
4. Explaining the Edge
The edge is a server located at the edge of a network. In our case, it is an intermediate server that users go through to access our e-commerce application. This setup reduces network latency and improves user experience. For example, a potential customer in Sydney would send a packet to our server in central Europe, resulting in significant latency. By utilizing the edge, we can render HTML on the server and send it back to the customer, reducing the waiting time and improving performance.
That brings me to the next point that I want to cover. The edge. So what is the edge? Well, to explain this strange new concept, I have a special guest, the Edge. I'm sorry, I had to get a dad joke in somewhere. This is the Edge, the guitarist from YouTube. He's going to help explain what the edge is. So what is it? Okay. He says an edge server is a server located at the edge of a network.
What do we mean by the edge of a network? Well, in the center of this network, we have a cloud region, EU central one. That's where we're hosting our e-commerce application. We have users all around who want to use it. And notice that they're not accessing the cloud directly. They're going through an intermediate server that's close to them. These servers are what we refer to as the edge or edge servers.
Let's make this more concrete. Here's our node application running in central Europe. This is running our remix app, of course, and we're using a headless commerce back end. And we have a potential customer down here in Sydney. He enters the URL of our website into his browser. His browser is going to send a packet all the way to our server in central Europe, and that is 16,000 kilometers away. Just the network latency for that packet to go across is going to be over 260 milliseconds. Once it arrives on the server, we're going to be rendering HTML. This is a key point. We're talking about e-commerce. We're going to be doing server rendering, okay? SEO is king, so we're definitely going to be server rendering, so there's some work done there. Once the HTML has been rendered, we got to send it back, all the way back to Sydney. Again, 16,000 kilometers latency, so just before the first byte arrives, our customer is going to be waiting for a second, two seconds. Who knows? How is this going to look like from his point of view? Okay, he's entered the URL. The packet's traveling 16,000 kilometers. The HTML is rendering.
5. Improving Website Loading with Edge Rendering
The website loading experience can be improved by using CDNs, which store static assets on edge servers. However, fetching the HTML file from the origin server still introduces latency. To solve this, we can render the page at the edge using Remix Edge SSR. Remix is compatible with various JavaScript runtimes and can run on platforms like CloudFlare Workers. By rendering the HTML at the edge, we can significantly reduce latency. However, there is still a problem.
Okay, the first byte has come back. We've got some HTML. That's good. Now, the HTML's fetching some JavaScript, maybe some assets. It's making some more fetches for data that it couldn't serve a render, such as session-specific data. Ah, okay. The shopping cart just loaded. Some more requests going in the background. Lots of latency on every single request. Finally, the image appears. The website's loaded. Not a great experience.
How can we improve this? Something that we've been doing for a very long time is using CDNs, Content Delivery Networks. This is actually a form of edge computing. This stores static assets, like images, JavaScript files, CSS files on a edge server, for example, right there in Sydney. When those assets are required in the future, they're fetched locally. Instead of 500 milliseconds latency, there's 10 milliseconds latency. That solves part of the problem. But we still have to go all the way to the origin server to actually get the HTML file to know what resources we then need to subsequently load.
How can we solve this? Well, what if we could do the rendering not only in our origin server in central Europe, what if we could render right there at the edge as if we'd taken our node server and scattered it around the world? That would be cool. That's what we can do now. So, as well as our static CDN, we can also actually render our page right there on the edge with something like Remix Edge SSR server side rendering. So, one really, really cool thing about Remix is that it can run on any JavaScript runtime. So, we all know Node.js, but there are other JavaScript runtimes. There is Deno, there is CloudFlare Workers, there are probably others, and there are probably more to come. Remix is very smart. It abstracted that part away into adapters so it can run on any JavaScript platform. In this case, we could be running on a CloudFlare Worker, for example, CloudFlare Pages, and Remix can do the rendering right there. So, the HTML is generated there in Sydney, 10 milliseconds away. There's still a problem, though.
6. Edge Computing and Venger Demo
To reduce latency in retrieving product data for our website, we can cache API responses at the edge. This revolutionary approach improves performance, global availability, and reduces the load on origin servers. Let me introduce you to Venger, an open source headless e-commerce framework built on Node.js and TypeScript. It offers GraphQL APIs, supports multiple languages and currencies, and has a growing community. You can get started with Venger in just one command and be up and running in five minutes.
To get the product data to put into our page, we still have to make a call back to our headless server in central Europe. We're still going to incur latency. But edge computing can help with that too, because we can cache our API responses at the edge. So, that product has already been requested in the past. The response has been cached right there in Sydney.
So, now let's look at it. When he wants to visit our website, he makes a request. The Edge server can start rendering the page with Remix. When it needs data, it grabs it from the Edge in an API cache. It returns it to the customer, and every resource that is needed by that web page to fully render it is right there in a CDN also. So, everything that he needs is right there in Sydney. Instead of 500 or 1,000 millisecond latency, there's 10 milliseconds or 50 milliseconds. Much better.
So, this is why I call it the new frontier. It's really a revolution in the way that we can serve applications and increase performance, increase global availability, and decrease the load that we actually have to serve on our origin servers. So, this new frontier, as I said, consists of headless architecture and edge computing. Now, what does this look like in practice? I've got a demo for you. So, let me introduce you to Venger. Venger is an open source project that I've been working on for the past four years. It's an e-commerce framework. So, it allows developers to build custom e-commerce applications. It's built on Node.js using TypeScript, and it's headless. It exposes its functionality via GraphQL APIs. Not only that, it's highly extensible. You can pretty much build anything on it. It supports multiple languages, multiple currencies, and it's got a growing and active community. It's used by lots of companies, from Fortune 500s to Unicorn startups, Y Combinator backed startups, national supermarket chains, and everything in between. If you want to try it out, you can get started in one command, npx at Venger slash create myshop. It supports SQLite, so you don't need to have a database running locally, you can literally be up and running in five minutes. Try it out after this talk or after this conference day.
7. Venger Online Shop Performance
Today, I want to show you an online shop backed by Venger and built with Remix. It runs on CloudFlare pages, an edge computing platform, and the API is cached by Stellate, an API caching service that uses the Fastly edge network. Let's take a quick tour of the website at remix-storefront.venger.io. It's running fast, with features like filtering, adding to cart, modifying the cart, and searching. But how fast is it? Let's use page speed insights to measure its performance. The results show lots of green circles and high scores, both on mobile and desktop.
This is what I want to show you today. It's an online shop backed by Venger. It's built, of course, with Remix. Running on CloudFlare pages, which is an edge computing platform. And the API is cached by Stellate, which is an API caching service which uses the Fastly edge network to cache API responses.
So we've got everything in the mix that I've talked about. So this should be good. Let's take a look. So here's the website. It's available at remix-storefront.venger.io. I'll just take you on a really quick tour. Here's the landing page. We can drill down, look at these categories, camera, photo, take a look at this. And as you can see, it's running pretty fast. We can filter, add to cart, we can take a look at the cart. Modify it. All of this is happening against against a real API. We can search.
So, that's what it's like to use. I'm sure you can agree it's pretty fast. But just how fast? Can we have an objective measure of it? Let's take a look at page speed insights. And we will take this product detail page and drop it in there. And now, it's going to run an analysis. And what we're hoping to see, of course, is lots of green circles with big numbers approaching 100, hopefully. Let's see what it gives us. First of all, we're going to see the mobile results. Okay. Lots of green circles. And almost 100 in all of those. If we go over to the desktop version, okay, this is looking really nice.
8. Benefits of Headless and Edge Computing
We have achieved excellent performance in almost all aspects, with the exception of accessibility which requires some improvement. The website is incredibly fast, as evidenced by the response times from different locations around the world. The results clearly demonstrate the benefits of headless and edge computing. This concludes the demo, and we will now return to the slides to recap the future of e-commerce.
We have basically 100 in everything almost. Accessibility needs a little tweak. And these numbers right here are ridiculously good. So it's fast. It's objectively very fast.
Let's see if we can get a measure of the benefits that edge computing is bringing in this situation. Our origin server in this case is in Europe. I'm in Austria. So we're not really seeing the full capabilities of the edge. But let's see if we can view this website from different locations around the world. Here's a page that I found that lets us do this. So it's going to make a request to this website from Singapore, Brazil, Virginia, California, Ireland, Australia. And let's see what the results are. So they all come in. Look at these. Six milliseconds. 14 milliseconds from Brazil, Virginia, one millisecond, Australia, 14 milliseconds, California, two milliseconds.
I can't think of a better illustration of this entire concept of headless and edge than this. The results speak for themselves. I'm going to shut up now. That's the end of the demo. Let's head back to the slides. To recap, we've talked about the future of e-commerce being headless, edge computing built on Venger using Remix.
Comments