Josh: [00:33:15] Yeah. I guess we could move on to the next question here. What is and/or what are the limitations of e-commerce on a static site?

Franck: [00:33:38] Mm hmm. Well, right off the bat there's the popular disclaimer that says limitations on static sites are disappearing by the minute because of the JAMstack. So the JAMstack comes in with all of these different APIs tools you can use. There's us for e-commerce, but there's a whole bunch of tools for search and what not. Any old school—not old school—but more traditional argument that went, "Well you can’t do dynamic stuff like comments, forms, reviews, user authentication, CMS..." This is all becoming false. You can do all of that right now because of the JAMstack tooling, not the static site in itself. If we were to go further in the question, the actual limits of e-commerce on a static site?

There's this: if you have a site with a very high number of pages, lots of data... the whole static build process can become huge and long. So building a huge e-commerce on a static basis might become problematic. But then again there's nuance like always. Gatsby made an announcement that said they were working on incremental builds for static sites so that might fix the problem.

Josh: [00:35:14] Wow that's cool.

Charles: [00:35:16] This is very exciting.

Franck: [00:35:17] Yeah. These guys are full speed, one gear, go. Since they became a company. It's beautiful to see that happen. I remember when Gab, one of the engineers on our team, was helping us out with some blog content and I was like, "Yeah there's this guy, Kyle Matthews, that started this cool open source project," and he was like, "Yeah Gatsby I heard about it let's try it!" And it was just an open source repo on GitHub, basically. And that was it. There was not the whole organization and community and company around. And it's awesome to see businesses like that thrive in the JAMstack era.

Josh: [00:36:02] Oh yeah. That actually is something I am a little intimidated by, Gatsby.

Franck: [00:36:12] It's funny. Two weeks ago I tried installing Gatsby on my machine. It was a new reality check. I mean they've got awesome tutorials. Don't get me wrong. Their content team, in terms of documentation and recipes and tutorials... they're hand-holding you, a lot. But, even then, I had some NPM permissions issues and I had to go dig somewhere else for it, and I was swearing on my couch and my mom was like—I was visiting my mom—"Why are you working during the weekend?" I was like, "I'm not working... I'm working on a fun project for myself." She said, "It doesn't look like you're having fun at all!" I ended up putting this on pause and getting some help from the devs here at Spektrum and Snipcart.

Charles: [00:36:59] I think that tools like Gatsby and Nuxt—it's like the equivalent but in Vue—are like that next step. Yeah... Gridsome, too. It's like the next step in terms of static site generators because you get all the benefits of having your websites statically generated so that hosting and SEO things work great. But you also have the feeling of having a single page application so the navigation for the end user is much more clean and everything works great and it's very nice when you need to add more custom features to your website. You have access to the whole React framework or Vue or whatever tool you are using but it really gives you much more power than the more simple static site generators like Jekyll or Middleman.

Josh: [00:38:04] It almost makes me wonder if maybe in the next 5 years Jekyll will lose its popularity. I think it might be one of the more popular ones, but it might lose that, too.

Charles: [00:38:20] Yeah, but Jekyll has its own purpose. If you need to have a blog or a static documentation, you might not need to go with Gatsby. I think that Jekyll will still do the job very well for a lot of years. But when you have to build something that feels more like an application but you still want to make something statically generated, I think the more advanced tools can become handy.

Franck: [00:38:59] Yeah I'm on staticgen.com right now and Jekyll is still way first. That being said, some other cool projects have caught up.

Josh: [00:39:09] The thing I really like about Jekyll is it's very un-intimidating for me because all I need is an HTML, CSS and maybe a JavaScript file and then I get a GitHub repo. And nothing else. I think that's important for my feedback loop of learning because I can just do it all locally and I still could just be using it like a file and then looking at it in the browser. A little bit of tooling is really cool. Just Jekyll... even though it's very dependency heavy, I feel like I can really understand what's going on, for the most part.

Franck: [00:40:07] I guess you're not alone. If I look at not only the GitHub stars and downloads, but just in our own analytics. We haven't counted them recently but it's over two hundred tutorials on the Snipcart blog, mostly frontend-centric and JAMstack-ish. But if I look at the analytics, we've got a post on Jekyll e-commerce and it's driving heaps of traffic ever since we published it in 2015 or 2016. And we refactored that post a few times. It's driving conversions and stuff. So yeah we're seeing it also in our own ecosystem of content.

Josh: [00:40:54] That's awesome. It's great to know.

Franck: [00:40:58] Maybe we can expand a bit more on the e-commerce part for static sites. Before you use the dynamic argument and say, "well you cannot do e-commerce on a static site because there's lots of dynamic stuff you have to do like checkout and transactions and maybe even login and authentication.” Now, the cool thing is that you can do some of these yourself (maybe even all of them), but it would require lots of serverless functions. And I'm feeling like it might just become a whole dynamic app in itself, which could move you away from the simplicity of the static site.

So, it's always this balance of... should I be offloading most of that logic to an external API, like Snipcart and many others, or do I want to tackle all of this myself? That's an important question to ask yourself. But with the JAMstack it becomes not a sign of laziness to use an external AP, but a sign that you're able to bundle together the right tools. That bundling skill becomes valuable and respected in the community so you can focus on the stuff you want to focus on and offload the rest of the logic to other services. This is a very nice and modular approach and we've been preaching this for years now.

Charles: [00:42:46] I think one of the core principles of the JAMstack is about composition. You have to pick your APIs and tools and you compose your application using all these tools.

Franck: [00:42:58] Yeah I've gotten to saying, "The art of tying it all together" to sound fancy. But that feeds back into the Stackbit project where it becomes hard to pick the right tools because you've got the JavaScript, APIs and Markup. So how am I generating my site? Which content management system am I using? For these logins and comments and forms, what am I using? There are so many options. This is why it becomes really important to educate others and share your experience as a developer as much as you can, whether it's by guest posting, hopping on podcasts, starting a podcast like you did, or just writing about your experience in general and sharing. I think that's really key. You can do that with low friction, like participating in some cool slack communities, for instance.

Josh: [00:44:04] For sure. It’s interesting, when you're talking about, I was thinking about... well, for one, just cost. It's probably a lot cheaper sometimes to use an external API then develop it yourself. You have to really look at if it's worth putting the money into it or not.

Franck: [00:44:32] Yeah definitely.

Josh: [00:44:35] And then putting the money into maintaining it. So it's like, we’ll just let those guys do that. It's almost like building a house. You don't really see a construction company that does framing through, like, finished work. I mean they're out there but more and more there's just different contractors that do all the different things.

Franck: [00:45:00] Yeah. And you've got the equivalent of a fully hosted WordPress instance also that comes in the pre-built house. I don’t want to go too analogy-ish.

Josh: [00:45:12] Right. We're going to wax philosophical here.

Franck: [00:45:16] Yeah, just to tie it up for the e-commerce part. Where we positioned ourself is: Okay, listen, you've got all of that logic and complex dynamic features in e-commerce. You can go Dunning-Kruger effect on that like, "Well it's simple... you just accept payments online" but when you start digging into it you realize, "Oh jeez there's this login and address and refunds and discounts and..." It's an endless well of features to handle. So we come in and we're handling that for you. Like we made it our day job to make a product that handles that for you. Now, you can use us for that but it doesn't mean you have to use a black box full on CMS that does everything—you just punch in your product and you point and click.

With JAMstack e-commerce you can do your own site and your own web app yourself. Then you offload that complex logic of e-commerce but you don't offload the theming and the styling and the performance that you want to work on, on your own site. So that really always was our positioning and I don't see it changing for a few years.

Josh: [00:46:37] Yeah. If anything, it's just going to get more popular.

Josh: [00:47:37] Anyway did you guys have anything else to add to the e-commerce part?

Franck: [00:47:53] Yeah, that covers it. I don't want to be preaching too much for our own thing.

Josh: [00:47:58] Yeah I know... I don't really have to say this but this podcast is not an ad, you know? I'm not getting paid by you guys or by anybody.

Franck: [00:48:13] No, no one's getting paid here.

Josh: [00:48:16] Right. I think Phil was actually able to bill his hours on my podcast.

Franck: [00:48:21] Well I'll have to reach out to him and so he can explain his tricks.

Josh: [00:48:28] But anyway, you know how people are, there are trolls on the Internet. Obviously... right? But this is not just one giant ad for.. well, I guess it is a giant ad for the JAMstack in general, but not for Snipcart.

Franck: [00:48:45] Well, if you were to think this is an ad for Snipcart, just consider our track record. We've been putting out free tutorials, editorial pieces, GitHub repos, live demos... we've been putting out free stuff like this for years. Some of it talks about Snipcart. A lot of it doesn't even talk about Snipcart. For instance, how to build a Vue.js blog. This education of our users has always been a core part of our values, and of course it's marketing too, it's part of the whole thing.

Franck: [00:49:23] But there's actual, factual value in you having that free stuff and that free content. So it's more than just pushing the product. It's pushing the paradigm that the product is part of, you know?