Software Huddle - Jamstack and Composable Web Architecture with Brian Rinaldi

Episode Date: May 28, 2024

Today we have Brian Rinaldi from LaunchDarkly on the show. This is the final episode of our in person coverage at the SHIFT Conference in Miami. And although Brian works at LaunchDarkly, we actually d...idn't talk at all about his employer and instead chatted about Jamstack. Brian has a long history with Jamstack, has written a lot about it. Jamstack was popularized and created by Netlify. And there's been a lot of history of controversy with the term. Some people think of it's merely a branding ploy or a marketing thing, and others find it simply confusing because we have terms like LAMP stack, MEAN stack and MERN stack. So Jamstack automatically gets lumped in with those, but it's not actually a technology stack. It's an architectural pattern. Recently, Jamstack has been giving away to what is known as composable frontends and we picked Brian's brain on this and what this means not only for Jamstack, but also the future web development.

Transcript
Discussion (0)
Starting point is 00:00:00 Hey there, Sean here. Today we have Brian Rinaldi from Watch Darkly on the show. This is the final episode of our in-person coverage at the Shift Conference in Miami. And although Brian works at Watch Darkly, we actually didn't talk at all about his employer and instead chatted about Jamstack. Brian has a long history with Jamstack, has written a lot about it. And Jamstack was popularized and created by Netlify. And there's been a lot of history of controversy with the term. Some people think of it as merely a branding ploy or a marketing thing. And others find it simply confusing because we have terms like LAMP stack and MEAN stack and MERN stack.
Starting point is 00:00:37 So Jamstack automatically gets lumped in with those. But it's not actually a technology stack. It's an architectural pattern. Recently, Jamstack has been giving away to what is known as composable front ends. And we pick Brian's brain on this and what this means, not only for Jamstack, but also the future web development. All right. So before I get you over the show, last thing, if you have any thoughts, suggestions, or feedback for the show, feel free to reach out to me or Alex. And with that said, let's get you over to our conversation with Brian. Brian, welcome to Software Huddle. Thanks. Glad to be here. Yeah, thanks for joining
Starting point is 00:01:10 us here at InfoBip Shift, where you're speaking, I guess, in a few hours. Do you want to give a little bit of background about essentially who you are, what do you do, and also some of the stuff that you might be talking about today at the conference? Sure. So my name is Brian Rinaldi. I'm a developer experience engineer at LaunchDarkly. I work on obviously everything related to feature management, feature flags, all that kind of stuff. I write about it, speak about it. Here at Shift, I'm talking about something that's kind of unrelated to LaunchDarkly. I mean, obviously you can use LaunchDarkly in anything, but this is not necessarily a talk about feature flagging or anything like that.
Starting point is 00:01:50 This is about something that I've been interested in for a long time, which is building sites using this kind of JAMstack methodology and serverless and composable backend architecture and things like that. So that's what I'll be talking about today yeah and i know uh you know i've read some of your blog posts it's been something like you've written about like kind of outside unnecessarily your day job but just really you're interested so how far back does that like history relationship with jamstack go oh god it goes i mean i was talking about it last night because matt billman uh ceo of netlify is here and he and I was talking about it last night because Matt Billman, CEO of Netlify, is here.
Starting point is 00:02:27 And he and I were talking about when we met. And I was actually speaking at an event. This must have been like at least 2013. We were figuring it's about a decade ago. Because he hadn't even launched Netlify yet. It was still like in a private beta. And he and Chris Bach, the co-founder, they came up and were like, oh, you know, after my talk, because it was all about like,
Starting point is 00:02:53 I mean, there was no Jamstack. He invented the word years later. But this was all about like static site generators and Jekyll and the popular ones back then were like Jekyll, Middleman, and Hugo were really big and popular. And I was already out there talking about it. I just kind of became fascinated in a way that like, okay, it started with a project at work, as often these things do,
Starting point is 00:03:21 where they wanted me to build a site and they wanted me to use WordPress. And I'm like, I don't want to use WordPress for various reasons. It's a good tool, but back then, I mean, database connection errors were frequent. And if you got a sudden burst of traffic, suddenly your site's going down and things like that. And so I had become fascinated with Jekyll. sudden burst of traffic, suddenly your site's going down and things like that. And so I had become fascinated with Jekyll. And I was like, can't we just do this in Jekyll?
Starting point is 00:03:52 I mean, it's just content. There's nothing interactive here. And they said no. And thus started my endless, I was like, no, I'm going to prove that this is something like worth doing and I started writing about it and I started speaking about it and that's kind of like from there on it I mean I've kind of always had a fascination with that way of building websites because it felt like it took me back to when I started because I've been developer for like over 25 years and it took me a little
Starting point is 00:04:25 bit back to like the roots of like the simplicity of building for the web back when I started versus I mean. All the complexity now. Yeah. It's a little bit complex now, right? Yeah. Well, we've gone through these different eras when in like web development, right? Where 20 years ago it was pretty simple.
Starting point is 00:04:43 Like you had sort of like a html front end everything was like a server request to do something dynamic it was uh and it was slow but it was easy to understand you had you know clear separation between front end back end and then there was a period where we kind of like tried to stuff everything into the front end at one point and then we kind of had periods where we were doing we were we had some stuff that did stuff on the back end and front end and a lot of times it was like like a copy like your back end was essentially sending like html your front end and we've been slowly trying to like improve it over time while balancing the developer experience and user experience the whole
Starting point is 00:05:19 time but we kind of like keep adding complexity along the way yeah definitely has gotten more complex and you know here i thought server-side rendering was invented like two years ago what We kind of keep adding complexity along the way. Yeah, definitely has gotten more complex. Here I thought server-side rendering was invented like two years ago. What are you talking about? Yeah, that's how React invented that. Right, back then it was easy. Everything was a server request. Funny enough, we're kind of headed back in that direction, right?
Starting point is 00:05:42 I mean, a lot of the newer frameworks are kind of like, you know what? Maybe that wasn't so bad. It's not identical to the way we did it 20-some odd years ago, obviously. Like, we're now sending a lot more things in structured kind of data formats and things like that. And then using that to render. It's still now we're moving a lot more of it to the server.
Starting point is 00:06:02 I mean, if you've been in this industry a while, like, any kind of area you focus on, you notice it shifts back. It is interesting. Or as technology changes. I mean, like, you know, when I started, it was all on the server. But, you know, the server was slow. So, like, we started moving things to the client, which is even like if you think about it back then,
Starting point is 00:06:20 Flash and Flex, which I used to do, moved a lot of the business logic to the front end. But then we got rid of Flash and Flex, and we moved it all back to the back end again, and then we started moving it again to the front end and doing client-side rendering and all this kind of stuff. And now we're like, wait, that's not working out so well, so let's move it all to the back end again. It's just back and forth i think we go through these extremes right like fully server is probably not ideal because you don't want to have to refresh the entire page
Starting point is 00:06:53 every time someone like clicks on a like button or a thumbs up button or something like that so then you start sprinkling in some client-side code that can do something dynamic to hit the hit the back end and pull that data in but then then someone was like, well, that's good. What if we did everything in a single page app that like everything is essentially, you know, dynamically rendered? And then it's like, okay, well, we've gone too extreme to that. And then it's like a reverse back to the server side. And probably like the ideal is really some sort of balance in between, right?
Starting point is 00:07:24 Yeah, I definitely think so i like i'm a big fan of this islands architecture idea where it's like okay um i can kind of even do mix in some static like pre-rendering right where but the components on the page that need dynamic pieces can be hydrated like in like a either client side or server side rendered or things like that like so you kind of mix and match those different ways of building things but which sounds complex but then actually when you're trying to build it it really isn't that isn't that complex it works like frameworks like astro for instance really make it easy to do that yeah um and we're starting to think of our apps of our pages in terms of components anyway, so then you can sort of break it down and like, hey, some of these are static and not changing, and
Starting point is 00:08:09 some are more dynamic and need some more functionality. Exactly. If you think about it, if you look at a lot of web pages, the amount of dynamic pieces that are on there, when you start cataloging it, outside of like, say, hey, here's the admin for the tool, obviously there's a lot of dynamic things going on there, but you have tons of parts of the site that, okay, we just through Reacted this for what? For showing our documentation?
Starting point is 00:08:37 I mean, really, do we need that? Maybe there are pieces like, oh, hey, you can add a comment to the documentation, star, rate the documentation, just using docs as an example, right? But those pieces need some kind of client-side functionality. But the content, I mean, that's static, right? Like, why would I have to do any kind of client-side rendering? Or even, for that matter, maybe not even server-side rendering. Maybe I just push that piece up as static, or I server render it. But the point is, it's like, I don't have to necessarily do all the client-side rendering for those content pieces,
Starting point is 00:09:18 which is what we were doing for a little while. We were, like, throwing React at everything and saying, like, hey, you know, even, I, even if you think about Gatsby, that was the whole, I mean, you were static rendering, but then we were still hydrating and throwing React at a statically rendered page. It's like, hmm, you know. I don't know that that was the right solution to the problem. Obviously, we've kind of, you can see we've evolved in towards that like saying like, okay, maybe that wasn't the best solution for the problem. Yeah.
Starting point is 00:09:49 Well, with Jamstack, like I feel like if you look at some of the history there, there's always been this like controversy around like, is it sort of just like a branding marketing play versus something that's like net new i mean what are your thoughts on that and what was it that jamstack did bring new or maybe it didn't bring anything necessarily like a new opinion on how this should be done so i mean none of the stuff was new it just was a the terminology was new uh you know and i talk about this i'm going to talk about this this afternoon which is basically like i mean the term was a bit of branding because, I mean, static sounds old. Static sounds like, well, how am I going to solve, I can't, my page is not static. Like, there's things going on that are interactive. Like, that's not static. I can't do that static.
Starting point is 00:10:38 But at the time, when I was out there speaking, like when I met Matt in whatever, 2013 or whatever it was, right? You know, that's what we were calling it. Static site, you know, static sites and static site generation. And even though the end result wasn't necessarily static because we put some client-side JavaScript on there and, you know, maybe call some external APIs and things like that to get more data that is actually loaded at runtime or whatever. But we'd still call it a static page. I think Matt and Chris, they obviously were trying to build a business off of this and
Starting point is 00:11:22 it's hard to sell companies on static sites, right? And so I think that's where the term came around. It was like, can we reframe this stuff we're already doing, but in a way that doesn't emphasize, that doesn't sound old-fashioned. It gives it like a new way of thinking about it. So yes, it was a marketing term, but also, I mean, I think it was effective. And described some real shift in some sense. Also, we wouldn't probably be talking about it if it was called like static sites, you know, like basically like 12, 13 years later. Now, speaking of, you know, Matt and Chris and
Starting point is 00:11:59 Netlify, they recently, like last year, like stopped, killed off the the community for jamstack so i guess like what does that mean for the future of jamstack is is it is that a sign essentially that we're moving on from that to something new um you know i i kind of got myself in a little trouble because when they did kill that discord community i wrote a post that kind of everybody took as me saying jamstack was dead and considering I've been writing about it and like talking about it for so long, it suddenly became like, you know, okay, if he says it's dead, it must be dead.
Starting point is 00:12:33 And I'm like, no, I didn't say it was dead. I mean, like the thing is, it had become a fuzzy term. Yeah. It had become kind of, you know, vague in terms of what it represented. It was now server-side rendering and edge rendering and serverless. have become kind of vague in terms of what it represented. It was now server-side rendering and edge rendering and serverless. I mean, it was essentially an umbrella term covering a lot of different things.
Starting point is 00:12:56 Which just tends to happen with terms like serverless. We're seeing the same thing where everything is being called serverless. Exactly. I talk about that a little bit as well. As technology is mature, they tend to kind of, things kind of grab onto it, and the term expands because we start drilling into something, and it becomes a bit more than it was when we originally envisioned it.
Starting point is 00:13:19 And it gets more complicated, and the term gets fuzzier, but it doesn't render it meaningless. I mean, you still know what serverless more or less means I mean I have a general idea of what that means and I know what Jamstack means and people are still building using kind of a con you know conceptually Jamstack even though we've broadened the term maybe a little bit I understand some of the kind of core principles of it but the terms kind of core principles of it, but the terms kind of fall out of favor. I mean without the community, even at the time I was
Starting point is 00:13:49 calling it, I was saying, hey it's more of a community than it is an actual stack because it was never really a stack. I mean JavaScript, APIs, and markup and like yeah your PHP uses JavaScript, APIs, and markup right? So like it's not really a stack, it was you know more of, right? So it's not really a stack. It was more of a methodology, and then it became more of like, okay, well, it's an umbrella for all of these things, and we can kind of say,
Starting point is 00:14:13 oh, if I go to a Jamstack conference or I'm reading a Jamstack book, I kind of know it's going to cover all these things in this umbrella, right? And if those things kind of suit me, then, hey, that's the right place for me to be. That's my community, right? But then they killed the community, and it was like the term has kind of lost some of its favor since then, even though we're still doing things the similar kind of ways.
Starting point is 00:14:44 Yeah, I think some of the confusion is because they actually called it a stack yeah so then you immediately associate it with like mean stack burn stack lamp stack like all these types of things which are actually like a collection of technologies that you're putting together to solve or like build build web applications whereas jamstack like you said is essentially a methodology yeah yeah I mean even when they redefined it I think it was like 2022 they redefined it officially and made it broader and fuzzier and a lot of people complained it just kind of matched where Netlify was going are you sure people on the internet complain I don't know I haven't posted on Twitter in
Starting point is 00:15:24 forever now so like I don't even. I haven't posted on Twitter in forever now, so I'm not seeing the complaints anymore. Now with Astro and some of these other tools that are out there, we're moving towards these composable front-ends. Can you talk
Starting point is 00:15:39 a little bit about what is the shift that composable is bringing, or what problem is that solving? I think the thing to understand about composable versus jamstack is jamstack is very focused on how you build your actual website and it's about it's about building web applications right so like so you know you're talking about like the you know the tools you'd use like an astro or an xjs or whatever you're talking about like okay you'd use, like an Astro or an XJS or whatever. You're talking about, okay, we're going to use serverless and all those pieces. And composable is really about the back end piece.
Starting point is 00:16:12 It's not concerned, actually it doesn't even, composable doesn't necessarily just apply to a web application. It could be just how I architect, kind of combining all of the back end pieces. Like, oh, okay, commerce is like, e-commerce apps are usually a common example because how, you know, you have your payment APIs and your, you know, your product database and your inventory and all these other pieces like that you're trying to bring in all these different pieces and the way we'd have to have built that is you'd build like a back end for your front end, the kind of Bff pattern where it's like okay now i'm combining
Starting point is 00:16:49 all these different apis and doing all this complex logic like where it's like okay get the customer things from here and then go out to the inventory or the order system and see what orders they have and then you know so like you're weaving all these apis together and the composable architecture kind of says like okay we're going to kind of create some consolidated way of communicating with all these apis where we don't have to necessarily um you know kind of do that by hand each time right so so like if you look at some of the platforms like even netlify's as an example they kind of bring all of these APIs together into a single consolidated
Starting point is 00:17:27 way to interact with them, and then you build reusable components that the components are more back-end than they are focused on front-end, where I can more easily reuse pieces, microservices, and things like that to communicate with all that back-end.
Starting point is 00:17:43 Are you saying reuse even across companies? Like there would be component frameworks and stuff for the front end? Or more just within your company, I can reuse this component in different areas? Yeah, I think it's more within the company. This is not like reusable UI components. I think there is a composable UI and whatever his company makes. But this is more really about how you access the data pieces. So how you combine all those different ways that you're getting data into something that is reusable across different pieces of your mobile app and your you know your um you know your web app or whatever
Starting point is 00:18:27 other pieces you might have to build that are all kind of using leveraging this data right um but i can now more easily access it and this as opposed to like kind of constantly reinventing the wheel and trying to weave all these pieces together um yeah so like what was the sort of motivator for moving in that direction? Was this something that... and who initiated sort of this approach? Is that something that also came out of Netlify or is it... No, I think Netlify jumped onto it. They've helped kind of broaden the term in terms of like, you know, within the web development community specifically. I mean, if you look, there's something called the Mock Alliance,
Starting point is 00:19:11 which has been around for a while. And the Mock Alliance, one of the, like, it's more of like, it's a little more prescriptive in terms of like how you, you know, the mock concept of building web apps, but composability was always a core tenet of that, like using a composable kind of back-end architecture. And I think that's the C in mock, actually.
Starting point is 00:19:36 And that's been around for a while. They've been around for years. And Netlify was a member of that, but they're not the only ones. I mean, there are other companies, even I worked for one for a little while, that were trying to work on ways to use GraphQL to kind of be that front-end layer, the glue that brings all these APIs together.
Starting point is 00:20:02 And there's lots of solutions that have been around trying to do that for a while. So it's been there. It's just, I think now suddenly like as more companies and bigger companies and well-known companies like Netlify kind of jump onto that, you're getting more marketing and buzz around it. And so people are becoming more familiar with the concept. Yeah. What are you thinking about the front end ecosystem right now? Like it seemed like for a while there was a little bit of a lull where it was mostly React and
Starting point is 00:20:28 Vue and now we've got the React meta frameworks and things like that. We've got Astro, which you mentioned, and Solid and now even like HTMX and stuff like that. How are you feeling about front end development as it is right now? I complain a lot about it. Yeah. But I will say, like, okay, I'll out myself that I was never a React fan. I was always a reluctant React user. I kind of got dragged along because, well, you really couldn't avoid it, honestly. And so I built a lot of things with Next in particular.
Starting point is 00:21:02 But, like, I didn't, I found that it was just kind of a unintuitive way for me like I didn't like building apps that way. That's how I felt about Angular was I had a hard time I mean I could do it but like I don't know like the framework didn't align
Starting point is 00:21:20 I think with that well and it didn't feel natural to me whereas actually React felt for whatever reason, more natural than something like Angular. Are you a front-end developer naturally? Is that sort of where you would categorize yourself? Yeah. I mean, I've been doing
Starting point is 00:21:35 front-end stuff for focused almost exclusively for the past decade. Front-end being might include serverless stuff, that kind of full stack. I'm not a huge fan
Starting point is 00:21:49 of that term either, but, you know. Was anybody truly full stack at this point? Yeah, I'm kidding with all the stuff there is. But I would say same thing as you.
Starting point is 00:21:58 React seems more understandable to me for front end stuff, but I consider myself as more of a back end developer that can fake a little bit of front end. I feel like React is easier
Starting point is 00:22:08 for those folks, but the true front end people that actually understand how a browser works, how HTML and CSS work, I feel like have more frustration with. Yeah, you know, and I kept I think it was I don't know that there was a particular framework that I loved
Starting point is 00:22:24 of the single page application type framework. I've come to really like Astro because I can, I know enough React now I can throw in React components and like, hey, that's easy. And I feel like it gives you a really great way to kind of, I think one of the difficulties has been that people who built their whole ecosystem on React and Next.js in particular, making a transition to something else is really difficult. Because are you telling me I've got to toss all this away and I can't reuse any of that?
Starting point is 00:22:58 At least Astro gives you a way to, okay, I can piecemeal my way to like stop using, you know, Next as like the solution for every single piece of the app. I can still use React components and bring some of the ones I've already built over and maybe, you know, transition my app to like something that has, that uses a lot less JavaScript that, you know, is going to be more performant and things like that. So I'm like actually really hopeful, not just of Astro, but there's tools like Enhance is another one that's trying to do that. I feel like there's a bunch of different tools that are out there that are kind of pushing things forward in a direction that I like
Starting point is 00:23:40 and I think is going to help. So I'm hopeful. It's not like there's fewer frameworks, but I also feel like we have been narrowing down. I mean, you can use whatever you want, but I think if you look at what people are talking about, what they're using, it's either like Svelte, SvelteKit has kind of gained
Starting point is 00:24:05 some prominence and then and then still next js is like you know massive yeah and then but then you see like kind of a lot of people moving towards like i think astro has really garnered the the kind of most attention because just because they seem to be doing in a way that that i i think it's because it's doing in a way that allows people to kind of make that transition without kind of giving up on everything they knew before yeah not starting over yeah so you think there's some consolidation happening or like i think stabilization so i think like i'm curious to your opinion on this like there's been so many you know there's lots of jokes of course, about like how, you know, how many JavaScript frameworks there are.
Starting point is 00:24:50 And there's a new one all the time, but like, are, you know, is it that people are like perpetually unhappy if they're like, you know, work on web applications or front end engineer, or does that speak to maybe more of like a fundamental flaw with how like the web works like is there what from like if we could go back and basically re-architect or redesign HTTP and the sort of underlying protocols of the web like would we have gone in a different direction knowing what we know now because when that stuff was done like you know you know 30 plus years ago like I don't think people like had the vision of where we are now, where you're
Starting point is 00:25:27 running essentially full scale. You can essentially run Figma's Photoshop and beyond running on a web browser. Yeah, but that's the amazing thing to me about the web. It's like, hey, we built this thing 30 some odd years ago, maybe no more, right? Now 50, I don't know. Yeah, I don't know't know. Yeah, yeah. So like, you know, yeah. And here, you know, if you think about it, right,
Starting point is 00:25:54 like you're running that full application, which we would have had to build like a, you know, a desktop application back in the day, right? And now you're running that in the web and actually it's doing things that those desktop applications couldn't even do back then, right? Like it's pretty impressive all the things it can do.
Starting point is 00:26:11 It feels very interactive. It feels like an application. And yet the same web still supports everything you built back in like the 2000s, right? That like those pages are still running and they don't break. And so like, you know, that to me is the beauty of it. Hey, it's flexible enough.
Starting point is 00:26:30 It's going to support that stuff. And maybe we wouldn't have built it that way if we did it today. But at the same time then, if we were to redo it now, I mean trying to redo it and maintain that compatibility with everything we've done before, to me that's a key part of the web is that we have maintained that history. This stuff still works. Yeah, I mean, I think that's the unique thing about the web versus pure desktop
Starting point is 00:26:56 or maybe even pure basically stuff that's running at the operating system level. You'd have built a website in the 90s that still should be able to run and render today. Right, as long as it doesn't have Flash, right? Well, there was even somebody trying to, they were building some things to allow some of those old Flash games to still work. Yeah, I invested too much,
Starting point is 00:27:21 there was a period of time in my early career where I invested too much time in Flash. It was an action script. Oh, yeah, that's how I got my job at Adobe. too much there was a period of time in my early career where I invested too much time in Flash and ActionScript oh yeah that's how I got my job at Adobe I was I mean my first
Starting point is 00:27:30 kind of DevRel job was I was Flash and Flex community person at Adobe basically
Starting point is 00:27:37 so yeah I think I invested more yeah definitely I had a I had a whole career built around it. And then one day Adobe says to me,
Starting point is 00:27:48 they're like, okay, as of tomorrow, you're basically all focused on front-end stuff, not doing any Flash. You're going to do JavaScript and CSS and whatever. I'd done before, but it had been a while i had really gone all in on those tools yeah yeah that's wow yeah yeah you mentioned behance it made me think of uh just web components where do you think web components are and like are they ever going to take off like where are we at with those i mean i feel like they are right they are kind of like
Starting point is 00:28:20 we're finally reaching that point where like more frameworks are just kind of putting that as a core tenant. I think from a client-side standpoint, I think web components are here. They're part of things you're probably using already in your stack. But I think from the one that's enhanced is doing something slightly different, which I think is a little bit more cutting edge. And there are a handful of frameworks that are trying to do server rendered web components, which is where it gets a little more complicated. And I think those are still maybe not, that's not quite there yet from like a, hey, widespread
Starting point is 00:28:58 adoption thing, but I think frameworks like that are kind of pushing that. It was even in the ThoughtWorks radar or whatever, that that was one of the ones emerging things to look at was SSR on the server, sorry, web components on the server. And so I think it is gonna be there. But that, to me, already assumes, like we've accepted it from a front-end standpoint. It's already there.
Starting point is 00:29:29 It's there. And I think largely you're seeing it kind of become a part of more tooling that just says, by default, we're using web components. Like Eleventy is, for instance, bought in on the web components for front-end stuff, like big time. What's the advantage of running
Starting point is 00:29:46 or having the web component server-side? You know, I haven't used it much, so I'm not exactly sure I will articulate this well, but essentially, I know Enhance's idea is that you're using your full-stack web standards standards and you don't have to rely so much on JavaScript. They use the web components to basically allow you to render pieces of that island's architecture kind of thing. But instead of relying on a React component, I'm actually server-side rendering a web component. So I can do even less reliance on client-side JavaScript.
Starting point is 00:30:25 So I think Enhance is all like server-side rendered, but it's all using web components to kind of componentize that, you know, your application, but then you render just the component that fits in to that spot of your application. Yeah, yeah. And I think I was wondering the same thing that you're asking, and Brian LaRue, who's like one of the Enhance guys, he was saying, I think you have these enterprise companies
Starting point is 00:30:47 that have all these different apps, maybe written in different languages, that are returning markup and stuff like that, and that they can now render those web components and have some sort of compatibility across that, I think is helpful to a lot of them. I see. I guess in a bigger organization, then you have teams
Starting point is 00:31:05 that are working on, they can make different language choices, but still come together at essentially the composable level. How much of these changes, whether it's the shift
Starting point is 00:31:17 to Jamstack or even some of the stuff that we're talking about in terms of frameworks are motivated by improved user experience or improved developer experience. I'd say if you listen to people like Alex Russell, for instance,
Starting point is 00:31:33 who I think has made a lot of good points about this, we were focused for years on improving developer experience. It was like we were building frameworks that made the developer experience better. And I mean, there's a value in that. I mean, if we can improve developer experience, in theory, we could get more done. Like, you know, developers can build better things, whatever. I mean, there's value to agree with him in many respects, was we sacrifice the user experience for that developer experience.
Starting point is 00:32:12 And I think that's maybe what we're seeing. That shift that I feel like is happening is shifting back towards like, okay, well, we know we're passing too much client-side JavaScript. We know our bundle sizes are ridiculous. We know some of these applications on mobile that are using some of these frameworks end up performing pretty badly, especially if you don't have a high-speed connection on your device.
Starting point is 00:32:42 So we've gotten used to seeing loading spinners all the time to load, like, simple stuff, right? So I think we're now kind of moving towards some of these frameworks are pushing us towards, like, okay, we need to think about that and rethink that, even to the point that I think, you know, you're seeing with React server components is React has kind of responded in the same way.
Starting point is 00:33:04 It's like, well, we know that this has not been the greatest experience for end users, so we're going to start to kind of move things where we can send less JavaScript and do more server-side rendering and things like that to improve the performance of the apps on the client. Are you using much React server components? I am not at the moment. That's how I am too. I'm like, let that stabilize a little bit first, right?
Starting point is 00:33:29 Yeah, I mean, I think it's... I feel like, for instance, Next.js has kind of said, like, if you're going to use the newest version, you are basically bought in on React Server Components. I mean, you cannot use them, but we're really pushing you in that direction. Which, I mean, to be fair, I think it's a better direction for it overall. So I think that's a good thing, but I haven't. There's going to be some churn in the short run, though.
Starting point is 00:33:56 Just like as we figure it out, we have to relearn all these different patterns and things like that. Right. What's the frustration level where it's gone too extreme to the server side and then it goes back to the client side? Yeah. We all change our minds. It's like, you know, I feel like it's like the, you know, when the FDA or whatever gives
Starting point is 00:34:16 you like the, you know, nutritional, this is bad for you. No, that's good for you. Coffee is really bad for you. No coffee is actually good for you. No coffee is bad for you. Like the nutrition pyramid for you. No, coffee is actually good for you. No, coffee is bad for you. The nutrition pyramid from when I was a kid is now rotated and looked around. Yeah, well, you know, it's not that different, right? You look back at stuff you did a while back and you're like, yeah, no, I would have built that.
Starting point is 00:34:39 I don't even know why I built that that way. I look back at stuff I built six months ago that way and I'm like, why did I do that? I don't get it. I would not do that. Every once in a while I find something that I wrote code-wise or even write content-wise, I look back and I'm like, hey that was not bad. That was pretty good. I was a good job, Pat, Sean. But I think a lot of times you're like, what was I thinking? You know, sometimes I had somebody come to me, like, a couple years ago, and I built their site for them, and, like, I was living in Wisconsin,
Starting point is 00:35:13 so I was, like, this would have been, like, almost 18 years ago, and they're, like, I'm, like, wait, you're still using that site? And they're, like, yeah, yeah, it still works. So, like, I mean, I think, think sometimes, when I was a young developer, I was like, I've got to do things the right way. There's a right way and a wrong way to do it, and it's better just to like, you might as well not do it at all
Starting point is 00:35:36 if you're not going to do it the right way. And then as you're in this career for a while, you start to appreciate the value of just getting something done and something that works. And like, ultimately it's like, you know, it was like 18 years later and that thing was still working for them.
Starting point is 00:35:53 It's like, okay, well, I did something right. I would have never built it like that today, but it did something right. Yeah, I think that's like a pattern. I also went through that phase when young in my career. And I think it's a natural thing when you're younger. And maybe part of it is that you're not at a point in your career or within the organization where you're at.
Starting point is 00:36:15 You can see sort of the full picture of everything. So you're not thinking about the balance between, hey, we have a customer that is signing a big contract that's motivating the timeline on this. You're sort of very hyper-focused on this one thing where, okay, we need to design it this way, and you're not necessarily at the level where you understand all the business parts of it or the idea that sometimes it's okay to take on tech debt in order to get something going
Starting point is 00:36:42 because you don't even know whether it's going to be there six months from now or not. Right. Yeah, I mean, you know, I have things that, like, I run this site, cfe.dev. I don't know if you may have heard of it, but where I've been doing virtual events for, like, seven years now, funny enough.
Starting point is 00:37:01 And it's, like, an old Hugo site. But I keep being like, oh, I need to redo this. I need to redo this. But for seven years, that thing still, I mean, it's still working great. And it does everything I need it to do. So yeah, I want to rewrite it, but also, I probably don't need to rewrite it. And I think sometimes, as developers, we just want to move on. We're like, I want to do the next thing. I want to do something.
Starting point is 00:37:29 And it's like, there is some value in just building something that works for a long time and just saying, you know what? It works. Don't mess with it, right? Yeah, a lot of times from a user perspective, they don't care what the stack is. I mean mean as long
Starting point is 00:37:45 as they are able to accomplish the thing that they want to accomplish like they're not thinking about like if they are thinking about like is this client-side render server-side render like what framework are they using like like that your your product might not be actually working that well if that is their thought process essentially yeah in terms of like composable uh i understand that it's it's sort of more along the lines of jam stack of being like a methodology or like a a way of thinking about building web applications but are there like trends from in terms of the tool stack that people are typically using there or you know strong opinions about it should be this collection of tools or what the stack looks like.
Starting point is 00:38:27 So the mock piece has a little more prescriptive, and I'm blanking on some of the details of how they tell you to structure your application. But composable in general, no, it's not necessarily. It's kind of like JAMstack. It's not particularly prescriptive about how you build things. I mean, most, as I said earlier, most of the time, like that kind of API layer is something built in GraphQL.
Starting point is 00:38:56 So, you know, if you look at some of the tools that are out there to help you do that, they tend to use GraphQL, which, I mean, honestly makes sense because there's no other way to easily weave together APIs that are kind of disparate and have different kind of interfaces and whatever. So like REST really doesn't scale for combining APIs very easily whereas like GraphQL kind of makes it simpler, especially with some of these platforms that's just like drag and drop almost. It's like, okay, connect this API. Netlify has, for instance, a bunch of pre-built ones or common ones.
Starting point is 00:39:32 You can just kind of like, boop, boop, boop, I need these APIs and put your details in there. And it's like, okay, now I'm connected to Storyblock, who's here at the conference. And that's already hooked up. But still allow you to, say, connect your internal REST APIs. They might be internal data pieces that you need to somehow integrate with the hell of that. So GraphQL really does make it easy to do that.
Starting point is 00:40:03 And that's why the company I was at, we were trying to do that too, figure out a way to easily allow you to just drop in those pieces and combine. At this point, most companies have... If you're building a complex site... Composable, by the way, is more like... It's not like, hey, you and I are going to go build a site for fun. We're like, hey, this should be composable because we're not going to encounter that problem. A few APIs is a big difference between a bunch of different APIs.
Starting point is 00:40:35 When I would go talk to these companies, for instance, they're not just talking about external third-party APIs. Even internally, right? They've got a big company. It's like, hey, this team is building APIs and this other team is building APIs. And guess what? Those APIs don't know how to talk to each other either. So how can we even connect all these different pieces, right? Because even their internal APIs, they were like, oh, we could just add a layer on top
Starting point is 00:41:01 of that and then have one way to connect to all our internal APIs. That is even amazing. Never mind the third-party stuff. They were having this problem internally. But it's more of a big company problem. It's not like, hey, my hobby project, I'm going to go build something composable. I think that even if you look at the companies doing this, like, who are kind of turning in that direction, some of the criticism of Netlify as an example was that, oh, this is, now they're going all enterprise-y.
Starting point is 00:41:31 And it's like, well, because that is more of an enterprise-level problem as opposed to, like, a developer-level problem at a, you know, small kind of hobby project. Yeah, yeah. Well, I think that's a good point. Like though, that it will be a lot of times like engineers can like fall in love with whatever some of the new hotnesses and we, we end up sort of like over engineering certain projects. You see that all the time. I think in like the, in the data world, like the modern data stack would get so in love with these like complex ETL data pipelines and, and like, you know, big warehousing solutions. And sometimes a spreadsheet and a Python script is good enough
Starting point is 00:42:08 and you don't need all these other bells and whistles and stuff like that. Yeah, for sure. In terms of GraphQL versus REST, is that something that you're seeing as a trend, that picking up more momentum even outside of Composable? No. I just feel like most companies don't adopt it unless there's a specific need. That was honestly the big trouble we had when I was at that company
Starting point is 00:42:37 was convincing anyone that they needed to move to GraphQL. There's a lot of complexities around GraphQL that I think it solves a particular problem. And this is one of those problems it solves, but as a general rule, I haven't felt like developers have kind of said, oh, I wanna move off REST. I mean, there's a simplicity around REST that's just like really, you know,
Starting point is 00:43:04 I don't need to think that much about it that when I get into GraphQL, like writing queries and all this stuff, it just, it feels more tedious. I think it's similar with like gRPC as well. It's like, you know, Google developed that because part of it's like, you know, the dealing with scale problems.
Starting point is 00:43:23 So they're looking for any sort of, know micro optimization that they can do but most people are you know they don't have that problem that google necessarily has and there's a lot of value you get from doing sort of the simplest thing that like developers are comfortable with if especially if you're doing an api based product yeah and i mean i don, I don't think, like, I think GraphQL can be a great solution for particular problems. And if that's the end result, that's fine. We don't need to move everything to GraphQL. I think it's just, like I said, the problem, for instance, of underfetching and overfetching
Starting point is 00:44:00 are not necessarily the problems that you're going to face on every application. Like, it's not a big deal in many cases like that I over fetched a bit, right? But when you're dealing with like you know, reams of data, like large amounts of data and things and you're in these kind of scenarios, like then yeah, it becomes maybe that's a problem and I need to deal with it by using something like
Starting point is 00:44:24 GraphQL to like be more specific about what I need to deal with it by using something like GraphQL to be more specific about what I need back from that API. Whereas in many cases, REST is going to work just fine. At the bigger companies, are you seeing a lot of momentum with GraphQL? Or is that slowed as well? Like if I do have, like you're saying, a strong set of APIs across all these different teams. I mean, I think slowly. Big companies are, you know, and it's hard.
Starting point is 00:44:47 Like, it's not necessarily the easiest thing to adopt. But, I mean, I think there's been a push for this. I know companies like Apollo, for instance, are trying to get companies to buy into that solution. So, and there is a need for it. I mean, when we went out to these companies, they knew there is a need for it i mean when we went out to these companies they they knew there was a need for it it was just you know it's it's hard to get companies especially right now to invest in something that ultimately doesn't change like the output right like we've
Starting point is 00:45:21 changed something behind the scenes and like there are tangible long-term benefits to this, but short-term, it was a very expensive project that didn't change anything in our application itself. Yeah, it's hard to show what is the increased revenue impact of switching from REST to GraphQL. That's just a difficult argument to make. So unless you have a really, like you were saying, specific use case that you can't do today or is not a reasonable thing to do under the current constraints of REST,
Starting point is 00:45:51 then it's hard to make that technical argument. And you've already bought, I mean, it's not like you, it's easy to just switch all your APIs. You already bought in, you have REST APIs all over your company, right? So you can just, it's like, well, now if I start transitioning, unless I can find a way to easily make a big project,
Starting point is 00:46:11 consolidate everything, I'm now using REST and GraphQL, which is not actually, it's just not helping me in any way. So, yeah. Well, as we start to come up on time and wrap up, we've got a few quickfire questions for you that we ask everybody. So if you could master one skill that you don't have right now, what would that be? You know, it would not be specifically around any particular technology. It would be, I feel like I've been in DevRel and done this stuff for a long time,
Starting point is 00:46:45 and I feel like I've never quite gotten how to build good communities. I built communities, but I feel like a lot of it's just I haven't gotten to that point where I can really get them kind of organically interacting and things. It's just so hard and so much work. It is tricky. Yeah. Yeah, I think not to go on i have one we could do a whole show on this i think but like yeah i think there's there's um
Starting point is 00:47:13 it's hard to do that as it's it's not a recipe i don't think like you can't just copy what someone else did and then apply it to whatever your technology is there's there's i think a lot of it's like an art and science sort of combination there. What wastes the most time of your day? Oh, me being me. I don't know. Like, I just, you know, I've always said, like, you know, people live stream their coding and I'm like, nobody wants to see me code because I am like, I'm all over the place.
Starting point is 00:47:46 Because when I hit a problem, like something difficult, I need time to process it. So like I just swap and do something else. Yeah. In the back of my mind, it's going. Yeah. It's like I'm not like, I'm not the kind of person that can sit there like two hours and just code. So I feel like I end up,
Starting point is 00:48:06 a lot of context switching wastes a lot of time in my day, but it's my own fault. Yeah, so watching a live stream of you coding would be mostly you going and reading a random article and how you're doing. Exactly. It's like the old joke about what they used to say about Richard Feynman, the physicist,
Starting point is 00:48:23 where it's like to watch him solve a problem like what was his strategy for solving problems and essentially the problem would be written on a chalkboard and then he would sit there like this for you know whatever 15 minutes in total silence and then he would come up and write the answer and it's like that that's his process it's like that doesn't make for a compelling live stream if you can invest in one company that's not the company you work for, who would it be? Oh, God, that is a good question. Okay, I'm thinking about this.
Starting point is 00:48:55 If I could invest in one company. You know, it wouldn't be, I would tell you what it's not. I mean, I think there's a lot of stuff, like, for an AI that I really believe in, but I also feel like nobody's figured it out yet, so I don't know who these companies would be. Yeah. You know, where I could easily place a bet there. You know, and there's lots of companies I love,
Starting point is 00:49:23 like, I love Astro, for instance. But I'm also like, when I'm thinking about investing, I'm like, hmm, I don't yet know what their business model is. So would I invest there just because I love them? So that's a roundabout way of saying, I don't know. This is why I leave investments. I have somebody who does my investment for me cool all right and then what tool or technology can you not live without what tool or two i mean it's right now i mean honestly it's vs code because i just like i i'm
Starting point is 00:49:59 in vs code all day long and and it does everything i want to want to be able to do. And now with like Copilot, it's like, I feel like it's just, you know, made my midday much easier. So, you know, it's got to be that. Everything else is like, I feel like it's easier for me to switch frameworks than it is for me to switch coding. Yeah, yeah, yeah. And what person influenced you the most in your career? frameworks than it is for me to switch coding. What person influenced you the most in your career? You know, I'm going to say, funny enough, and I can't even remember her name, but it had nothing to do, again, with learning to code.
Starting point is 00:50:42 Because I feel like coding is just a skill you can like that's like somebody can help guide you maybe but like I think ultimately I can just sit on the front of my computer and learn a lot of these things but like the people skills are hard yeah and that I remember I was working at this company and she said to me like that I always came with the why nots and never like really I didn't come with the solutions and and that stuck with me and I really feel like I've been able to change the way I approach things at work where it's like you know it's easy as a developer to like see all the technical problems when somebody presents you something. Instead of trying to...
Starting point is 00:51:28 And so you can start throwing up roadblocks and like, oh, no, we can't do that because of this. We can't do that because of that. Instead of trying to figure out how to get to an end point that... It's kind of like with with improv the like and yes mentality but we've all probably been in workplaces where we've worked with someone that's just like you know they're like the wet blanket or like in a meeting and it just like brings down the entire energy level and sometimes like an idea um that maybe is not a great idea
Starting point is 00:52:02 can you know can help inspire someone to lead the thing in a direction where it leads to a good idea. So if you're just putting up roadblockers, it's just like everybody's just kind of scared to essentially say anything. So I get that. Absolutely, yeah.
Starting point is 00:52:14 So I would tell you she was not a particularly great boss. And that was actually one of the worst companies I ever worked for. That was super helpful. But it was actually very helpful because everywhere from then on I think I started figuring out how to not be
Starting point is 00:52:32 the roadblock to be a part of the solution. Last question. Five years from now will we have more people writing code day to day or less? You know I'll be honest code day to day or less? You know, I'll be honest, it's probably gonna be less. I think, you know, like it or not,
Starting point is 00:52:55 companies are gonna be like, you know, we accept a level of problems with AI that as long as I don't have to hire people to do that work you know I'll accept that it's sometimes wrong and maybe it builds not the most scalable applications that we can't reuse the code because it's not it doesn't understand code reuse very well and all these things but you know what like it's good ultimately it's good enough and and it's a lot cheaper than a developer. So I'm a little bit, I'd say, I'm a little bit pessimistic about our outlook right now,
Starting point is 00:53:30 but I wish I could say otherwise, but yeah, that's my feeling. All right, well, on that dour note, Ryan, thanks so much for being here at this developer conference where there'll be less people in five years from now yeah hopefully not i hope that i i you know i've been wrong many times before i've so i'm you know i'm hoping i'm wrong about that but awesome well thanks thanks for spending time with us oh yeah thanks for having me

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.