Paige_Niedringhaus:
Hello everyone, welcome to another episode of React Roundup. I am your host today, Paige Niedringhaus, and this is going to be a special panelist episode. So I am joined by TJ Vantol
Tj_Vantoll:
Hey everybody.
Paige_Niedringhaus:
and Jack Harrington.
Jack_Herrington:
Hello, happy to be back.
Paige_Niedringhaus:
And Jack is going to be our special guest panelist
Jack_Herrington:
Hahaha
Paige_Niedringhaus:
today.
Tj_Vantoll:
Air quotes, guest, yeah.
Paige_Niedringhaus:
He is going to be educating TJ and I, and hopefully some of our listeners about island architecture, which is an architecture that I am not familiar with. So I'm looking forward to it.
Jack_Herrington:
Yeah, I think it's pretty cool. I guess we could do our usual why are you famous thing, but I'll just pass on that. So,
Tj_Vantoll:
Yeah.
Jack_Herrington:
okay. Yeah, I think the best thing to do, I've been thinking about how to introduce this, is to kind of go through a little bit of history about sort of web development and how we got here sort of thing. And I would say, you know, we started off with just pure sort of server side apps like PHP, you know, Perl. Java and JSP back in the day, right? And then
Tj_Vantoll:
Yep.
Jack_Herrington:
we're like, you know, cool. We're going to add some JavaScript onto this, make it a little more interactive, maybe add some form validation, that sort of stuff. So we added in like jQuery and started doing some form validation, maybe a little bit of REST API stuff. And then the REST thing exploded and we were like, cool. Now we can make the whole app like on the client, right? And but the problem was that we get this sort of blank. White page, you know, and you and then boom, you know, you download some JavaScript and then boom, you get the page after you do some record request and whatnot. And it just looked ugly. You know, so at that point, I think that was when I, I want to say like the state of the art was like handlebars backbone. If you remember that sort of stuff about like you
Tj_Vantoll:
Oh
Jack_Herrington:
can
Tj_Vantoll:
yeah.
Jack_Herrington:
make a decently Ember make a decently sized app. Right. And then we got into the world where we were like doing node, you know, for the server and we're like, Oh, well, node runs JavaScript and we get to have a framework that could work in both places. And that's how we got to react, where you could have a framework that was running the same thing, same code that was running on the client could also be run on the server. And you brought in this word isomorphic. So how cool does that sound? I'm doing isomorphic programming,
Tj_Vantoll:
Yeah
Paige_Niedringhaus:
Ha
Jack_Herrington:
right?
Paige_Niedringhaus:
ha ha ha.
Jack_Herrington:
And we got into this thing server-side rendering. So the idea is that you run exactly the same piece of code on the server. you maybe go off and get some API requests, get those, preload the data, render it on the server, and then put it out onto the client. And I think that's conceptually where most people think that that is actually how it works, but it's a little bit hairier and worse than that actually. So if you ever worked with Next, which is I think what people use, a lot of folks use for SSR or server-side rendering. If you look at how it works, so there's this get server-side props or whatever, and that's where you go and get your data. And let's say that you're going and getting like, let's just think about like a blog. You know, so you got blog, it's got some posts and it's got like comments, you know, so and you want and there's header and footer and all that. Right. And so. So you go off and get some information about the header and the footer. What are my links and stuff. You get the content of the article. You may get the most recent comments and you put those you shoot those all into the component for props. Right. And then the component does all the rendering and then you're off after the races. Right. But if you look at the. The page source, what you see is you see all the HTML at the top of the page. And that's great, right? So that's the first thing it renders on the client. That's why the pages look snappy. You don't have the white screen anymore. But then you get this massive data blob down below that, which is the article and the header links and the comments and everything like that. So you basically have all the data twice. You got all the data stuffed into the HTML rendered. And all the data is actually in this massive script blob at the end. And then over on the client, what happens is you see render all that HTML. And then you put the script blob somewhere in like a global variable. Right. And then you bring in the bundle for your app, and then you start rehydrating the app with all of that data that was saved in that, that window variable, and then hopefully you, your app run, you do your render cycle. on the client this time and you build a virtual DOM on the client and then hopefully it matches the DOM that's actually on the page and you do this diffing to make sure that it does and then you get some nasty warnings if it doesn't. And then finally you're live. Right. That is the point at which you can at your your customer can actually click a button after doing all that. And so what you've done is you've actually run your whole app twice. You run it once on the server and once on the client. And it's hellacious. Like we've sort of been living with this for the past, I don't know, what, seven, eight years. How really? How long have we done this sort of thing? And. It's just not a, it's not a brilliant idea. And so there are some folks that have been coming. I think there's some partial hydration stuff that's being now done over in like the react core team, things around that. I think people have been looking at this problem and saying, this is a bad. Deal.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
How do we solve this? Um, but now there's this new idea. So basically, if you think about it, like what's happening is that next is sort of. Naively thinking about your whole page as a one big dynamic page, right? Like the header. I mean, we know empirically like the header and the footer aren't going to change. There's not that much going on. Like the most that's going to happen there is you're going to click on it. It's going to drop down something or something. There's not really a lot of dynamic behavior going on there. Same sort of thing with the footer. Then the the the blog comments, the blog page, the blog itself is not going to change. Right. It's
Paige_Niedringhaus:
Right.
Jack_Herrington:
basically static. And the only thing that really might change, you might add a comment or something. So it's largely a static page, but
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
next in its naivete is saying, well, it's all dynamic, because we can't tell the difference. So the islands architecture thing is basically coming at it from the other completely opposite direction and saying that, OK, let's consider that all pages are roughly static, like the header is static, content of the content of the content. Log post is static. Comments are roughly static. Headers, footers, mostly static. But we're going to have these little islands. So there's a sea, the sea of static, right? And then within that sea, there's going to be these little islands of dynamic behavior, like the Login button or the comment down at the bottom, where you put in your comment. That's going to be dynamic. See, when you download, you may have a massive, massive, massive JavaScript that would build out the page itself on the server. But it's only the code for the islands that actually gets sent to the client. And these frameworks do a really cool thing, where they actually make it so that the island code runs on both the client and the server, but
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
the other page doesn't. And so you get this really nice, huge performance benefit. So you only do the hydration. You only do the JavaScript that actually goes to the client. for those little islands and the net effect is that you it like the paid like the size of the bundles is like tiny. It's like 12 K or something like that. And you can start doing cool things like only loading it if you actually like scroll it onto the page and things like that. So there's there's other cool benefits as well. But yeah, so that's kind of the basics of island architecture or that sort of overall idea.
Tj_Vantoll:
Gotcha. Okay, so that's a lot to take in.
Jack_Herrington:
Yes, yes. Sorry. I mean, you know, like there you go. There's your 10 inch bill.
Tj_Vantoll:
Well, it's interesting because I feel like when you described like the way Next works, I feel like that's the way a whole lot of deployed applications work today in production. I mean,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Yeah,
Tj_Vantoll:
Paige
Jack_Herrington:
yeah.
Tj_Vantoll:
and I help maintain an app that works, multiple apps that work pretty much exactly as you described.
Jack_Herrington:
Me too.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
And it's interesting too, because I feel like it's done that way partially because it's easy, right?
Jack_Herrington:
Yes.
Tj_Vantoll:
Like Next
Jack_Herrington:
Nah.
Tj_Vantoll:
makes it super easy. So even though... Yes, some extra work is happening. Some of that work is being done on the server and a lot of it is completely transparent to you, the developer.
Jack_Herrington:
Mm-hmm.
Tj_Vantoll:
Like you
Jack_Herrington:
Yeah.
Tj_Vantoll:
don't have to, to worry about it. And I also feel like, and you can, since I have no experience with this,
Paige_Niedringhaus:
Hehehe
Tj_Vantoll:
you can tell me if I'm wrong in this, but I also feel like this is like an optimization that you probably noticed the most, the more complex your website is, because
Jack_Herrington:
Yeah,
Tj_Vantoll:
I feel like
Jack_Herrington:
definitely.
Tj_Vantoll:
you're, you're simple, like blog example. Chances are, yes, you're doing some extra work, but it's not going to be anything you ever notice, right? Because Next and modern JavaScript and whatever can plow through that pretty quickly. But you get into a far more complicated site, which people are building incredibly complex apps with this architecture, then you are going to start to notice this sort of thing at some point. At least that would be my guess.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Yeah, I mean, I think so. I mean, I guess my thought about that would be, you know, at the very bare minimum, you're downloading like 500 and some K of JavaScript for just Hello World nowadays. You know, why? But
Tj_Vantoll:
Yeah.
Jack_Herrington:
I'm sorry, Paige, you want to
Paige_Niedringhaus:
Well,
Jack_Herrington:
chime in?
Paige_Niedringhaus:
it sounds almost like we're swinging back towards the sprinkling of JavaScript on the client
Jack_Herrington:
Yes.
Paige_Niedringhaus:
side.
Tj_Vantoll:
Hehehehe
Jack_Herrington:
Exactly.
Paige_Niedringhaus:
It's all powered
Jack_Herrington:
Exactly.
Paige_Niedringhaus:
by JavaScript under the hood, which is the difference between this and Pug or any of those other older
Jack_Herrington:
Right. PHP,
Paige_Niedringhaus:
styles of applications.
Jack_Herrington:
JSP, whatever. Yeah, exactly.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Yes. Yeah.
Paige_Niedringhaus:
But we're
Jack_Herrington:
Welcome.
Paige_Niedringhaus:
just sprinkling it where it needs to go again.
Jack_Herrington:
Yes. What is it? Time is a flat circle or something like that. You know, it's like
Paige_Niedringhaus:
Right?
Jack_Herrington:
it's the Ouroboros. We're basically back to an enhanced page, right?
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
Which
Paige_Niedringhaus:
because
Jack_Herrington:
is not
Paige_Niedringhaus:
I
Jack_Herrington:
necessarily
Paige_Niedringhaus:
mean,
Jack_Herrington:
a bad thing.
Paige_Niedringhaus:
no, I mean, the thing that was so difficult about really large client side applications, because I worked with AngularJS, which was probably one of the earliest ones, and it was awful to debug because all of our logic was client side. So you really could step through code or recreate. And it was so heavy.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
And the page would be... would slow down, it would break, we had these
Jack_Herrington:
..
Paige_Niedringhaus:
massive tables, they wouldn't scroll,
Jack_Herrington:
..
Paige_Niedringhaus:
you know, everything would just... and there was no SEO. So if you needed
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
to be able to find your website and you were depending on good content or whatever, you were completely out of luck if you were using something that was all client side rendered, which a lot of companies rely on is Google results, and if you don't render anything until the page gets loaded, Google doesn't know what to do with that. It's never going to find it.
Jack_Herrington:
It did now does, but that's you know,
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
yeah, Google's got a little bit better about that. But yeah, you're totally right. And then yeah, so that's why we have the SSR thing, but we also had the white page thing. And so
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
you can fix the SSR, you can fix the SEO thing, you can fix the SEO thing, but the white page still remains.
Paige_Niedringhaus:
So what kind of, we talked a little bit about Next.js, but are there particular frameworks that are really embracing this and are good for island architecture, if that's what you wanna do?
Jack_Herrington:
Mm-hmm. So I've added a link in the show notes to a really good article on patterns.dev for island architecture. And it kind of goes through pretty much what I was talking about. But I guess you're too well, is there's the one that I've been working with recently called fresh. And then there's another one. And then there's one called Astro, which is getting a lot of play as well. And Astro is kind of cool. Apparently, you can write the the islands in whatever different systems you want so you can have
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
pre act on the same page as react as opposed to be in a few. I'm not sure I would do that personally,
Paige_Niedringhaus:
Ha
Jack_Herrington:
but
Paige_Niedringhaus:
ha ha.
Jack_Herrington:
you know, it's a thing. And then there's fresh, which is basically just pre act, which is cool. I mean, if you got react skills, right? Preact is going to feel very, very, very, very familiar with to you. But it's on top of Dino, which people are like, for whatever reason.
Paige_Niedringhaus:
Hehehe
Jack_Herrington:
And I don't know why. I think, you know, it's actually kind of cool. Of course, I pronounce it deno, but that's just because I'm from Philly and under pronounce everything.
Tj_Vantoll:
Is Dino the official pronunciation?
Jack_Herrington:
I think it is.
Paige_Niedringhaus:
think
Jack_Herrington:
Yeah,
Paige_Niedringhaus:
so.
Jack_Herrington:
I got I got called out on this on one of my comments, my video. They're
Tj_Vantoll:
Yeah.
Jack_Herrington:
like, that's hate to be that guy, but you're pronouncing it wrong. Like, whatever. Apparently, the guy that made it doesn't care. But whatever.
Paige_Niedringhaus:
I think it's just, it's a little bit less known and tested
Jack_Herrington:
Mm-hmm.
Paige_Niedringhaus:
as opposed to something like Node which has been around for over a decade now. So that's probably, you know, people don't like to learn something new. Once they try it and they figure out how it works and why it's great, they'll be fine. But it's still relatively an early, an early comer to the server, server world.
Jack_Herrington:
Yeah, I would love to say that there is like remix or.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
What's the other one? Redwood JS that does this out of the box. Unfortunately,
Paige_Niedringhaus:
No.
Jack_Herrington:
I can't. Yeah, that's the same. I think it's the same thing. I tested Redwood last night and it was very heavy on the. It was still the big old bundle, even even with the static content. They've got some things pre-render, whatever, some optimizations, but I think I guess the close if you want to just kind of take your code as is probably Astro be this close like you know, because that can support straight up react. So
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
that's gonna be the easiest way to get if you want to stick with react if you don't like oh my gosh, react.
Paige_Niedringhaus:
I'm
Jack_Herrington:
I don't
Paige_Niedringhaus:
sorry.
Jack_Herrington:
want to do that.
Tj_Vantoll:
Was it fresh? Was fresh the one that was Dino? I'm saying it right, right? Dino based, yeah.
Jack_Herrington:
Yes, Dino.
Tj_Vantoll:
I'm just looking over the site right now, because I think my concern with anything new is just like the little things, like when I run into weird compiler issues, am I going to be able to Google it and find answers?
Jack_Herrington:
Right. Right, right, right.
Tj_Vantoll:
Am I going to host? Like have either of you messed with Dino before? Like is... Hosting like possible, can you host it on like
Jack_Herrington:
Oh yeah.
Tj_Vantoll:
node? Does it like use some of the same guts as node like under the hood for hosting or?
Jack_Herrington:
Oh, it actually is the same V8 core underneath the hood, which
Tj_Vantoll:
Okay.
Jack_Herrington:
is unlike Bun, which you could talk about Bun if you want to talk about Bun, but it's still V8. The big difference between Dino and Node, I guess, is that the way that you import stuff, the importing on Dino is with the... you basically import URLs. You create this import map that can make it easier and kind of syntactically the same, but... They really wanted to fix the package manager problem and also some security issues. I think the security issues, they aren't as impactful as the whole import things. If you're used to the whole NPM package thing, it feels like,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
whoa,
Paige_Niedringhaus:
Ha
Jack_Herrington:
this is weird. I ain't seen
Paige_Niedringhaus:
ha
Jack_Herrington:
this
Paige_Niedringhaus:
ha.
Tj_Vantoll:
Yeah.
Jack_Herrington:
before. Yeah, but when it comes to deployment though, oh my God, so you can deploy it normally. You can do the, I don't know, whatever, Dockerized, whatever, you probably can do Lambda. I'm sure you can do Lambdas. Oh boy, yeah, you can definitely do lambdas because they actually do lambdas. And there's a thing called Deno deploy, which is so ridiculously fast. It is crazy. Like you put up one of these, you link your GitHub repo that's got your Deno code in it or sorry, Deno code in it.
Paige_Niedringhaus:
Hehehehe
Jack_Herrington:
And you say, you know, go and you can like, I mean, it's like. Five seconds to get deployed.
Paige_Niedringhaus:
Wow.
Jack_Herrington:
It's crazy. So yeah, so like when you do a git commit and push it like five seconds later, you're live. It's it's ridiculous.
Paige_Niedringhaus:
So is that something that you could host on Netlify or do you really need like a digital ocean server or something that's more
Jack_Herrington:
I think.
Paige_Niedringhaus:
server friendly?
Jack_Herrington:
I think you know, so basically it's just like node, you know,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
just and it's got the same stability. It's it's been around long enough where I can think we can say it's it's stable. Kind of unlike Bonn actually currently. I mean, I love I think Buns really, really cool.
Paige_Niedringhaus:
I'm sorry.
Jack_Herrington:
I don't want to get in trouble with any of the bun fans, stands or whatever.
Paige_Niedringhaus:
Bun's very much in the hype cycle right now.
Jack_Herrington:
Oh my God, right?
Paige_Niedringhaus:
It's just on the upswing. The trough of disillusionment is coming soon.
Tj_Vantoll:
All right, so I feel like we should take one step back real quick, because I know we're talking
Jack_Herrington:
Yeah,
Tj_Vantoll:
about island
Jack_Herrington:
please
Tj_Vantoll:
architecture.
Jack_Herrington:
do. I've
Tj_Vantoll:
But
Jack_Herrington:
been waiting for the TJ step back. Okay, here
Tj_Vantoll:
however,
Jack_Herrington:
we go.
Tj_Vantoll:
I think it's cool that we discuss this though, because I think people also find this sort of stuff interesting. Because basically, we've moved beyond just the realms of island architecture, but we're talking about really alternatives to node at this point,
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
right? Because that's what
Jack_Herrington:
Hmm.
Tj_Vantoll:
Dino is. It was,
Jack_Herrington:
Sure.
Tj_Vantoll:
I believe it was created by the same... dude, right? Ryan
Jack_Herrington:
Yeah.
Tj_Vantoll:
Dahl that created
Paige_Niedringhaus:
Yep.
Tj_Vantoll:
Node, created Dino.
Jack_Herrington:
Mm-hmm.
Paige_Niedringhaus:
Yep.
Jack_Herrington:
He's
Tj_Vantoll:
And
Jack_Herrington:
trying to
Tj_Vantoll:
so,
Jack_Herrington:
fix his mistake, basically.
Tj_Vantoll:
yeah,
Paige_Niedringhaus:
I'm gonna
Tj_Vantoll:
so
Paige_Niedringhaus:
go.
Tj_Vantoll:
it's, I guess it's interesting in some sense to see that if you're building a framework now, like you really kind of have choices for your, even like your underlying tech. Like
Jack_Herrington:
Yeah.
Tj_Vantoll:
it used to be like Node was for years, like the same seven, eight years we've been talking about. If you're building a framework, you would just start by creating your package JSON,
Jack_Herrington:
Hehehehehehe
Tj_Vantoll:
start with your Node dependencies. Like that wasn't
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
even called into question, but I guess now like it's sort of interesting that we're starting to see some forking in terms of the underlying options, which I think is probably a good thing because Node
Jack_Herrington:
Yeah!
Tj_Vantoll:
has been very stagnant.
Paige_Niedringhaus:
It is.
Tj_Vantoll:
So.
Paige_Niedringhaus:
Yeah, it's going to do the same thing that NPM had to step up its game when yarn came into the picture and they did some fantastic improvements because
Jack_Herrington:
Exactly
Paige_Niedringhaus:
of it.
Jack_Herrington:
yeah, yeah, the competition is a good thing, but you know what's the common denominator here? The common denominator is JavaScript learn JavaScript,
Tj_Vantoll:
Yeah.
Jack_Herrington:
and you've got this skill that can take you anywhere from three different ways of putting stuff out on the server to React native or whatever you know it's it it's a oh, and I'm sure I mean probably goes on to you know IOT devices as well
Tj_Vantoll:
But okay, so then before we get back to island architecture, because we did mention
Jack_Herrington:
Yeah,
Tj_Vantoll:
Bonn.
Jack_Herrington:
yeah, yeah!
Tj_Vantoll:
So I feel like we, so we've got Node,
Jack_Herrington:
Bun!
Tj_Vantoll:
we've got Dino and now we have Bonn. So I feel
Jack_Herrington:
Now
Tj_Vantoll:
like
Jack_Herrington:
I have a bun.
Tj_Vantoll:
we should at least define and describe what that is since we went there, we should do it right.
Jack_Herrington:
Hahaha
Paige_Niedringhaus:
Yeah. So.
Jack_Herrington:
Well, OK, so Bun is a new JavaScript VM. So virtual machine can run your JavaScript. It can actually do a couple of things. It can do it. It does that. So it can run your JavaScript, but it can also do it. Also does its own version of NPM. It's a lot faster. The whole point of all this is that it's just faster. Very fast for certain types of things. And. I think it's got what is it? It's also got testing, kind of. It's in the early days and it's kind of trying to be like a Rome sort of thing. I'm sorry. Don't mean to bring in yet another technology.
Tj_Vantoll:
Yeah.
Jack_Herrington:
It's an all in one. It's trying to be all the things. It's trying to be like so that you have one tool kit for everything. Right. But do it fast. Right. And so, yeah, they kind of talk about how it's three times faster for next or something like that. I would say I've been able to kind of get up to like 2x faster. in my stuff.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
But it's it's unstable currently. It tends to fall over quite a bit. So I
Paige_Niedringhaus:
Ha
Jack_Herrington:
wouldn't
Paige_Niedringhaus:
ha
Jack_Herrington:
put
Paige_Niedringhaus:
ha
Jack_Herrington:
in
Paige_Niedringhaus:
ha.
Tj_Vantoll:
Yeah,
Jack_Herrington:
prod.
Tj_Vantoll:
no, but I think it's interesting because it like the couple things that struck me is first of all, it's basically one dude that like
Jack_Herrington:
Yes.
Tj_Vantoll:
wrote
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
Yep.
Jack_Herrington:
Yeah. Yeah.
Tj_Vantoll:
almost all of
Jack_Herrington:
That's
Tj_Vantoll:
it
Jack_Herrington:
okay. I have
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
one dude behind
Tj_Vantoll:
and
Jack_Herrington:
me, I guess.
Tj_Vantoll:
Oh,
Paige_Niedringhaus:
Sure.
Tj_Vantoll:
yeah.
Jack_Herrington:
And
Tj_Vantoll:
Yeah.
Jack_Herrington:
a
Tj_Vantoll:
Yeah
Jack_Herrington:
whole massive community.
Tj_Vantoll:
Yeah, well
Paige_Niedringhaus:
I'm gonna
Tj_Vantoll:
everything's
Paige_Niedringhaus:
go to bed.
Tj_Vantoll:
we usually starts with something like this, but it's like
Jack_Herrington:
Now.
Tj_Vantoll:
just a ton of work for just one person And also I believe they did not they purposefully did not use V8 and they went with And that a whole lot of it was just hand rolled and a lot of the speed improvements were just from one person's like personal mission to do this,
Paige_Niedringhaus:
Hehehehe
Tj_Vantoll:
which is kind of fascinating to me.
Paige_Niedringhaus:
Yeah, well it's interesting because when you look at the BUN website, not only do they tout the speed, but they also really tout the batteries included kind of moniker. So when you install Node, and I'm not sure about Dino because I really haven't worked with it, but with Node there is absolutely nothing that comes with it. You have to install, probably you're going to install Express or something on top of it that has all the stuff that you really want to do with Node, like HTTP fetching, and then you have to add OAuth and body parsing and this that and the other. But Bunn says, you know, we have SQLite built in, so you can do server-side saves to databases or to a local file that's like a database. And they have, you know, auth. Do they have auth? I'm not sure about
Jack_Herrington:
No,
Paige_Niedringhaus:
that.
Jack_Herrington:
I think no.
Paige_Niedringhaus:
But there's a whole lot of stuff that just comes baked in already. They've made those decisions for you. And you just go with it. If you like the way that Bunn does it, great. If you don't, sorry, you're probably going to have to deal with it at least for a while. out another way around. But you know a lot of people, myself included, I do I appreciate when frameworks take some of those... tooling and like which library do I use or how do I get this initially set up take it out of my hands and just Show me they're like here. This is how you do it, you know, go forth and build your thing so,
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
you know, that's another thing in kind of in buns favor is that if you Appreciate somebody making the decisions for you or at least being very Recommendary of this is how we would approach it. That's also there to get you started faster
Tj_Vantoll:
Okay, so I'm going to try to transition us back to
Jack_Herrington:
Well,
Tj_Vantoll:
islands at this
Jack_Herrington:
can
Tj_Vantoll:
point.
Jack_Herrington:
I can I throw in
Tj_Vantoll:
Oh
Jack_Herrington:
a list
Tj_Vantoll:
yeah
Jack_Herrington:
a little
Tj_Vantoll:
yeah
Jack_Herrington:
bit
Tj_Vantoll:
yeah.
Jack_Herrington:
more on bun bun there so it is highly optimized around the things that are IO. It's like so the kind of stuff like if you got us. If this thing if this reminds you of you so if you are doing a next app where you're just on the server or during your service I render. You're making a bunch of API calls back to some microservice back end back there some Java dudes in a back room whatever blah blah blah. Um, and then you're, you know, you're, you're rendering the result. If that's you, then bond is optimized for you. Oh, you know, like as page said, it's got, you know, so the built in optimized HTTP, blah, blah, blah. And so it's very, very good for that. And the more that you do those kinds of backend, the microservices requests, the better performance gain you're going to get off of node. I did notice that if you do like heavy computational stuff, There's actually some performance optimizations and node that actually outclass. So, you know, you just you really always as as with all these things, you really should like actually try and do some testing, like around the kind of workloads that you put on it to make sure that it's actually going to give you and your app the performance benefits as opposed to just like looking at the hype cycle and saying, Oh, I got like that type of where we saw this. Yeah. Wow. You know,
Paige_Niedringhaus:
Hehehe
Jack_Herrington:
whatever. Like that maybe that's not your app, dude. That's their app.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
So maybe the one thread that I think works with these texts that we're talking about for different island architecture implementations and these different node alternatives is they're all kind of new. So
Jack_Herrington:
Hmm.
Tj_Vantoll:
should we rank them? For all of this stuff, on a scale from you should just play with this but not actually use it all the way up to, this is ready for your production applications, how mature do you think these various tools that we're talking about ours. Should people like toss these in production tomorrow? Is this like a, just sort of maybe use for your personal blog to like tinker with at the moment? Where are we kind of at with this stuff?
Jack_Herrington:
I would say. The islands architecture stuff, particularly like the older ones like Marco Astro 11 T is also an island's architecture one that's been
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
around for a while. Pretty pretty stable. It's definitely it's not. And I would say it's definitely something I would learn, right? I would learn at least one of the islands architecture models that that's just my opinion. I think fresh is really cool. Like I bet a little time will tell in terms of how it plays. I was thinking about it like and then there's and then there's sorry, bun. And I. It's like, you know, bun to me is like taking a Yaris and putting nitrous on it. It's like, yes, it's, it's going to go faster, but
Paige_Niedringhaus:
I'm sorry.
Jack_Herrington:
it's, but that ain't going to be an F1 car, right? And
Paige_Niedringhaus:
Right?
Jack_Herrington:
F1 car is a fundamentally different architecture than, you know, no, a boosted node, right? Um, and so I would, I would definitely, I would gear. I don't think you're going to learn a lot from like getting into a bun. It's like, oh, cool. My stuff just works faster. Yay. But now it's like, but, you know, if you learn a new thing with islands architecture, that is literally like now you open the whole new vista potential and you got like a whole new panacea of things that you can talk about.
Tj_Vantoll:
I sort of like that way of presenting it because I haven't played with any of this stuff yet. I've seen a demo on Astro before, but there's a difference between seeing a quick little 10 minute video versus actually trying and building something small. So that might be my next step, just so I can speak, if nothing else, I can speak intelligently about it with YouTube, to having tried it.
Paige_Niedringhaus:
Yeah, and you know, one thing to really keep in mind with a lot of these, like Jack said, is how long they've been around and how much the community has helped move them forward. Because BUN is not even in its first version. It's still version 0.1. something at this point.
Jack_Herrington:
That six last night or something? Yeah.
Paige_Niedringhaus:
Yeah, so,
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
you know, that's that to me is not production ready that that's definitely still at the tinker around with it play with it locally if you want to but don't expect this to Farewell, if you're building a site that really needs to be up all the time Maybe if you're building experimental stuff and sure go for it and see what happens But yeah, but for stability's sake anything that's going into production. I think you would be much better off jumping on the island architecture bandwagon and seeing how that works and checking out how, maybe rebuild something that you've already built before and see if there's a difference in terms of performance and if there's a huge difference in terms of how you would build it knowing island architecture. I think that that would probably like TJ said, be a better use of time at this point.
Jack_Herrington:
Yeah, I think we all I guess for the past couple of years, you started talking about like how to do things faster, right? We've all sort of realized that like React is wonderful, but it is literally like putting an operating system on top of an operating on top of your browser, which is an operating system on top of your operating system, which is an operating system. I mean, it is just it's a it's a like I've gone through the some of the React code and it is it is monstrous. It is huge. And so we've all been looking at things like or what? Yeah, we've been looking at things like Svelte. And solid and those are like again ways to like say oh well we could just do the same kind of thing but just do it lighter and faster. But fundamentally the same architecture, I think the island stuff is literally just like a whole whole new like hey let's look at this for an let's holistically just look at the page from entirely different aspect and say well, can we keep the isomorphic thing but also. Get the optimization of only sending out what we actually need to to the client. You know, and how do we hint our system that this is something that the client, that this is something is going to be interactive versus this is actually going to be just like, yeah, whatever, something on the page.
Tj_Vantoll:
Yeah, and it looks like I've just been doing some searching around for how popular some of these things are. And both Astro and 11t did quite well on the state of JavaScript survey last year.
Jack_Herrington:
Hmm
Tj_Vantoll:
Astro especially. Astro and Speltkit are actually right on the top of like the highest or the most, I guess I'm sorting by satisfaction. So the most,
Jack_Herrington:
Satisfaction.
Paige_Niedringhaus:
enjoyable
Tj_Vantoll:
just a weird,
Paige_Niedringhaus:
to build.
Tj_Vantoll:
it's a weird phrase to say, but. If I sort by satisfaction,
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
Astro does quite well.
Jack_Herrington:
And Astro is cool because you're basically learning a new architecture without having to learn like an entirely new way to write your components. Whereas FeltKit is an entirely new way to actually write a component. Like it's like more like view. You know, you have like a script block and then you got this kind of interesting like dependency sort of thing going on in there. It's kind of cool. But like, you know, different. Whereas like, oh, Astro, I can just like. Take my react skills and now I'm just doing them faster and more intelligently on the page.
Paige_Niedringhaus:
Yeah, there's no translation or syntax
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
change required, because I've been working with Svelte just recently on a project, and it's close enough to react that I can usually figure out what's going
Jack_Herrington:
Hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe
Paige_Niedringhaus:
on, but it's just far enough away that I have to Google how to do this in Svelte versus how I would normally do it in React. So, yeah,
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
I can see how Astro would be a friendlier way to go from one to the other.
Jack_Herrington:
And it's still it's got like the like when you do iteration in svelte, it's still got like extra tags and stuff, right? You know, you put in
Paige_Niedringhaus:
Yes.
Jack_Herrington:
there.
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
the JSX is different because you have
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
curly braces around things like if statements, which you can't really do in React, so that's kind of cool.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
But yeah, you put in curly braces for looping over things. You can do these interesting kind of if statements in the JavaScript portion. So if something updates or, you know, after a page loads, if such and such exists, then run this script. interesting.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
It's nice, it's kind of, I can see how it cuts down on a lot of the React code and the hooks that you would normally have to do to get the same things to happen, but it is different, so it's interesting.
Jack_Herrington:
Hooks, man, they they. I think we're still dealing with the fallout from hooks. People just not liking it. Just. Yeah.
Paige_Niedringhaus:
it's it just takes a lot of getting used to and honestly i have not used the new hooks for react 18 i just haven't built anything that has needed to yet
Jack_Herrington:
Right. Yeah.
Paige_Niedringhaus:
so i don't know i don't even know how i feel about them yet
Jack_Herrington:
I guess I should, you know, but I have it either. You know, it is. I just think people have fundamentally I randomly get people on my Discord server saying, like I had a guy saying, I went in for an interview. Here's the code that I put in. They and I didn't pass. And I'm like looking at the code and it was like, you know, he had this. He used a use effect to. like synchronously update some state. And I'm like, that's a memo, dude. It's like, you know, kind of thing. People are just still kind of messing it up. And there's like this all this sort of like tribal knowledge, like, ooh, use memo
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
and use callback or bad. It's
Paige_Niedringhaus:
Use
Jack_Herrington:
like,
Paige_Niedringhaus:
callback, yeah. Ha ha ha.
Jack_Herrington:
why? What? No, they're not. Actually, they're in there for a reason. You should use them. What are you talking about? Like and but people like, no, no, no, no, no. But what? OK, yeah.
Tj_Vantoll:
So Jack, I have an additional question here. So
Jack_Herrington:
Hit me.
Tj_Vantoll:
you had mentioned that the islands architecture, so the whole idea is you're sort of identifying areas of your page that are the interactive parts,
Jack_Herrington:
Right.
Tj_Vantoll:
right? Do you have like examples of how that works in the framework specifically? Like let's say I'm building the comments section, right? Like what differentiates my like comments components where it is interactive from like my... blog component where all I'm doing is like rendering a markdown file. Like is there like little, do these frameworks have like little syntactical things I'm doing? Am I like fundamentally writing these things different? Like obviously there's a lot of frameworks. So like you could answer with either like one specific example or just like a general thing. I'm just sort of curious.
Jack_Herrington:
Sure, I'll give you the specific example I know, which is fresh, because it's fresh in mind and just
Tj_Vantoll:
그치
Jack_Herrington:
used it recently. Womp womp. Yeah. OK, anyway, the way that you demarcate that it's an island is you literally take the component and put it into a folder named islands.
Tj_Vantoll:
Okay?
Jack_Herrington:
Sorry. And that's it. Then you're done. And then,
Paige_Niedringhaus:
That's
Jack_Herrington:
and that's
Paige_Niedringhaus:
it.
Jack_Herrington:
how the that's how the framework knows that like, oh, this component is that. But the really cool thing is that like you're not getting out of React. It's like it's just this it's the same component. It's just in and it's just in this different folder. And but that's it. Yeah.
Paige_Niedringhaus:
It's pretty darn simple.
Jack_Herrington:
Yeah.
Tj_Vantoll:
So is the idea that if you have a component, so I'm writing a component and I know it'll never change. If I just write it as a normal component, you're saying fresh will basically just render that from the server and then just like never touch it again. Right, it's just there
Jack_Herrington:
Right, and
Tj_Vantoll:
forever.
Jack_Herrington:
now it won't it will render on the server and then it will not send that code to the to the page. And if you're looking at like the view, so you paid for is coming back. There won't be that big old script block unless you've got an island on the page. And then the script block would just be for the data for that one island or whatever. So, I mean, if you just go, if you have a page is like literally just like all you're doing is rendering data and. That's it. Maybe you have a login button. I will. Let's just say rendering data and forget the login button for thing. And you look at the page towards it's it's literally just HTML and you look at the inspector and you have no JavaScript. And of course, the fastest JavaScript is no JavaScript at all on the client. So, I mean, these whoo fast lightning
Tj_Vantoll:
Yeah,
Jack_Herrington:
fast.
Tj_Vantoll:
that's kind of nice because I feel
Jack_Herrington:
Yeah.
Tj_Vantoll:
like for most, honestly, most like blog type or marketing type websites, you really don't need any
Paige_Niedringhaus:
There's
Tj_Vantoll:
JavaScript.
Paige_Niedringhaus:
no updates.
Jack_Herrington:
Right?
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Yeah.
Tj_Vantoll:
Like
Jack_Herrington:
Yeah.
Tj_Vantoll:
honestly, even your comment section is usually a third party thing in most cases. So usually you're doing some sort of like iframe or embed or something for that anyways. So it's kind of nice because I think that's the one thing that historically, because I remember debates. especially as React was first getting popular and AngularJS was popular, people would say, oh, don't build your blog in with React because it's overkill. You don't need JavaScript to do it. But the thing is, it's kind
Jack_Herrington:
We probably
Tj_Vantoll:
of
Jack_Herrington:
should
Tj_Vantoll:
nice
Jack_Herrington:
have listened.
Tj_Vantoll:
sometimes. Yeah.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
They were right.
Tj_Vantoll:
Well, the thing is, it's kind of nice. There's a reason people
Jack_Herrington:
Yeah!
Tj_Vantoll:
want to do it, right? Because I like, I mean... Honestly, we're all here because, and you're probably listening to this because you like using React in
Jack_Herrington:
Yeah!
Tj_Vantoll:
sub capacity.
Paige_Niedringhaus:
Right.
Tj_Vantoll:
It's like what brings us all together. So
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
I feel like one nice thing about some of these newer approaches is it lets us keep coding with things we like doing, but the making the end result more faster or more friendly for the user
Jack_Herrington:
Yep.
Tj_Vantoll:
at the end
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
of the day.
Jack_Herrington:
Yeah. Yeah, exactly.
Paige_Niedringhaus:
So let me ask you this. If you had a website that relied on updates from either web sockets or from polling, like a stock ticker or something like that, would island architecture be a good solution or would that not be what this is best suited for?
Jack_Herrington:
I mean, you're going to have static parts of the page anyway. You're probably going to have a header. You're going to have a footer. Those are
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
probably going to be mostly static. You might have some, I don't know, some other static information on the page. And then you'd have like the dynamic section of the ticker. Right.
Paige_Niedringhaus:
Right.
Jack_Herrington:
And then, so all you'd be getting in terms of the JavaScript is the ticker. And I worked for, you know, Nike and Walmart. I mean, the header and footer were non-trivial. I mean, we're talking... hundreds
Tj_Vantoll:
Yeah.
Jack_Herrington:
of links and blah, blah, blah, blah, blah. I mean, you worked for Home Depot, I think, right? Yeah. So, or Lola.
Paige_Niedringhaus:
Yes.
Jack_Herrington:
Yeah. I mean, yeah, these these these are not trivial. Right. Huge, huge.
Paige_Niedringhaus:
Hehehe
Jack_Herrington:
So to say that you're actually removing like the header and the footer from the download is not trivial. It's a big deal. So there is that alone. I mean, I think at both Nike and Walmart, well, I know that we actually ended up using like we didn't even deal with React on those. Those are just like custom kind of like Add it into the Dom type deals because it was just ridiculous. The idea of like doing those in react on both clients.
Paige_Niedringhaus:
Got it. So even for those more, what you would consider more dynamic websites and interactive websites, this could still be a really good saver of space and time and things like that.
Jack_Herrington:
Right, sure. The question is, as opposed to thinking about the whole page is dynamic, now you've got this gradient scale of like, oh, it could be 10% dynamic, it'd be 20% dynamic, and we only get download the code for that 20%. Like, if you were to jack that all the way up to 100, would you be less, would the page be significantly less efficient than the next version of the same 100% dynamic page? And I don't think so. Actually,
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
I think it'd probably be roughly the same. So at that point, you know, it's whether you're putting yourself on a gradient scale or whether you're just basically throwing up your hands and saying, well, the entire page is dynamic. There you go.
Paige_Niedringhaus:
So follow-up question then, if you already had an existing site that was built with React or built with Vue or whatever, how difficult or simple would it be to start incorporating something like this? Like, could you add Astro to it or would it really need to be you're building, rebuilding the site or you're starting from the ground up and you're starting with the island architecture?
Jack_Herrington:
I don't I can't say from experience, but my guess is that you're going to have to lift and shift,
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
but the fact that you're still staying within react. You know
Paige_Niedringhaus:
That'll
Jack_Herrington:
that
Paige_Niedringhaus:
make
Jack_Herrington:
makes
Paige_Niedringhaus:
it quicker
Jack_Herrington:
that lift
Paige_Niedringhaus:
to
Jack_Herrington:
and
Paige_Niedringhaus:
do.
Jack_Herrington:
that makes the lift and shift a whole lot easier, right?
Paige_Niedringhaus:
Yes.
Jack_Herrington:
But that would be at. Thank you for a great video idea of let's go and take a next app and turn it into an Astro app and
Paige_Niedringhaus:
Ha
Jack_Herrington:
see
Paige_Niedringhaus:
ha.
Jack_Herrington:
how that plays.
Paige_Niedringhaus:
Happy to provide ideas,
Jack_Herrington:
Yeah,
Paige_Niedringhaus:
go for
Jack_Herrington:
OK,
Paige_Niedringhaus:
it.
Jack_Herrington:
let's do this. Sounds like fun. I will literally put that in my ideas
Tj_Vantoll:
Yeah.
Jack_Herrington:
right now. And I will say that you are the inspiration for it.
Tj_Vantoll:
Well, Jack, I'll follow the format of our normal show. Do you have any other like tips and tricks or is there anything that we missed that we should discuss related to islands?
Jack_Herrington:
I watched this really good. I just said one little weird second for here. I watched this veracity veracity them. What is the video like veracity him? I don't know. Great guy on YouTube. And he had this thing on like experts versus beginners. And the four things that you need to make an expert. Right. And the fourth thing. Was like, why don't we all? Why aren't we all like F1 drivers now? Because we've driven a car for so long, right? You know,
Paige_Niedringhaus:
I'm gonna go get some water.
Jack_Herrington:
like we should
Paige_Niedringhaus:
I'm gonna
Jack_Herrington:
all be we should all we all have 10,000 hours behind the wheel of a car. Why aren't we all just amazing car drivers? Right. Well, the reason is because we don't challenge ourselves. We don't we don't go on to off road tracks. We don't drive in, you know, crazy weather all the time. But we don't like challenge ourselves. And if you want to be if you want to take your skill level up we call computer science, right? If you don't want to just like go into management or whatever, right? You know, you actually want to be a better engineer. You really need to challenge yourself. And I would say even if you don't, you know, end up using this, I would I would always just pull some of these things off the shelf. You know, take the five minutes while you're watching, you know, Game of Thrones on reruns. And, you know, you've you've seen the red. wedding before you can
Paige_Niedringhaus:
Yeah
Jack_Herrington:
code through that, you know, and, you know, try it out, man. Like, what do you got to lose? You're just going to push yourself, try new things, and it'll make you a better engineer, even if you don't use it in real life.
Tj_Vantoll:
Do you know if the name of the video was the four things you need to be an expert?
Jack_Herrington:
Yes, there
Tj_Vantoll:
Okay,
Jack_Herrington:
you go. And it
Tj_Vantoll:
so
Jack_Herrington:
is
Tj_Vantoll:
there you
Jack_Herrington:
a
Tj_Vantoll:
go.
Jack_Herrington:
great one that all his videos are great watches. Oh, my God. That's why he's got
Tj_Vantoll:
Yeah, and
Jack_Herrington:
like
Tj_Vantoll:
it's,
Jack_Herrington:
a billion users. But what a brilliant followers.
Tj_Vantoll:
yeah, it's
Jack_Herrington:
Yes.
Tj_Vantoll:
V-E-R-I-T-A-S-I-U-M. So
Jack_Herrington:
for
Tj_Vantoll:
if you're,
Jack_Herrington:
res... God, why?
Tj_Vantoll:
yeah, I don't know,
Jack_Herrington:
Terrible name, but
Tj_Vantoll:
terrible
Jack_Herrington:
awesome
Tj_Vantoll:
name,
Jack_Herrington:
videos.
Tj_Vantoll:
but the four things you need to be an expert is that that's some good like YouTube SEO right there. Like
Jack_Herrington:
Oh
Tj_Vantoll:
that's
Jack_Herrington:
my god,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
he's
Tj_Vantoll:
some great
Paige_Niedringhaus:
That's
Jack_Herrington:
the
Tj_Vantoll:
clickbait.
Jack_Herrington:
best.
Paige_Niedringhaus:
gold.
Jack_Herrington:
He actually did a video on SEO and it was a great video on SEO
Tj_Vantoll:
Heheheheheheh!
Jack_Herrington:
and it's like, yeah, like, yeah, so. I mean, he hadn't changed
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
the title on that one, that's cool.
Paige_Niedringhaus:
it's kind of the same. I've heard a very similar thing spoken about when you're trying to improve your skills as kind of concentrated practice instead of just,
Jack_Herrington:
Yes,
Paige_Niedringhaus:
like you said,
Jack_Herrington:
exactly.
Paige_Niedringhaus:
going through the motions or doing kind of falling back on what you already know. It's consciously. trying to stretch yourself, whether it's refactoring code or trying a new framework or, you know, you get better as your brain kind of makes new connections or clicks in different ways. And that's, it sounds very much like that. It's like just
Jack_Herrington:
Yep.
Paige_Niedringhaus:
watching a video is probably not going to do it for you. You actually have to get your hands dirty and break some stuff. And then it'll start to make sense. And you'll start to just come up with new ways to solve problems, which is what we do all day.
Tj_Vantoll:
Yeah, feedback to, I mean, we just had this discussion like 10 minutes ago that like I saw a video on Astro, but like that did me next to no good, right? Cause
Jack_Herrington:
No,
Paige_Niedringhaus:
Right.
Jack_Herrington:
no, yeah.
Tj_Vantoll:
I, the way it clicks for me at least, and I,
Jack_Herrington:
You gotta do it. You
Tj_Vantoll:
you gotta do it. And I
Jack_Herrington:
gotta
Tj_Vantoll:
think
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
do it.
Tj_Vantoll:
that's true for everybody to a certain extent, but like you have to do it. And like, if you really want to be an expert, you have to do it like beyond just hello world too. Like you have
Jack_Herrington:
Oh yeah.
Tj_Vantoll:
to be looking to solve an actual problem. You have to be motivated to build something. real for it to really click.
Paige_Niedringhaus:
Yeah, well cool. So I think that we have exhausted these topics of islands and bun and different node frameworks and things that you can power your apps with. So let's move into the picks section. And these are things that we think are cool, videos or maybe YouTube channels that we've watched recently and really
Jack_Herrington:
Hehehehehehe
Paige_Niedringhaus:
enjoyed
Tj_Vantoll:
Hehehehe
Paige_Niedringhaus:
or products that we think you might like as our users. So TJ, do you wanna start us off today?
Tj_Vantoll:
Yeah, actually, this YouTube thing just made me think of something very random, but there's a YouTube channel called Summoning Salt, which they cover. They basically do like these mini like document almost like, I don't know, it's all about speedrunning video games, which is something that
Jack_Herrington:
Yeah!
Tj_Vantoll:
I thought I would never care about. Right.
Paige_Niedringhaus:
I'm sorry.
Jack_Herrington:
Oh
Tj_Vantoll:
Like,
Jack_Herrington:
no.
Tj_Vantoll:
like I like video games, but I've never I've just sort of been casually aware that there's a group of people that speed run them. I've occasionally
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
seen YouTube videos. Well this guy basically turned it into like a documentary series, right? Well, he'll cover
Jack_Herrington:
GASP
Tj_Vantoll:
speed runs on video games, but cover the history of it.
Jack_Herrington:
Oh, I'm all about this.
Tj_Vantoll:
But they do it, he does it in a way that's strangely fascinating. It's like one of those things that when you have somebody who's really good at creating, and can somehow take something that you would not think would be interesting at all and make it so you're like really compelled to watch this random Twitch streamer try to like make this very hard jump on attempt number 8000 or whatever.
Jack_Herrington:
Right? Yeah.
Tj_Vantoll:
You're like why am I so compelled by this but
Jack_Herrington:
Yeah!
Tj_Vantoll:
it's summoning salt on YouTube and all of his videos are very good
Jack_Herrington:
Oh
Tj_Vantoll:
so
Jack_Herrington:
my God, I'm all about
Tj_Vantoll:
I'll recommend
Jack_Herrington:
this.
Tj_Vantoll:
that.
Paige_Niedringhaus:
Please.
Jack_Herrington:
And those communities
Paige_Niedringhaus:
Well.
Jack_Herrington:
are actually strangely really good, like they're really helpful to each other and they they're always just trying to like get, you know, a high score or the fastest run.
Tj_Vantoll:
Yeah, and his videos have like millions of views. So
Jack_Herrington:
Oh yeah.
Tj_Vantoll:
it's like something that like, it's amazing how anybody can find these entertaining, even if you think you're not interested in this at all.
Paige_Niedringhaus:
Yeah, he found the secret sauce that everybody really enjoys.
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
Nice. Well, Jack, would you like to give us a pick for this week?
Jack_Herrington:
I guess I'm going to be a little boring this week, and I just got my M2 Mac, the 13 inch, and
Paige_Niedringhaus:
Mmm.
Jack_Herrington:
it boy, it's a howler. It's
Paige_Niedringhaus:
I'm gonna go to bed.
Jack_Herrington:
fast.
Paige_Niedringhaus:
Bye.
Jack_Herrington:
Woo. The only thing I don't like about it is that it doesn't handle multiple external monitors or so, it seems like it's only the one. And it's like, no, that's not good. So I'm actually
Tj_Vantoll:
Hopefully
Jack_Herrington:
can.
Tj_Vantoll:
that's like a software thing though that they can fix.
Jack_Herrington:
Yeah, I'm actually weirdly I'm considering one of those god awful like 49 inch super widescreen beasts, you know.
Tj_Vantoll:
Oh.
Jack_Herrington:
I didn't want to do that. I might guess I might have to. I didn't want to be that guy anyway. I like my M2. So there you go.
Paige_Niedringhaus:
Nice. So my pick for this week is gonna be along the same lines as what my recent one was, which was Formula One. This one is actually the the new Maverick movie though,
Jack_Herrington:
Hmm
Paige_Niedringhaus:
or the new Top Gun movie, which is Maverick
Tj_Vantoll:
Ah,
Paige_Niedringhaus:
Top
Tj_Vantoll:
okay.
Paige_Niedringhaus:
Gun. So if you enjoyed the first one, you will absolutely enjoy this one, and it is not a remake at all. It is a brand new storyline. Tom Cruise is in it, obviously, and there's lots of fighter pilots and jets and things like that.
Jack_Herrington:
Hehehehehehe
Paige_Niedringhaus:
they really did a fantastic job of taking an existing franchise and making a second movie that was totally unique and really really really good. So if you have not seen it yet, you know, go see it in theaters go see it when it comes out on on video Definitely watch it though. I think you'll you'll go for it
Jack_Herrington:
Did he see it in IMAX? That seems to be the
Paige_Niedringhaus:
No,
Jack_Herrington:
thing.
Paige_Niedringhaus:
I just saw
Jack_Herrington:
Oh,
Paige_Niedringhaus:
it in regular
Jack_Herrington:
OK.
Paige_Niedringhaus:
theaters, but that was that was good enough
Jack_Herrington:
Yeah.
Tj_Vantoll:
I have not seen it yet, but I've only heard good things, so
Paige_Niedringhaus:
yeah
Tj_Vantoll:
I need to.
Paige_Niedringhaus:
yeah they really there were some movies that have come out that are like sequels or many many into the franchise this summer and they were a little bit disappointing but this one is not at all this one was really they they did it well
Jack_Herrington:
Yeah, I think we talked last week about Thor, right? And Thor was kind of like, eh.
Paige_Niedringhaus:
Yeah, it's a little
Jack_Herrington:
Good.
Paige_Niedringhaus:
bit more of the same, kind of,
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
which is good, but you know, you're kind of, you're, you already kind of know what to expect.
Jack_Herrington:
And a little bit all over the map, like who came up with this plot?
Tj_Vantoll:
It's
Jack_Herrington:
Like random number generator.
Tj_Vantoll:
where we're starting to get with the Marvel movies because we just watched the second Doctor Strange movie
Jack_Herrington:
Mm
Tj_Vantoll:
and like,
Jack_Herrington:
hmm.
Tj_Vantoll:
I feel like anymore you watch a Marvel movie and you have to like go to YouTube afterwards
Jack_Herrington:
Ha ha
Tj_Vantoll:
to figure
Jack_Herrington:
ha ha!
Tj_Vantoll:
out what you just watched because a character will show up and it's like, oh yeah, don't you remember when this character showed up 10 movies ago and the context related to it? It's like, maybe, I don't know. Like...
Jack_Herrington:
Uh, right?
Tj_Vantoll:
new
Jack_Herrington:
Yeah.
Tj_Vantoll:
people show up and it's like oh you didn't read that comic from 1978
Jack_Herrington:
Hahaha
Tj_Vantoll:
where this plot series was yeah it's getting
Paige_Niedringhaus:
Special
Tj_Vantoll:
a little bit
Paige_Niedringhaus:
episode
Tj_Vantoll:
nuts
Paige_Niedringhaus:
number 27? You didn't see
Tj_Vantoll:
yeah
Paige_Niedringhaus:
that crossover?
Jack_Herrington:
We're watching Westworld now and it is again, like if I go with a fourth season or whatever. And it's like, oh, everything is this existential weirdness and time travel. And you're like, oh, man, I just just want to relax. This show is too intense for me. Like it just requires too much brain power.
Paige_Niedringhaus:
Hehehehe
Jack_Herrington:
Well, this has been really fun, guys. And
Tj_Vantoll:
Yeah.
Jack_Herrington:
I hope
Paige_Niedringhaus:
It has been.
Jack_Herrington:
folks out there are
Paige_Niedringhaus:
I mean,
Jack_Herrington:
excited
Paige_Niedringhaus:
I'm inspired
Jack_Herrington:
about learning something
Paige_Niedringhaus:
to
Jack_Herrington:
new.
Paige_Niedringhaus:
check out Astro like I've never
Jack_Herrington:
Hmm,
Paige_Niedringhaus:
been before.
Jack_Herrington:
cool. Yeah.
Tj_Vantoll:
give
Jack_Herrington:
And I
Tj_Vantoll:
a plug for
Jack_Herrington:
like
Tj_Vantoll:
our
Jack_Herrington:
that
Tj_Vantoll:
Discord
Jack_Herrington:
video idea.
Tj_Vantoll:
channel,
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
for our Discord channel as well, so if you want to come chat
Jack_Herrington:
Oh yes.
Tj_Vantoll:
with any of us, with us
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
about any of this, we hang out there, so we love
Paige_Niedringhaus:
Yep,
Tj_Vantoll:
hearing from you all.
Jack_Herrington:
Oh, and
Paige_Niedringhaus:
we've
Jack_Herrington:
I have a pizza
Paige_Niedringhaus:
also,
Jack_Herrington:
update for you. I did try the
Paige_Niedringhaus:
I was about
Jack_Herrington:
ham
Paige_Niedringhaus:
to ask.
Jack_Herrington:
and pineapple
Tj_Vantoll:
Eh heh
Jack_Herrington:
pizza
Tj_Vantoll:
heh.
Jack_Herrington:
and it was quite delicious. Thank you. I actually do have it on video.
Tj_Vantoll:
Excellent.
Jack_Herrington:
I should
Paige_Niedringhaus:
A
Jack_Herrington:
drop
Paige_Niedringhaus:
convert.
Jack_Herrington:
the video in there. Yeah, yeah, actually, yeah.
Tj_Vantoll:
Some good like good YouTube clickbait too. You should
Jack_Herrington:
Right?
Tj_Vantoll:
make
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
I'm sorry.
Tj_Vantoll:
like, I could just see the thumbnail right now. I tried pineapple and pizza and here's what I think or
Jack_Herrington:
Yes,
Tj_Vantoll:
something open-ended.
Jack_Herrington:
right. Yeah,
Paige_Niedringhaus:
Yes.
Jack_Herrington:
I survived pineapple on pizza.
Tj_Vantoll:
Yeah.
Jack_Herrington:
You
Paige_Niedringhaus:
Well,
Jack_Herrington:
can
Paige_Niedringhaus:
cool.
Jack_Herrington:
too.
Paige_Niedringhaus:
So thank
Jack_Herrington:
Wonderful
Paige_Niedringhaus:
you
Jack_Herrington:
time.
Paige_Niedringhaus:
everybody for joining us for this panelist episode. We'll see you on the next episode of React Roundup.
Tj_Vantoll:
Yep, bye everybody.