385: Live from JAMstack_conf
Live ShopTalk Show! Chris and Dave come to you live from the floor of JAMstack_conf in San Francisco answering real questions about JAMstack.
Chris Coyier and Dave Rupert
Time Jump Links
- 08:20 How do you explain JAMstack to yourself 11 years ago?
- 12:09 Is JAMstack a weird name?
- 12:40 Is this JAMstack a fad?
- 16:32 How are feeling about the whole headless CMS?
- 25:19 Why is AMP not talked about at JAMstack?
- 27:03 How does a static site work with large membership site?
- 32:50 Is there room for better content tools?
MANTRA: Just Build Websites!
Dave Rupert: Hey there, Shop-o-maniacs. What you're about to listen to is a live recording of the ShopTalk podcast. Chris and myself, Dave, we went to JAMstack in San Francisco, California, to do a live show and this is the product of that. It's Chris and I on stage next to each other, which only happens a few times a year. It was really a lot of fun. There's also a video of the recording if you really want a video of that. You can watch that on YouTube. There'll be a link in the show notes.
But before we kind of get going on that and going into the live show, I wanted to do the sponsor stuff all upfront just to make sure that that's out of the way, so you can have a pristine listening experience.
I want to say thank you Backlog for sponsoring the show. Backlog is the perfect task management software. It has things like all the charts, Gantt charts, all your favorite charts. All of that is baked into it and it's a really handsome, charming looking piece of software. It integrates with things like Slack, Jira, Google Sheets, and stuff that you or your company uses on a day-to-day basis.
Check them out, Backlog.com/ShopTalk. Thank you so much for sponsoring this show. Try it free for 30 days. That's it. Backlog.com/ShopTalk.
The next sponsor I want to tell you about is WooCommerce. You probably know WooCommerce. It's commerce inside your Woo. No, it's commerce inside WordPress. Version 3.6 just dropped and they added product blocks, so now it all works with WordPress V5, very Gutenberg-y. You can show products by category, best-selling products, handpicked products, newest products, products with specific attributes, and more. There are also mobile apps for iOS and Android. Really, WooCommerce is good. It's probably the easiest way, I think, at selling things on your WordPress site, so check that out.
If you want to see a shop, a WooCommerce shop in operation, you can go to blog.codepen.io/shop and there's a shop. CodePen is running WooCommerce.
Thanks to WooCommerce for sponsoring this show. Check them out.
I think Chris is here. Chris has a job he wants to tell you about. We're going to let Chris tell you about the job.
Chris Coyier: Hey, hey, ShopTalk Show listeners. I have a job opening I want to tell you about. This is at Astute, which is a digital marketing agency in Nashville, Tennessee. They are looking for a lead front-end developer doing WordPress work, primarily. It's an onsite job in Nashville, Tennessee.
How awesome would that be living in Tennessee? Another life for me. I'd play the banjo all day. I'd work all day; play banjo all night in the country music capital of the world, but I'm sure it's a wonderful town for other reasons, too. But I would love to live there.
They say, of course, you're working with client projects and across those client projects but, also, setting, maintaining, overseeing a quality control process. Competitive salary. All that. Short workdays sounds nice, 8:00 a.m. to 4:00 p.m. Very nice. Of course, they have all the good benefits that you'd expect from a good job like this.
Astute looks like a wonderful place. Woman-owned; very cool. Just go read through the whole thing of what they expect from you because it well lays out the job and you can apply for it right at the URL where you're reading about it, which is a nice touch too.
Go get it, ShopTalk Show listeners. Dang it. Go move to Nashville and take this job. I've heard it emphasized a lot that, at some point, you should go work at a shop and experience that in your career. Product work is fine but, earlier in your career, at some point in it, go work at a shop, deal with the deadlines, work with the clients, and work on lots of ideas across lots of projects. You're going to grow up real fast doing it and I think that's a wonderful idea that I'd echo, so go get it, ShopTalk Show listeners.
Dave: Okay. With that out of the way, I think we're ready to go in. Again, thank you so much to JAMstack and Netlify, JAMstack Conf and Netlify for having us out. We really appreciate that. Enjoy the show.
Chris: These are just props. They gave us these.
Dave: It's like Dig Nation.
Dave: We should introduce ourselves. Hi. It's us! I'm Dave Rupert. I'm from Austin, Texas. I work at a company called--
Dave: --called Paravel. We're a three-person Web design shop. Yeah.
Chris: Oh, you're doing an official intro?
Dave: Well, I just thought--
Chris: That's what you really do.
Dave: I guess, who has listened to the ShopTalk Show before? Yes? Okay.
Dave: Who has never? Who is a first-timer? Welcome. I apologize. We're at, like, episode 400, and that's joining the ninth season of "Cheers" or whatever. [Laughter] So, we were like, "Oh, we should introduce ourselves."
Chris: Yeah. We just had a little crisis about that. Does anybody start listening to podcasts that late? All the evidence is yes, they do, which is cool.
Dave: Yeah, that's good.
Chris: But still, I could see. I'm not going to start in season nine of "Cheers." Who's the drunk at the bar? It's witty.
Dave: Yeah. [Laughter]
Chris: Isn't he the--? Okay.
Dave: No. [Laughter]
Chris: Anyway, you really do work at an agency with two of your buddies.
Dave: I do. I work at an agency.
Chris: You have all kinds of big, fancy clients.
Chris: Yeah. I don't do agency work at all. That sounds like a pain in the ass to me.
Chris: You've got emails.
Dave: But you work on -- you have a nice blog.
Chris: I have an app.
Dave: [Laughter] And an app.
Chris: Yeah. Oh, a blog too. I blog.
Dave: And an app.
Chris: And an app.
Dave: All right.
Chris: And a podcast. We bring those perspectives to the world of making websites and stuff. Lately, it's kind of been the JAMstack show anyway.
Dave: Yeah. We're basically going to pivot today to being the JAMstack podcast.
Chris: You heard it here first.
Dave: The JAM Show.
Chris: Cool. Don't we have a--? What is next here? I feel like to get the stage, get a feel for the audience where you're at on things, do a little poll.
Dave: Yeah, we have a very important question that everyone has to answer before we get going. We'll get that out of the way, right? Question: quokkas or opossums?
Dave: Okay, whoever is voting for quokkas, please vote for quokkas. Yes? Okay.
[Murmurs and cheers]
Dave: All right. Yeah. Noises help on an audio podcast. That's great.
Who votes for opossums? Yes.
Dave: Oh, strong energy. Yes, strong energy. That's good.
Chris: That's a wash.
Dave: Whoops. Who added the logos?
Dave: What a despicable person.
Chris: [Laughter] I think quakkas won somehow.
Dave: Ah, hey.
Chris: Okay, but yeah. What we normally do on the show is, sometimes we have guests on and interview them, but in the early days -- and, in fact, we still get questions like this sometimes, which is awesome to me. The show was modeled after Car Talk.
Dave: Yeah, Click and Clack.
Chris: The most popular radio show of all time, kind of thing.
Dave: We're like Click and Tap.
Chris: But our logo has a wrench on it, so once a while we get emails that are like, "How do you change the oil in my 1978 Pinto?"
Dave: Yeah. Unfortunately, yeah, just…. We're like, "Well, it's your Frodo."
Chris: Yeah, let me Google that for you.
Dave: [Laughter] Yeah.
Chris: Anyway, we have a bunch of questions, some of which you did for us. Some we got on Twitter. Some, we collected them throughout the thing. Definitely, real people asked all these questions.
Dave: Yeah, so these are from real, actual people. The first question is from--
Chris: Oh, this is a real one. Not that there are any fake ones. This is a real one.
Dave: Yeah, this is a real one. David Darnes--
Chris: Read it out loud.
Chris: We're going to publish this to our real audio podcast.
Dave: We'll do an audio. David Darnes writes in; a friend of the show, a long-time listener. Time travel scenario. You travel back 11 years and have to explain JAMstack to your former self. How would your former self react? David picked 11 years because that's the first commit to Jekyll was 11 years ago.
Chris: Oh, really?
Chris: Oh, that's a wildcard.
Dave: Eleven years ago, let's flashback to 2008.
Chris: I'd be like, "So, you know movable-type? It's just that." [Laughter]
Dave: Movable-type is back? That's amazing. I can use it on my Flash site?
Chris: You just spin up a local MySQL database, run a Pearl script over it, and it barfs out some crap. You throw it on your -- FTP it up. FTP 'er up.
Dave: Oh, man. Do I have to know Pearl?
Chris: Yeah, Pearl.
Dave: It's the new -- um, this is interesting. We were talking about, like, Flash was really popular in 2008, still.
Dave: Steve Jobs hadn't killed it yet. [Laughter]
Chris: Mandy tried to convince us Flash was the original JAMstack.
Dave: Yeah, Mandy was like, Flash is JAMstack. I was like, she's not wrong.
Dave: Kind of, you did have to--
Dave: Prerender. It came down in a big, giant bundle just like every other JAMstack site.
Chris: Uh, not wrong.
Dave: Not wrong.
Dave: So, we made some missteps, but here we are 11 years later.
Chris: You know what's funny? As long as we're reminiscing about old crap--
Chris: --GeoCities probably wasn't because, weirdly enough, it had dynamic data, comments and stuff that probably wasn't prerendered - probably not.
Dave: No. No.
Chris: But, like, I was looking around. GeoCities is long dead, but everybody remembers that. There's another site, though, Neocities, that I was looking at looks really cool.
Chris: I had just weirdly never seen it before. It's totally JAMstack.
Chris: You sign up for it. You just get an online editor. It just, by default, gives you an index.html file and CSS file and stuff. But then you look at their Read Me and stuff and they're like, "We are a CDN backed static file service." They're really serious about the tech of it. But all the sites people build, they're like, "Look at this rabbit."
Dave: Dancing rabbit. Yeah.
Chris: But it's JAMstack. Anyway, the question, though, what's your thing?
Dave: I think if I were hearing about it, I would be like, "I don't know, man. I really like my Ruby on Rails with the database."
Dave: I think I would--
Chris: But you're trying to explain what it is.
Dave: Oh, if I'm explaining it to my former self?
Chris: You would say, "I don't like it. I like databases," or whatever?
Dave: Well, that's how I would react. I would just be like--
Chris: Your voice was lower then?
Dave: [Speaking in a high-pitched voice] Oh, yeah, hey.
Dave: [Continues speaking in a high-pitch voice] Yeah, I don't know, man. I really like CakePHP. It's really kind of happy here.
Dave: That's how I'd probably react. I don't know.
Chris: Yeah. It wouldn't be that hard to explain, though, honestly. I'd be like--I don't know--it's static files.
Chris: Yeah, that's actually a good point.
Dave: You'd be like, "The what? That's a mistake."
Chris: Imagine. Not even. Whatever you're picturing is a lot. It's way more than that.
Dave: Megabytes more.
Dave: Yikes, dude.
Chris: Watch that coming. That's a wildcard.
Chris: Didn't see that one.
Dave: All right.
Chris: All right, I guess you would just -- I don't know.
Dave: Okay, the next question.
Chris: Good question.
Dave: Dave Schmupert writes in -- it sounds like -- Dave Schmupert, are you here?
Dave: Okay, Dave Schmupert writes in, "Is JAMstack a weird name?"
Dave: Probably not at JAMstack Conf, but yes. Should we rename it? Yes. We should rename it.
Chris: No, we can't rename it now. They have a conference already.
Dave: No, okay. Yeah, that's true. There's already a conference and people paid money to go.
Chris: Yeah, it's got legs.
Dave: It's got legs. Okay, well, then I--
Dave: All right.
Chris: Here's another real person.
Dave: Hawks Fillworth writes in--
Dave: --"In this industry, we are fatty."
Dave: Whoa! Hey!
Dave: Yeah, I know I'm overweight, but--
Chris: I broke my elbows. [Laughter]
Dave: Yeah, you don't have to call it out.
Chris: Yeah, is this middle school? I'm not a fatty.
Dave: It might be a code of conduct violation. We should probably check. I don't know. Okay.
Is this JAMstack thing a fad? Just a fad?
Dave: Oh, okay, fad. Fad. Makes sense. Okay. It's British.
Dave: Does it matter if it is? Is JAMstack a fad, Chris?
Chris: Yeah, I mean-- [Laughter]
Chris: Well, come on. Everything is a fad. Phil said it's a fad, kind of. Did he?
Dave: No, he called us faddy. So, if I understand what you're saying, you think it's a fad because it's a fad.
Chris: Not that it's going to go away.
Chris: The name might. We might stop talking about it that way because it's a pretty loose connection of stuff already.
Chris: It's a little bit like -- it's static hosting, which is my favorite part of it, and then other good ideas sprinkled on top. If it's that wishy-washy already to me, a little bit, then maybe over time the best practices and the services will stick around and all the good ideas will stick around, but maybe we won't talk about it in the same way. That's the part I expect to kind of fade over time.
Dave: No, that makes sense. I like JAMstack, regardless of the name. I like that it's kind of an umbrella term of sorts for these technologies we're all exploring and using.
Dave: It seems like it could stay, at least until somebody IPOs.
Dave: Everyone is kind of banking on that, so there you go.
Chris: Yeah. Yeah.
Chris: I mean everything comes and goes. This conference is smoking hot right now. It's not like there were 5,000 people here or whatever, but what there was here is a lot of representatives of really good, on fire companies right now.
Chris: They sent their A team to this thing.
Dave: Not the chumps. They sent--
Dave: --the kind of Burger King king.
Dave: To this conference. The actual Burger King came here.
Chris: That's right.
Dave: And gave everyone Popeye's Chicken.
Dave: Which is just incredible.
Dave: Like, I can't believe that.
Chris: No, I know.
Dave: It's not just -- you know, we sent the--
Chris: Mr. Horton himself came.
Dave: [Laughter] Mr. Horton. Where was Mr. Horton this morning? I missed his booth.
Chris: Do you think the name will stick around? Literally, three years from now are we going to be like, JAMstacking it up like it's hot.
Dave: I hope so.
Dave: Well, I hope I'm doing the JAMstack.
Dave: Maybe it has a cooler name, but--
Chris: Right. You don't think we'll regress into, like, PHP is the way again? You know there are all these huge slices of the Web that aren't going anywhere.
Dave: Wait for PAMstack.
Chris: It's JAMstack with a little PHP.
Dave: Yeah, it's good.
Chris: It's good.
Dave: It's taken off.
Chris: As long as you can run PHP on the edge, everybody will be like, "Oh, good."
Dave: It works.
Dave: It's serverless. You get a white page if it breaks.
Dave: It's beautiful. It's good.
Chris: Yeah, the error handling we haven't figured out yet.
Dave: Yeah. All right.
Chris: All right, all right, all right.
Chris: Oh, this is a good one.
Dave: All right. Here we go. Dominique Magnifico -- are you here, Dominique? No? Is this his real last name? That's just a power name.
Chris: It is.
Chris: Power move.
Dave: How are we feeling about the whole headless insert CMS coupled with the static site generator like Gatsby or 11ty? Is that the future that agency work is heading towards?
Chris: Agency work specifically.
Dave: Agency works specifically.
Chris: You should just put, "Insert static site generator here," too because that's a whole spectrum.
Chris: I knew this was coming. This is why, this morning, I wrote a blog post about -- whatever. I'm not going to read you the blog post.
Dave: No, let's read it. That should make--
Chris: There are all these buckets of services and there's a spectrum of them. Sometimes, it does kind of feel like, "Pluck one of these and one of these and one of these and you get a website," kind of thing.
Chris: I guess the question is, are we for sure going to do this? Is this what we're going to do? Are we going to split them?
Chris: Are we going to be like, front-end and then CMS over here and sprinkle on other stuff over here; we're splitting up responsibilities?
Dave: Who was at the agency breakfast fireside chat this morning? That was really cool because, in all this e-commerce stuff, all those talks, especially from the Burger King, it was really good to see how people are using this in real production and client situations. I think the core of this agency question is, how do clients respond to that? I know my clients; I think it's kind of like that WordPress talk. It's like, "Well, we have a WordPress, so you're using that," you know. You don't get the full JAMstack benefits or decoupled CMS.
Chris: Is the point that, when you work with a client, they dictate the choices?
Dave: Yeah, sometimes, but I like this where it's like, the more of these that show up -- and I keep coming back to when the responsive Web design was blowing up and there was the Boston Globe and then every news agency was like, "Yeah, we'll do responsive too." Every website was like, "Yeah, I'll do it."
It's like when the Burger King goes JAMstack, now this is cool or this seems viable. The Nike talk made me think, like, the best way to do it is, in an emergency, you roll out a JAMstack.
Dave: Everyone is panicked and only has four weeks to build a website. You're like, "JAMstack. Yeah, that's it."
Dave: [Laughter] Because it takes two weeks to set up a database, at least.
Chris: Yeah. Yeah, so there's a lot to unpack there. You can speak to the agency angle better than I can.
Chris: I'm interested in the--I don't know--yes, I do think this is where we're going. I think there are a lot of us that have decided, I want to build my front-end however the hell I want to build my front-end, evolve it, have good ideas, and feel freedom over here on the front-end. I like to pick a CMS that feels like I have some agency there and can pick what works good with my data. There's a spectrum of stuff there. What language do I want to write it in? Do I care where the data goes, how it's formatted, and how it's modeled?
Dave: It's written in Nuxt. Yeah.
Chris: I like it.
Dave: Good choice.
Chris: I want to be able to evolve those things separately so, yes, I think it's a good idea - kind of.
Chris: Not that any part of that is a bad idea, but do I also think it's a good idea to have products on earth that are a whole package of stuff that's the complete answer to the whole thing and you use that to build the site? There'll always be value in that.
Chris: If you're going in it for the long-haul, we're going to build a real thing that's meant to last, we have teams of people working on it, but that decoupling situation.
Dave: I want to hear more stories, read more blogs, and send those to clients and stuff, just more people who did the great decoupling, it worked, and it feels good.
Chris: Okay, like white papers.
Dave: I need some white papers. I love handing over my email just to read a blog post.
Chris: That's true. Maybe we're a little light on super success stories of all this.
Dave: Yeah, but the Loblaw's talk, Bob Loblaw--
Dave: --that was great but because it's like internal agency, right? The dedicated team solution wasn't really working. I loved that talk because that's what matters probably to my clients more than just like, "We're putting things on the CDN." They're like, "Yeah, everything goes on the CDN, you idiot."
Dave: I think what matters to my clients is how we ship things faster, better, and have less errors. The Loblaw's case study was really awesome because it was very, like, we actually found out the dedicated team thing was weird because everyone kept stepping on each other. We went to more of a studio model, internal studio model, and that's cool. That does get me back to those responsive Web design feelings where it's like, okay, now the organization is changing to adapt to the tech stack or whatever.
Chris: Ah, right.
Dave: The challenges of the tech stack, so I think that's cool.
Chris: Yeah. You were saying earlier that sometimes there's a moment in history that changes things a little bit.
Chris: There's the Boston Globe moment. My wife, by the way, led that team.
Dave: Yeah! Miranda.
Chris: That's right.
Chris: Anyway. What's up, Miranda?
Dave: A piece of history.
Chris: A little piece of history there. Is JAMstack waiting for its Boston Globe moment, kind of?
Dave: Possibly. Maybe the great chicken sandwich wars of 2019 were--
Chris: [Laughter] Were part of that?
Dave: --were part of that.
Dave: I don't know. You know?
Chris: If Burger King is JAMstack, you can be JAMstack.
Dave: Yeah, I hope so.
Chris: Okay, maybe that's it.
Chris: You do agency work. I feel like I've heard this thrown out a little bit. I don't know if it's taking as an acronym or not yet or what, but AX, Author Experience.
Dave: Author Experience, okay.
Chris: That's what I picture as agency work. I know you have a different kind of scope of clients, perhaps. I think a lot of agencies are specifically designing a site in which they do the nerd bits and then they hand it off to people who have a marketing team and a content team who you're trying to build an experience for them to edit the site that needs to be good, understandable, fast, and all that stuff.
Dave: That's a big part of what I do.
Chris: That's why some people pick CMSs, classic CMSs because they've proven that they can do that over time, but maybe that's changing and stuff. Do you ever have to make AX decisions?
Dave: We do. That's part of it too. It's cool to see these different CMSs, Contentful for managing your content or even you get into Craft stuff like Craft has a GraphQL API now and they have a cloud thing on the horizon. These are cool things.
I know our clients are like -- any client you walk in the door to they're like, "Oh, we hate our CMS. Ugh. That's why we can't get anything done." You know?
Chris: Yeah. What is that? Everybody hates their CMS.
Dave: Everyone hates their CMS, so it's like I think there's always an opportunity to do a better job in the CMS UX. But sometimes it's our job to not just fill it with crap. That's part of the problem, right? We do a bad job of it.
Chris: I had this unrelated, but related slightly, thought earlier. I feel like everybody should have a CMS that's capable of slightly more than you're currently using it for.
Chris: You never want to feel like you have maxed out your CMS capabilities. I don't know what that means exactly. That's like a shower thought.
Dave: All right.
Chris: Are we done?
Dave: Yeah. Next one. Oh, Jay Schmupert again.
Chris: Just shout it out.
Dave: Which talk won? All right. Everyone, just shout out the best talk. Ready? Three, two, one, go.
Dave: Okay. A lot of people said variable fonts but the correct answer was chicken sandwich.
Dave: All right. Shawn writes in, "Vue, React, and even Angular have got a lot of mention on stage and in the halls, but there's very little discussion about Amp, which has some overlap and some differences with JAMstack. Why do you think this is? Is it politics, Amp's polarizing perception, or technical perceived limitations on what you can do?"
Chris: Why wasn't there much Amp at JAMstack Conf?
Dave: Because Amp sucks.
Chris: Yeah, because there's classy, intelligent people here.
Dave: Oh, hey!
Chris: That's…. Whoa!
Dave: They just let you say anything….
Chris: (Indiscernible) Who invited these jerks?
Dave: Wow! Well, Amp is a search technology, so this is not a search conference or SEM. I don't know. I guess, technically, it is.
Chris: You have to prerender it. He's got kind of a good point, right? Isn't Amp basically prerendered?
Dave: It's Web components.
Chris: You can't have an Amp -- div ID root isn't an Amp.
Dave: Nope. No, Amp comes down with some content. No images show up, but Amp needs to run before images show up.
Chris: I'm sure there are plenty of people JAMstacking their Amp.
Dave: Does anyone JAM their Amp or Amp their JAM?
Chris: Amp? JAMP?
Dave: That sounds terrible. JAMP? JAMPstack?
Chris: That is a little weird that nobody mentioned it, isn't it?
Dave: Yeah, it is. Maybe we're all waiting for it to go away.
Dave: Is that a safe bet? Okay. I think everyone has got some agreement there, so yeah.
Dave: Check. All right.
Dave: We--! But, if you want to have a more serious conversation, then we can talk about it later.
"We run a sizable publishing operation." This is Clay Anderson who writes in. "We run a sizable publishing operation with lots of subscription content. What I'm struggling to comprehend is how an SSG, server-side generated site or static site, can be used in such a case implementing role-based access, delivering page personalizations that are like U-spaced. How do you do that with the JAMstack?" Like P12N is what it's called.
Chris: Yeah, right. You log in and there's different stuff.
Chris: Well, yeah. You don't have to prerender everything, right? I feel like even Hawks Fillworth has a good post on my site about this kind of thing.
Chris: I don't know. I feel like that's a good spirit of JAMstack. You just prerender what you can and hit the rest, but all the great stuff about Nuxt was happening too. Nuxt -- this stuff is almost confusing to me. I wonder how many people totally grok this and don't. Maybe I'm the only one confused by Nuxt has kind of like two modes you can run it in. It can totally prerender everything, basically, right?
Chris: That's universal?
Chris: Okay, so if it's on Netlify, that's what it's doing because you're not running node. I guess you can in a cloud function, right? Generally, it's static files happening in there, right?
Dave: Yeah, or SPA, which is….
Chris: Yeah, or there can be node on the server and Nuxt can be hitting that node server to do server-side rendering. They're pretty different things to me and Nuxt does both.
Chris: Right, but if you have that node server available to you, then it can do stuff like, "Oh, I see you're logged in. I'm going to cough up the logged in stuff for you." It has access to the server, so it could do that.
Dave: Yeah, and you can also do that all asynchronously. Render the page and then go fetch the user avatar or whatever.
Dave: That's always my basic….
Chris: It's still JAMstack.
Dave: It's still JAMstack.
Chris: I remember. This is a fascinating JAMstack philosophy, question because I was hit up by some React-y people about this. If you have one file on your website, it's index.html. It has a docype in crap and then has div ID root only, one thing. A script file at the bottom. A big old content bundle, whatever. It loads down all of React, Vue, or something and scaffold a whole app from there. It's an SPA.
Chris: Micro front-ends?
Chris: Weird. Maybe not totally in the spirit of JAMstack, but yes.
Dave: Yeah, and I think best practices would be you try to render something. We have cool talks on performance or whatever. Try to render as much as you can before blocking the main thread.
Chris: Yeah, well, okay, so if it's a React app and that's how you're doing it, maybe do it with Next instead.
Chris: Then you get all the powers of Next, which Chrome is baking into the browser. Did you hear that?
Dave: They're just putting Next in the browser.
Dave: Yeah. It's great. They didn't even pay for it.
Dave: What I think Chrome should do is put 11ty in the browser.
Chris: Oh, my God.
Dave: Today, I'm announcing I'm going to invest $16 million into 11th.
Chris: Oh, you're…
Dave: Yeah. Just one more million than Gatsby.
Dave: I just want to really--
Dave: But if somebody else wants to invest $16 million, that's totally cool. I'll let you. You can have my spot. That's fine, but I'm in. I've got stickers.
Dave: And stickers. Oh…
Chris: Didn't we get the point of that question right, though?
Dave: Yeah. I think if you--
Chris: Role-based access and delivering page personalizations that are use-based, right?
Dave: I mean, you're--
Chris: There's dynamic stuff that's happening on this page. JAMstack doesn't say, "You can't do dynamic stuff."
Chris: It kind of says you can and should.
Dave: I think, from your talk, you were showing how CodePen -- that's a component. That's a component. That's a component. You keep building up until the URL is a component. I happen to know you all have a Rails back-end or whatever but, in theory, that could all be done from an HTML file on Netlify - possibly.
Chris: Yeah. Probably. Unfortunately, we don't. We don't do anything, pretty much any statically rendered stuff that hydrates or whatever. We want to get there because one way to do that is just have all those components in Rails too and render the whole thing in Rails and have them flop out for React components or whatever. Then you're writing two code bases. I was like, no.
Dave: Yeah, eventually.
Chris: But then you pick a Next thing, but Next has a very opinionated router and so does Rail. Then that got weird. We just haven't gotten there yet, but we'll get there. The technology….
Dave: Yeah, but eventually it might split apart and be two projects or whatever, so yeah.
Chris: Yeah. Yeah, well, that was fun. Did I click it? I think I already clicked. No, I didn't click it. I'm going to click it. Here you go.
Dave: Yeah, all right. Thomas Randall writes in, "There's a huge presence of CMS solutions and tools in the JAMstack world," like out in the lobby there. "Do you think there's room in this space for something game-changing for Web application developers? Do the current state of content focused tools meet the needs of application devs or do we need something more suited for apps? Are those two things at odds, i.e. the great divide like within the JAMstack itself, or are they two sides of the same coin?"
Chris: Yeah, all right, so CMS wise, we have all these CMSs. That's the kind of deal. For content things, just look at all the companies trying to help with that.
Dave: Yeah. There are a lot of solutions, a lot of players. Is there room for more?
Chris: Well, and then is the presumption that you're using those tools when you're building a content-y focused-y site? Right?
Chris: Then there's a proliferation of tools in that space. Cool.
Dave: But I guess we may have to do the whole, like, what is the difference between apps?
Dave: What does "Web apps" mean?
Chris: Are you saying maybe there's not a proliferation of tools on the other side of that, which is Web apps, whatever those are?
Dave: Yeah. I mean I think I come back to the work I do, which is mostly client work or whatever. All of them, like I said, hate their CMS and need a new CMS. I think the CMS play is good and smart and I'm glad there are a lot of options because I can go to my clients and stuff and be like, "Look. There are ten options to actually do JAMstack successfully." That's exciting.
But for Web apps, I'd be curious what we need. I think the Netlify build plugins, those are cool because now you can control more of your build in the Netlify.
Chris: What's the difference, though? If it's not a content-y site, what is it? What's an example of an app that there is less tooling for on the JAMstack side of things?
Dave: Yeah, I don't know. I have trouble. One thing I thought of, and if somebody wants to pay me $16 million to make this, I can totally do it. You know Serverless.
Chris: Got it.
Dave: Yep. You write a baby node app and then it gets a URL, it's own URL. How wasteful. [Laughter]
Dave: Anyway. It's a baby node app. It has a whole URL. It doesn't even -- it's only 30 lines of code.
Chris: They're not good URLs, though. They're garbage.
Dave: They're bad URLs. Okay. Good. All right, so I hit this weird URL and then it runs within 300 milliseconds or something. Then it spits back something, right?
Dave: Then -- the number one -- you think about hitting the Twitter API or whatever, right? Give me … tweets or whatever. You get your tweets but then, after you do that 50 times, Twitter says, "You can't get any more tweets." You hit the API too much. Then you have to write an app or some kind of middleware or something to cache that.
Chris: Ah, yeah.
Dave: I really want to--
Chris: Just as an aside, just to ruin your story a little bit, you made a 3D whale one time.
Chris: You had to hit this API to get -- it was just Agile Advice and this big, fat, 3D whale would go, you know -- what did it say? "You should work hard and eat less," or something.
Dave: Yeah. I can pull it up here.
Chris: You had to hit an API limit and the whale read out the API message.
Chris: It was the greatest moment in one of my life, I think.
Dave: Yeah, so GitHub has this Agile Advice API. It's just stupid; something they made a long time ago. I made a 3D whale in a VR scene and you look at the whale. You stare into its soul and it'll dispense Agile Advice to you like, "Done is better than perfect," or whatever.
Dave: It's just beautiful to me because I want to do morning yoga with this whale dispensing advice to me. But then when you hit the API limit, it's like, "Five hundred internal server error."
Chris: [Laughter] And then a colon, left curly bracket.
Dave: Colon. Yeah.
Chris: Because it was in JSON. [Laughter]
Dave: "Exceeded request 5093." Yeah.
Dave: Anyway, in this particular use case, this is the best start-up idea I've ever had, Agile Whale. [Laughter] It's a VR Agile whale. I think the ideal situation is, I could hit this API, but then somebody manages the throttling in between. I don't know if that's what you're after, Thomas. You can pay me for that idea, but I think there are things like that. There are rough points or the One Graph. That talk was awesome.
Chris: That was great.
Dave: Click-click-click-click-click-click. Now I can text to domain. That's with the Netlify.
Chris: Yeah. That's pretty app-y and not content-y.
Dave: I think some of those easing pain points would be pretty cool for just, you know….
Chris: Yeah, well, that's a good example of some tooling that's happening in that market, but it's true that there are a lot more booths out there that are content focused than are app focused, in a way. I think, to me, maybe those problems were actually almost solved first.
Something that's app-like is like a Kayak.com or whatever, something where you log in. There's auth. You have a user account and dashboard-y stuff, search, real-time data with results, and stuff like that.
Dave: It's all cool.
Chris: That's app-y, you know.
Chris: Some of those apps, that need was solved before we had JAMstack. There's Firebase and cloud functions came along and made microservice type of stuff easier to deal with. There already is a lot of good solutions for that.
Have you ever seen those slides, those JAMstack slides? They're like, "Look at the JAMstack ecosystem."
Dave: Oh, yeah.
Chris: There are Algolia and Twilio and all these services that sprinkle on together to make something. That's the app ecosphere. That kind of already exists, you know. If you're building something app-like, all those services are ripe for the picking.
Dave: Yeah, like anything with an API fits in the A bucket, right?
Chris: Yeah. Well, sure, it's the A of JAMstack. There you go.
Dave: There you go. That's good. Well--
Chris: Yeah, I don't even know if there's any more.
Dave: Any questions? Does that make sense? Did we answer that one? Okay. All right. Well, what are we doing? We've got five minutes. Chris, do you got anything else?
Chris: Let's just say thanks, for one thing.
Dave: We should say thanks.
Chris: It's striking to me. I said to somebody earlier that the coolness of this is kind of a big deal to me. It feels pretty special to be here. I know it's not the first-ever JAMstack Conf, but they keep getting cooler, in a way. Some of my favorite conferences I've ever been to throughout my, whatever, medium-length history in Web, were the focused ones where it was highly topical.
Chris: I remember I went to some of the earliest jQuery Confs.
Chris: Believe it or not, they had conferences. Not all you remember jQuery.
Dave: Only '90s kids remember jQuery.
Chris: But there was a hot spirit at those things of, like, "We are on the edge, yo. This is cool. We've got something in common." That same kind of vibe is happening here.
I was not joking around about the coolness of the companies out there sending their A team. All these companies are on fire. We're on the edge of something big, it feels like. This isn't just a weird, one-off thing on the Web. This is happen', yo.
Chris: It's happen'.
Dave: I agree. I'm getting cool vibes.
Chris: I have no stake in it either. I don't care.
Dave: Well, I do. I have $16 million.
Chris: I have … the Web. [Laughter]
Dave: I better get a return. You know what I'm saying?
Chris: Yeah, right.
Dave: But, no, it's such a good atmosphere here. The breadth of people, we talked front of the front-end, back of the front-end. There's a big breadth of people here and, through diversity, we get better opinions and better technology. I think that's good and I think we need to maintain that without making enemies.
Chris: [Sinister laughter]
Chris: That was one of the things that makes -- like when you pick five companies to host your website instead of some monolith thing. You have 5X the possibility or 5X the number of CEOs that might tweet something racist, you know.
Dave: You've got to be careful out there.
Chris: Yeah. At least when you pick WordPress, you've got Matt Mullenweg. The guy is fine, you know.
Chris: I can't promise, but he's very calm.
Dave: He's very chill.
Dave: Almost like….
Chris: Well, so are these Netlify guys.
Chris: Super chill.
Chris: I think we're all good here and in good hands. I guess a special thanks to Netlify just because they're really at the heart of this. They've paid the bill for most of this.
Dave: Yeah. Yeah.
Chris: That's a big deal and Phil works there, our glorious MC who did a great job.
Dave: Yeah, thank you, Phil.
Chris: Hey, thanks so much, Phil, and the rest of the Netlify gang, volunteers, sponsors, and everybody.
Chris: I think Phil has got a lot of people to thank too, but I want to thank them. Phil can't get up here and thank Netlify because that'd be weird, so I'll thank Netlify. God dang it, thanks!
Dave: You thank Netlify.
Chris: All right.
Dave: I want to thank you, dear listener, for tuning in, sitting here for this whole entire podcast. If you're listening on the audio track, thank you for downloading this in your podcatcher of choice. Be sure to star, heart, favorite it up. That's how people find out about the show. Follow us on Twitter, @ShopTalkShow, for tons of tweets a month. If you hate your job, head over to ShopTalkShow.com/jobs and get a brand new one because people want to hire people like you. Chris, do you have anything else you'd like to say?
Chris: [Whirling noises] ShopTalkShow.com.
Dave: All right. Thank you.