Tj_Vantoll:
Hey everybody, and welcome to another episode of React Roundup. I am your host today, TJ Vantol, and we have a special panelist episode for you today, I am joined also by my co-host Paige Niedringhaus.
Paige_Niedringhaus:
Hey, everybody,
Tj_Vantoll:
and Jack Harrington.
Jack_Herrington:
Hello.
Tj_Vantoll:
All right, so we have a fun sort of topic for you today. We're just gonna do a grab bag of React News. So
Jack_Herrington:
Boop!
Tj_Vantoll:
one thing that we don't get to do so often when we have guests on every week is those episodes tend to be tailored to a specific topic. And turns out a lot has been going on in the React world.
Jack_Herrington:
You don't
Tj_Vantoll:
It's
Jack_Herrington:
say?
Tj_Vantoll:
been,
Paige_Niedringhaus:
Uh,
Tj_Vantoll:
yeah, it's been
Paige_Niedringhaus:
uh,
Tj_Vantoll:
kind of a busy handful of months. So
Jack_Herrington:
A little
Tj_Vantoll:
we're
Jack_Herrington:
bit.
Tj_Vantoll:
just gonna go through, I've got like five or six different things, topics that we wanna discuss. We'll just go through them one by one. toss them out there for discussion and see what we all think. So number one on my list is create React app.
Jack_Herrington:
Mmmm
Tj_Vantoll:
So create React app is kind of been a staple of the React world for a long time. I think
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
I was
Jack_Herrington:
Oh, since the beginning.
Paige_Niedringhaus:
twenty sixteen,
Tj_Vantoll:
looking at this,
Jack_Herrington:
Yeah.
Tj_Vantoll:
yeah, 2016. So seven years
Jack_Herrington:
Oh, that's all?
Tj_Vantoll:
of this tool.
Jack_Herrington:
It seems like it should be
Tj_Vantoll:
And
Jack_Herrington:
ten,
Paige_Niedringhaus:
Hm,
Jack_Herrington:
but okay.
Tj_Vantoll:
I think like for to be the place you start if you're doing React, or at least for most
Jack_Herrington:
you
Tj_Vantoll:
people. So I think most of our listeners will have experience with it, but it's kind of languished, right, for the last few years, debatably, but there's been a lot of tooling, a lot of tooling advances that haven't necessarily made it into Create React app and people are kind of wondering its future. So then recently, like very recently, within the last week or two of recording the future plans of the tool.
Jack_Herrington:
Yeah, Fia.
Tj_Vantoll:
And I know you two are a little bit more aware of that than me, so why don't you wanna just walk through what the plan is moving forward.
Jack_Herrington:
Yeah, Theo dropped a bomb in the comments or issues of Create Rackdab saying, why does this even exist? And
Tj_Vantoll:
Heheheheh
Jack_Herrington:
Dan gave a five-page soliloquy about it. Page one, you want to summarize?
Paige_Niedringhaus:
Sure, I mean, like we said Create, React Ap came out in twenty sixteen, And it really was kind of a game changer for Web development and React building React applications. It took away all the thinking about web pack and figs. It took away all the wiring up. It basically just gave you an out of the box. Here is a working page. Here are some components to get you going. You don't have to worry about deployments. It minifies it bundles at transpials. It does all that great Tuff and it was it was great. It was great for the time. It was fantastic for teams just getting started and learning react. but it hasn't And this is a really tough thing. It hasn't been able to keep pace with what has been happening. It never supported service side rendering, so if you wanted
Jack_Herrington:
you
Paige_Niedringhaus:
that, you had to somehow build it yourself, so it wasn't great for big sites that depended on. so for a commerce, Really anything that had to do with Riverside, and it just has continued to not get as much love and attention as bigger frameworks that have come along like next, J, S, like gasp, like re, mix, Um,
Jack_Herrington:
Or VEAT
Paige_Niedringhaus:
just because
Jack_Herrington:
if you want to use,
Paige_Niedringhaus:
or vet.
Jack_Herrington:
yeah, if you really only care about the client size stuff, VEAT
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
is smaller and cleaner and faster and all of that.
Paige_Niedringhaus:
Yeah, so if you wanted to switch out web pack for it, if you wanted to use some other compiler, Basically it, it was something that you had to kind of custom role yourself. You had to add it in. you had to maintain it. You had to figure out how to eject, create, react out, and
Jack_Herrington:
Ugh.
Paige_Niedringhaus:
then stay up to date. It. It has been not.
Jack_Herrington:
Hehehehe
Paige_Niedringhaus:
you know. There have been a lot of other new options that have come along that are better. So you know, if you want to read the Linked to the entire summary that Dan gives, talking about the architecture, the evolution, how the community has evolved. But basically it comes down to we need to either create a brand new version of Create React app of brand new start from scratch
Jack_Herrington:
you
Paige_Niedringhaus:
framework. We need to deprecate
Jack_Herrington:
Thanks for watching!
Paige_Niedringhaus:
the old version so that people stop using it and putting into
Jack_Herrington:
you
Paige_Niedringhaus:
production, which I am definitely guilty of myself. I have worked on teams where that has become the production application We need to make. Create, React up some kind of a single use framework.
Jack_Herrington:
So I know
Paige_Niedringhaus:
Um, kind of
Jack_Herrington:
that you're not
Paige_Niedringhaus:
you know,
Jack_Herrington:
going
Paige_Niedringhaus:
put more effort
Jack_Herrington:
to have
Paige_Niedringhaus:
back
Jack_Herrington:
to
Paige_Niedringhaus:
into
Jack_Herrington:
pay a
Paige_Niedringhaus:
it,
Jack_Herrington:
lot of
Paige_Niedringhaus:
or
Jack_Herrington:
money to do
Paige_Niedringhaus:
like they
Jack_Herrington:
this
Paige_Niedringhaus:
said,
Jack_Herrington:
project.
Paige_Niedringhaus:
turn it into
Jack_Herrington:
So like they
Paige_Niedringhaus:
a launcher. So
Jack_Herrington:
said, you
Paige_Niedringhaus:
it is a good
Jack_Herrington:
can't
Paige_Niedringhaus:
starter.
Jack_Herrington:
do
Paige_Niedringhaus:
It's a
Jack_Herrington:
this,
Paige_Niedringhaus:
classic,
Jack_Herrington:
you can't do
Paige_Niedringhaus:
but
Jack_Herrington:
this,
Paige_Niedringhaus:
it's
Jack_Herrington:
you can't
Paige_Niedringhaus:
not
Jack_Herrington:
do anything.
Paige_Niedringhaus:
something that you would
Jack_Herrington:
So
Paige_Niedringhaus:
necessarily want to put into production today.
Jack_Herrington:
it's
Paige_Niedringhaus:
Use it as
Jack_Herrington:
not
Paige_Niedringhaus:
kind
Jack_Herrington:
something
Paige_Niedringhaus:
of a playground.
Jack_Herrington:
that you can do.
Paige_Niedringhaus:
Learn the basics
Jack_Herrington:
So I'm just
Paige_Niedringhaus:
and then
Jack_Herrington:
wondering
Paige_Niedringhaus:
Pick a framework that
Jack_Herrington:
if
Paige_Niedringhaus:
takes
Jack_Herrington:
you
Paige_Niedringhaus:
it a step
Jack_Herrington:
could
Paige_Niedringhaus:
further
Jack_Herrington:
say,
Paige_Niedringhaus:
and put
Jack_Herrington:
is
Paige_Niedringhaus:
that
Jack_Herrington:
it a
Paige_Niedringhaus:
into
Jack_Herrington:
kind
Paige_Niedringhaus:
production
Jack_Herrington:
of
Paige_Niedringhaus:
instead.
Jack_Herrington:
labor-based project that you're going to be covering for the next few months and then you can do that? I didn't read it that way. Actually, I read it as I was thinking more like a view CLI Where I like it kind of gives you it does give you that prompt of like hey here are your options You could use next. Yes, you could use V and it doesn't do any of it it's just all
Paige_Niedringhaus:
M
Jack_Herrington:
it is is just like a thing, but that was what I got from it, but a nice little UI on top of Picking a framework because they they really don't want to be in the framework business And I think that's what Dan was like no, that's not us, you know And I think that's a good call because they're not they don't want to be they don't do that
Paige_Niedringhaus:
It is. I mean,
Jack_Herrington:
So, I'm going to go ahead and turn off the power.
Paige_Niedringhaus:
everybody has all the big frameworks
Jack_Herrington:
And I'm going to turn off the power.
Paige_Niedringhaus:
that we just talked about have jumped on top
Jack_Herrington:
And I'm going to turn off the power.
Paige_Niedringhaus:
of them and made it their own and made
Jack_Herrington:
And I'm going to turn off the power.
Paige_Niedringhaus:
it really useful and easy. and
Jack_Herrington:
And I'm going to turn off the power.
Paige_Niedringhaus:
you know good. So
Jack_Herrington:
And I'm going to turn off the power.
Paige_Niedringhaus:
as the underlying secret
Jack_Herrington:
And I'm going to turn off the power.
Paige_Niedringhaus:
sauce, I would agree
Jack_Herrington:
And I'm going to turn off the power.
Paige_Niedringhaus:
with them that I wouldn't want to be the framework itself. I would just want to be the stuff that powers at all.
Tj_Vantoll:
Yeah, it'll be interesting to see how this plays out because we're still reading into a little bit, right? Like none of this has actually
Jack_Herrington:
Yeah,
Tj_Vantoll:
happened
Jack_Herrington:
exactly.
Tj_Vantoll:
yet. This is like the React team laying out their plans, but from previous experience, when the React team lays out their plans, it could
Jack_Herrington:
you
Tj_Vantoll:
be a few months, it could be a few years before these plans come to fruition.
Paige_Niedringhaus:
Hm.
Tj_Vantoll:
I do think it's interesting because Create React app is the one of these approaches that took off substantially. stone of React development. And I'm curious that if, if it does turn into just a launcher of some variety, what that is going to mean, like when people learn React, what are, cause create React app potentially not great for production, but amazing for beginners, right?
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
And I don't know what the, what the one-to-one replacement for that even is.
Jack_Herrington:
Well, imagine if they did the launcher thing, like the top item would be like VEET, you know, hey, you could make a VTAP, you know, and then
Tj_Vantoll:
Yeah.
Jack_Herrington:
click on that and then it's effectively the same thing, you know, it's got all of the basics built into it. And it's just faster, which is nice. And it's maintained by a team. And actually, I think this has a decent chance of like turning around really fast because this has been like a gaping wound in the side of React for a long time.
Tj_Vantoll:
Hehehehe
Jack_Herrington:
Hey, we're just going to come out with this thing. You can make plugins to advertise your own, you know, framework de jour, right? And there you go. Bob's your uncle and we're done. We're out. Peace out. Like we're not now we can just be the view for the view framework, React library and not have to deal with this thing. And people giving us crap about all the time.
Tj_Vantoll:
Yeah, I imagine this, some of this is their team, like that has to be an absolutely awful project to maintain
Jack_Herrington:
Right?
Tj_Vantoll:
because just the, the, the random issues and PRs and like,
Jack_Herrington:
you
Tj_Vantoll:
just, I feel sorry for the person that's to just monitor PRs coming in and issues coming into that repo because it's just got to be out of control and doing that for seven years. And I think they're
Paige_Niedringhaus:
That's
Tj_Vantoll:
ready
Paige_Niedringhaus:
a
Tj_Vantoll:
to
Paige_Niedringhaus:
long
Tj_Vantoll:
just wash
Paige_Niedringhaus:
time.
Tj_Vantoll:
their hands.
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
A little bit of all of that.
Jack_Herrington:
Welcome to Meta,
Paige_Niedringhaus:
it's funny.
Jack_Herrington:
here's your job.
Tj_Vantoll:
Yeah.
Jack_Herrington:
Take over, create
Paige_Niedringhaus:
it is
Jack_Herrington:
right now.
Paige_Niedringhaus:
funny, though, when you talk about the React team making announcements or sweeping proclamations, and then taking years to actually get them into production. I mean the React documents, data have been in Vada version for two three years now. Eventually we're just going to have to pull the plug on the first set of docks and switch over.
Tj_Vantoll:
Thanks for watching!
Jack_Herrington:
At least just get rid of class components in the docs. That's all I care about. Like, people can't like, hey, class components are still for reals because they're in the docs. Like, no, they're not. Dude, seriously, please
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
don't.
Tj_Vantoll:
Well, fun. So that is our first piece of big news. And after that, there's been
Jack_Herrington:
I'm
Tj_Vantoll:
a slew
Jack_Herrington:
gonna have
Tj_Vantoll:
of
Jack_Herrington:
to do this.
Tj_Vantoll:
new
Jack_Herrington:
I'm
Tj_Vantoll:
versions
Jack_Herrington:
gonna have to do this. I'm
Tj_Vantoll:
of
Jack_Herrington:
just gonna have
Tj_Vantoll:
just
Jack_Herrington:
to do this.
Tj_Vantoll:
about everything. I've got a long list of them. I guess the first I've got on my list is TypeScript 5, which is now available as a beta. Perhaps by the time you're listening to this, it might be out. I don't know about the TypeScript team's release cadence, but it seems to be more regular than React.
Paige_Niedringhaus:
Oh,
Tj_Vantoll:
at least, so I imagine it's not too far off. There are a bunch of things that are new in here. I'm looking at a full list. So we're gonna go through the syntax of each and every command in depth,
Paige_Niedringhaus:
Uh,
Tj_Vantoll:
every
Jack_Herrington:
Oh lord.
Paige_Niedringhaus:
uh,
Tj_Vantoll:
flag.
Jack_Herrington:
See, we'll be here for a week.
Tj_Vantoll:
Yeah. I think, so the headlining feature of this is
Jack_Herrington:
Mm.
Tj_Vantoll:
decorators, which is something that's been in TypeScript and they're adding it now. It's an upcoming ECMA script feature. So it's getting sort of standardized in the spec. And as such TypeScript is putting their sort of
Jack_Herrington:
you
Tj_Vantoll:
their version of it that conforms to the spec. What's the word I'm looking for when they make a feature available before before it's available in the browser. So it compiles down.
Jack_Herrington:
Oh,
Tj_Vantoll:
It's
Jack_Herrington:
Transpiled.
Tj_Vantoll:
like the Babel style, Transfile.
Jack_Herrington:
Transpiled,
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
yeah.
Tj_Vantoll:
They're like, they're making it available for everybody
Jack_Herrington:
Yeah.
Tj_Vantoll:
right. and transpiling it in a way that works for everybody. So I'm curious if either of you used decorators before in your code.
Paige_Niedringhaus:
I have. not. I have used decorators in other languages, So Java, if you used Spring
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
boot at all,
Jack_Herrington:
Mm-hmm. Mm-hmm.
Paige_Niedringhaus:
is very, very big on decorators and it makes you a whole lot easier, I will say, but I really haven't felt like I've missed anything in Java Script or in Typescript, up till this point, so if anybody can enlighten me as to the benefits of decorators, I'd love to. I'd love to learn more about them.
Jack_Herrington:
I've used decorators in things like next nest JS. So that's the API framework.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
And it's very heavily influenced by Java. Like, wow,
Tj_Vantoll:
Yeah.
Jack_Herrington:
it's a lot of classes, a lot of oh, a lot of very kind of interfaces to factories to blah, blah, blah, blah, kind of thing. and things and it's cool like for things like oh I need that I need an authorization check on this particular route you Know
Paige_Niedringhaus:
Hm,
Jack_Herrington:
at authorized you know bang you're done like boom doesn't get much easier than that Which is nice, but I gotta tell you like ah I Really don't want to get an ALP or aspect oriented programming world with JavaScript. It was nice to leave that behind Leave that You know Java can do its own thing We're JavaScript. We're a different thing script. Lightweight.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
You know, we don't have to do that stuff.
Tj_Vantoll:
Yeah, no, I'm with both of you because I've done them both in my Java days and then my Angular days.
Jack_Herrington:
Oh,
Tj_Vantoll:
And I
Jack_Herrington:
right.
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
don't
Paige_Niedringhaus:
Oh,
Tj_Vantoll:
look
Paige_Niedringhaus:
yeah,
Tj_Vantoll:
back fondly on either of those experiences,
Jack_Herrington:
you
Tj_Vantoll:
to be totally honest with you. So, for anybody that is, if you're completely lost about this, decorators are essentially a little, you put at whatever above a function. I think
Jack_Herrington:
you
Tj_Vantoll:
you can use them with classes as well.
Jack_Herrington:
It's definitely classes. I don't know about the functions. I think maybe functions, definitely class methods and classes.
Tj_Vantoll:
Okay, you could definitely use it on functions within like members of a class,
Jack_Herrington:
Yes,
Tj_Vantoll:
because
Jack_Herrington:
right.
Tj_Vantoll:
I'm looking at an example
Jack_Herrington:
Yeah.
Tj_Vantoll:
on here as well. So you put like above a class, like at like, I don't know, logging enabled or at
Jack_Herrington:
Uh.
Tj_Vantoll:
authorized or, and there's some mechanism to like plug into those decorators. It's you're quote unquote decorating the class with some functionality and doing that as opposed to like, to use Jack's example of authorized, like an if authorized check in the function. Instead, you
Jack_Herrington:
Thank you
Tj_Vantoll:
decorate
Jack_Herrington:
for reading.
Tj_Vantoll:
it and then whatever is consuming that class can look for whether that decorator is there to provide some functionality. But it's nice for simple examples like that. But in my experience using them at scale, people tend to get out of hand with these things. Java can get... I've seen
Paige_Niedringhaus:
You can
Tj_Vantoll:
classes
Paige_Niedringhaus:
have
Tj_Vantoll:
with
Paige_Niedringhaus:
ten
Tj_Vantoll:
a large
Paige_Niedringhaus:
or fifteen.
Tj_Vantoll:
your logic a little bit indirect. That's getting at like the AOP
Jack_Herrington:
Yeah.
Tj_Vantoll:
thing too, where it's like an if check is sometimes messy, but it's also very clear what it's doing. So
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
I'm curious to see what the JavaScript worlds take on this is though, because we do have, we're starting to get more and more features from the sort of Java-ish sort of, and I don't think it's ruined the language yet because we can safely ignore them if they're not actually providing value.
Jack_Herrington:
You know, it's crazy. I actually use this on a daily basis and I totally forgot about it. I use Type GraphQL, which is really great and it's a nice kind of mid layer and it makes your JavaScript object, turns them into TypeScript or GraphQL, it kind of annotates them with the GraphQL stuff, right? So that they're compatible and it's just really easy. And it seemed so seamless that I just kind of forget about it. where where it should be. But
Paige_Niedringhaus:
Hm,
Jack_Herrington:
yeah.
Paige_Niedringhaus:
So is this improvement more of something that library authors or going to care about,
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
or is this something that you, as a
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
job of script developer would,
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
or a typescript developer would actually use, Because I like you say, I've used decorators, but I don't think I've ever written one. So
Jack_Herrington:
No.
Paige_Niedringhaus:
is that something that just comes with the library, and you then can just annotate whatever at the top of a function or a class?
Jack_Herrington:
99% of the time yeah, yeah
Tj_Vantoll:
I think so, because I'm thinking back to you, Paige, because I remember doing spring stuff
Jack_Herrington:
you
Tj_Vantoll:
in Java, and those were the decorators that actually were somewhat useful. And that was, again, a library. I wasn't writing these myself. It's just
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
little ways I can annotate functions and get some magic behavior. So if you're a library out there, if you have an authorization library or something like that, I could see how this could be kind of nice. You could build a pretty slick API with this.
Jack_Herrington:
Yeah.
Tj_Vantoll:
Cool. There's some other stuff in here. I don't know. Like I always feel like they list like 12 different changes. We can link to this one as well, if you want to look through them. But yeah,
Jack_Herrington:
It's
Tj_Vantoll:
decorators
Jack_Herrington:
pretty inside
Tj_Vantoll:
coming
Jack_Herrington:
baseball.
Tj_Vantoll:
to TypeScript.
Jack_Herrington:
I don't know. Is it really worth a major version upgrade? They supported, they've been supporting Deckardist forever Like really?
Tj_Vantoll:
Yeah, I don't know. They do have a whole section in here about upgrade paths, because it's different than their experimental version of decorators.
Jack_Herrington:
Oh, okay.
Tj_Vantoll:
So I imagine the Angular people out there are going to have a fun time
Jack_Herrington:
Well, yeah, it's a question
Tj_Vantoll:
migrating
Jack_Herrington:
of whether it's
Tj_Vantoll:
from
Jack_Herrington:
different
Tj_Vantoll:
one to the
Jack_Herrington:
for
Tj_Vantoll:
other.
Jack_Herrington:
the user or whether it's different for the library author kind of thing.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
Hopefully
Tj_Vantoll:
Yeah.
Jack_Herrington:
it's just different for the library author and we don't have to deal with it.
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
Well, in the TypeScript, I will say the TypeScript team has been quite good about upgrading because I have not had many issues just bumping up versions.
Jack_Herrington:
Yeah.
Tj_Vantoll:
Like in fact, I can't think of a single time where I bumped up a version number and something like unexpected broke or happened. It's been pretty seamless when I've had to do this in the past.
Jack_Herrington:
Yeah.
Tj_Vantoll:
So.
Paige_Niedringhaus:
Good job type script
Tj_Vantoll:
Good on
Paige_Niedringhaus:
team,
Tj_Vantoll:
them for that at
Jack_Herrington:
Hahaha!
Tj_Vantoll:
least. Yeah.
Jack_Herrington:
Good going, guys! Keep it up!
Tj_Vantoll:
All right, next new version, SvelteKit
Jack_Herrington:
Woo!
Tj_Vantoll:
1.0,
Paige_Niedringhaus:
Yea,
Tj_Vantoll:
back in December. So Svelte is a recurring topic on the show. We might know
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
that we're somewhat fans of Svelte and SvelteKit is basically their project that adds some, like I always think of it as like the next JS
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
Exactly.
Tj_Vantoll:
for Svelte. So it adds like server-side rendering, a bunch of other stuff as well.
Jack_Herrington:
Page
Paige_Niedringhaus:
Hm,
Jack_Herrington:
file
Tj_Vantoll:
and
Jack_Herrington:
based page routing kind of thing.
Paige_Niedringhaus:
Yep,
Jack_Herrington:
Yeah.
Tj_Vantoll:
It's been out for a while, but it reached 1.0. So that's kind of exciting. I
Jack_Herrington:
you
Tj_Vantoll:
don't know if either of you have any thoughts on this, or if you've tried it out yet at all.
Paige_Niedringhaus:
I have not tried it out yet. I've read through the documentation. Um. That seems like the features are really exciting, but the thing that I think is most interesting are most exciting to me is that by reaching one point felt his kind of started to establish itself as something that could be used in production for companies or enterprise
Jack_Herrington:
Hmm.
Paige_Niedringhaus:
organizations. You know. it's It's really starting
Jack_Herrington:
Thanks
Paige_Niedringhaus:
to
Jack_Herrington:
for watching!
Paige_Niedringhaus:
add in all of the things that people typically tend to want. When they have an Apple Ten. It's going to scale or something that really needs to have consistent
Jack_Herrington:
you
Paige_Niedringhaus:
up time, or is well supported, and I think that this is a really good indicator that they're in the game and that they're going O stay around for a while, So you know I have, Like I said, I haven't had a big chance to try out all the new features yet. I'm really excited to. I just need to find some time and actually do it. Um, but I think it's a really good mark in their favor and a mark that People
Jack_Herrington:
you
Paige_Niedringhaus:
you know larger groups of folks are taking them seriously, and that they're thinking about the larger community and not just the niche spelt users who have used and loved the framework for a long time.
Jack_Herrington:
It's definitely gotten much more popular, you know, with definitely with the advent of SvelteKit because that's the missing ingredient of that. You know, you need that. A view framework is one thing, but you need the routing, you need all that. Send somebody a graph recently of like how svelte get was comparing to next. Yes, and the next yes the velocity is better Okay, whatever but of all of the alternative frameworks Svelte get is definitely doing the best of all of them and I played around I kind of played around to the weird parts Of it. I love to do that. It's like oh, I kind of get routing
Tj_Vantoll:
Hehe.
Jack_Herrington:
dig in all the weirder shit, I was sorry and
Tj_Vantoll:
Thanks for watching!
Jack_Herrington:
The one that I found was that like this form enhanced thing and the idea was you'd have a HTML form, you know, kind of method, post, I think, or whatever, and the fields and all that. And they give me imagine like a search box or something you haven't wrapped in a form and then you got inside of the table. And literally all you have to do is add on like use colon enhance. And it would automatically like you hit return on it and it would go and go off to the server, make the fetch, get the request back, and then update it in Boom, you don't have to do any React query, you don't have to do any of that. And if the person has JavaScript off, it just works because the browser just works well with that.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
And I like that. I like the whole, I like the remix and Svelte and Solid Start and Aster are kind of going back to, you know, some of the stuff, the basic web stuff was okay, you know, it works. Why are we, you know, why all this rigmarole of doing like batch and everything, you know, they don't need all that, right? Make it easy. Yeah, that's exactly what I'm thinking. I think
Paige_Niedringhaus:
Hm,
Jack_Herrington:
you're right.
Tj_Vantoll:
Yeah, I think I like Page's framing too, that I think this is a sign that it started to get more of a serious option because I mean, we had to make decision Page at our work on what framework to use for like right up
Jack_Herrington:
Thanks
Tj_Vantoll:
the
Jack_Herrington:
for watching!
Tj_Vantoll:
sweet spot of this and we went with Next.js,
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
but that was several months ago. Like if we were doing that today, we'd probably at least check this out, right? Evaluate
Paige_Niedringhaus:
Sure,
Tj_Vantoll:
it, see if it was a good fit.
Jack_Herrington:
And it's
Tj_Vantoll:
And
Jack_Herrington:
really
Tj_Vantoll:
so
Paige_Niedringhaus:
Hm,
Jack_Herrington:
exciting
Tj_Vantoll:
I think
Jack_Herrington:
because
Tj_Vantoll:
as
Jack_Herrington:
it starts
Tj_Vantoll:
it starts
Jack_Herrington:
to work
Tj_Vantoll:
to work
Jack_Herrington:
its
Tj_Vantoll:
its
Jack_Herrington:
way
Tj_Vantoll:
way
Jack_Herrington:
and it's really, really useful. Thank you.
Tj_Vantoll:
maybe it'll take off and start to give Next.js a run for its money. I guess
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
we'll see.
Paige_Niedringhaus:
and that reminds me one of the nice things or one of the things that I really liked about Spelt kit when I was reading through all of its stuff, is that it makes data
Jack_Herrington:
the the
Paige_Niedringhaus:
fetching simpler. It takes away. Is this a server rendered component? Is this a client rendered component? You just basically tell it. I need you to go get this data and it takes care of the rest. It doesn't you don't have to specify what type of a component. This is it? Just it just doesn't
Tj_Vantoll:
interesting.
Paige_Niedringhaus:
and that's so refreshing that I don't have to
Jack_Herrington:
I'm sorry.
Paige_Niedringhaus:
Air. It just does it for me.
Tj_Vantoll:
I remember, I remember Paige going down a rabbit hole with this. It's like the client versus server can be, it's powerful in next, but it can also be frustrating
Jack_Herrington:
Yeah!
Tj_Vantoll:
when you start to do that at scale. So.
Jack_Herrington:
Particularly when you're using the same language in both, right? You know, and
Paige_Niedringhaus:
Hm.
Jack_Herrington:
it's like, wait a second, hold on, which, where am I running right now? I don't know.
Tj_Vantoll:
Yeah,
Jack_Herrington:
What?
Tj_Vantoll:
you lose track of like, way crap. Where, like, what is this gonna be running on? Do I have to care? Like,
Paige_Niedringhaus:
Does
Tj_Vantoll:
it's...
Paige_Niedringhaus:
it serealize? Does it not
Jack_Herrington:
Oh my god, all the things.
Tj_Vantoll:
Yeah.
Jack_Herrington:
Just make it work.
Paige_Niedringhaus:
Actly
Tj_Vantoll:
All right, so I've got another framework for you all because yet another new version, we have Astro 2.0
Jack_Herrington:
Oh yes.
Tj_Vantoll:
from
Jack_Herrington:
Mm-mm-mm.
Tj_Vantoll:
late January. And Jack, I'm gonna, I know because when I searched for this, when I was researching
Jack_Herrington:
Woo!
Tj_Vantoll:
it, right on the front results was your video that
Paige_Niedringhaus:
Nice?
Tj_Vantoll:
walked me through building an app with some thumbnails and such. So I'm gonna let you take this one away. Why is Astro 2.0 cool?
Jack_Herrington:
Astro 2.0 is cool because Astro 1.0 was really cool and they've just extended
Tj_Vantoll:
Yeah.
Jack_Herrington:
it, made it even better. And what they've done is they've created this content collection API. So it's basically rolling a file-based CMS into the framework, right? So you can have a bunch of MDX files, which are amazing, super powerful, markdown. But with the X means that you can embed components and do... It's just awesome. And so imagine like if you've got a blog, you know, you could literally very quickly just add another file to add another entry. And then you can have other pages that would look at your blog entries and format them, make indices, you know, do all of that stuff for you. I think they actually have a blog starter right off the bat. And yeah, if you if you are okay with the file based CMS system, which I think is actually actually good. So the idea is fairly simple. It's like, if you set this up properly, you could have a GitHub repo with GitHub Actions that would go and deploy this Astr 2 site. And literally, you could be in GitHub. You could create a new PR with a new page in it, literally just typing out the content in the browser, hit, commit. It would fire up these GitHub Actions and deploy it. Boom. a CMS system right there. You know, that was one of the responses was like, why wouldn't they use a CMS, you all know, one of these 8,000 CMS vendors. And it's like, well, why would you? When
Paige_Niedringhaus:
Hm,
Jack_Herrington:
a file basis, I think people get into a mode where they're like, well, you need a CMS system. It's like, do you really? Let's talk about that.
Tj_Vantoll:
there's always a big sliding scale for that sort of thing because sometimes you need a traditional CMS, those they have their places, but almost always you need some ability to add a bunch of custom stuff on top of it or around it. I mean, unless,
Jack_Herrington:
I'm going to go ahead and turn off the camera.
Tj_Vantoll:
I mean, for some people, the right fit is just a CMS that you use to put some generic theme and put out there and it's fine. But I feel like for most corporations, you're going to have that branded, branded customized.
Jack_Herrington:
you
Tj_Vantoll:
around it, maybe like you've got like some content out, but then you need some widgets that need to go in it that have some
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
custom ways of working and finding the mesh between those two is always hard. Cause if you go pure CMS, it always feels like you're just hacking in the richer functionality. It's like, oh crap, how do I make this work in this WordPress site, right? And make it so this editor still works or on the flip side, if you go full, just like, oh, I'm gonna build this with Next.js or just raw react. CMS always feels a little bit icky because then it's like, I'm like bolting on this CMS and air quotes to make it work. So I feel like to me, at least this is where it's sweet spot is, is when you need like a customizable CMS,
Jack_Herrington:
Yeah.
Tj_Vantoll:
I guess, in a way.
Jack_Herrington:
Well, let me throw one out for a page here. So like Home Depot, if you're
Paige_Niedringhaus:
Hm,
Jack_Herrington:
building a page on how to refill your tires or whatever, but you want in there a tire finder because maybe your tires are bald and you need new tires so you want
Paige_Niedringhaus:
Right,
Jack_Herrington:
a tire finder in there.
Paige_Niedringhaus:
hm,
Jack_Herrington:
You could make a tire finder component and then just reference it inside that MDX file,
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
cool content and you've got the page, there's the image and all the blah blah blah blah blah. And then you've got this tire finder, which is a completely interactive, like widget thing that also upsells to getting your new tires right there. Right. So these are exactly what you're
Paige_Niedringhaus:
Hm,
Jack_Herrington:
saying. Like it's that beautiful, like, that's great. I don't know. It's such great. Try it out. It's really good. You'll love it. And it's
Paige_Niedringhaus:
Uh,
Jack_Herrington:
fast.
Paige_Niedringhaus:
uh,
Jack_Herrington:
Oh my gosh, it's so fast. Like if you if you don't have a page that has any JavaScript that's required on the client, Guess how much JavaScript goes to the client? Zero,
Paige_Niedringhaus:
Zero,
Jack_Herrington:
zero, none, nada.
Tj_Vantoll:
Yeah.
Jack_Herrington:
And that's where it should be. Like, I mean, everybody's going on about like, Next.js 13, React Server Components. Guess what? You boot up the Next.js RSC React Server Component demo page, and it's got, you know how much code it sends? 71K, or 74K of bundle to the client. For what? There's nothing happening on the client. Why are you sending this much? JavaScript.
Tj_Vantoll:
Yeah, unless you need it, right? Like, so if you're building something more of like a really rich application,
Jack_Herrington:
Right.
Tj_Vantoll:
then Astro probably isn't the best. I mean, you could definitely do it with Astro,
Jack_Herrington:
Yeah.
Tj_Vantoll:
but I feel like Next is a better fit for like, I have a bunch of stuff going on. Like this is a reasonably JavaScript heavy site, then
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
you need the stuff that that 70K of JavaScript is doing. You're using it in some fashion.
Jack_Herrington:
Sure, but that but next in the next just 12 does a really good job of that that's a highly interactive, highly dynamic sites, all that stuff, right. But next to 13 is supposedly getting us into this world of likes also being really good for static stuff. And yet even when it's all because of the React Server components. And even when it is all static, you're still getting the JavaScript out of the page.
Tj_Vantoll:
Well, I don't think they can totally divorce themselves of all of that, right? They're, you try to optimize it, but it's still a big heavy monster to try to
Jack_Herrington:
Right, exactly.
Tj_Vantoll:
throw it at the problem.
Jack_Herrington:
Can you make some divorce joke, you know? Take the keys, take the car,
Paige_Niedringhaus:
Oh,
Jack_Herrington:
take the kids. Ha ha ha.
Tj_Vantoll:
hahahaha
Tj_Vantoll:
All right, so I'm going down the list of, I think, the who's who of React frameworks. So next on our list is Gatsby. And the news with Gatsby is that Netlify has acquired Gatsby. And to read the headline, Netlify acquires Gatsby, Inc. to accelerate adoption of composable web architectures.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
Hmm
Tj_Vantoll:
So I did not see this news coming.
Jack_Herrington:
I'm me neither.
Tj_Vantoll:
I don't know. somewhat on the decline, I feel like, just not like dropped off drastically or anything, but it's certainly not the latest and greatest thing that everybody is yeah, that everybody's flocking to. These are private companies, so we don't have a great sense of like the actual business was Gatsby making money, were they in trouble? I don't think anybody, I don't think we're ever gonna publicly know that, but it is interesting to see like the VC, the business sidey, coming further becoming a part of our lives in the front end in the React world.
Jack_Herrington:
Yeah, I don't see a lot of people saying like, let's do dance me. Like, yeah
Paige_Niedringhaus:
Yeah, I mean we. I think that when we did our twenty twenty three predictions, we predicted that there would continue to be acquisitions of various frameworks,
Tj_Vantoll:
Uh, see? Yeah.
Jack_Herrington:
Acquisition
Paige_Niedringhaus:
But
Jack_Herrington:
Palooza.
Paige_Niedringhaus:
yeah, but I don't think that any of us ever said Gadsby when we were thinking it. But it kind of makes sense. You know, Versl has next J. S shop. If I has re, mix, Um, it. Just it kind of Starts to make sense. If you're going to have a dog in the React fight, you better buy your framework so that you can say it integrates the best with our platform, and therefore you should use it if you want to use our platform, and I'm a Netlify user. I'm also a Versel user. I'm not a shop. I user, don't have an online shop, But it's nice to know that if you, if you really want to be on a specific platform, or if you really want to use a specific framework, you have at least one platform That you know is going to integrate as seamlessly as possible, So I can see why they would go with Gasp, and Gadsby also has Gadsby Cloud, which was their enterprise version, so I'm sure Netlifys going to be takin some of that technology and rolling it into their own offerings. So you know I can definitely see some potential benefits for it It just remains to be seen how much they will try and push the Gaspy framework forward, or how much they will just try and integrate some of it
Jack_Herrington:
I think that's a good question
Paige_Niedringhaus:
Bigger enterprise offerings to make themselves more attractive to larger larger scale companies.
Jack_Herrington:
I think that's a good way to start a business.
Tj_Vantoll:
Yeah, Netlify has always been, I love using Netlify. They're kind of my go-to for hosting. But
Paige_Niedringhaus:
Hm.
Tj_Vantoll:
my concern with Netlify has always been I pay Netlify like basically zero money, which is, which is, I mean, which is cool right? Like, I mean, I, I'm getting a lot of value out of it, but also like, I like the tools i use to continue to exist
Jack_Herrington:
That's real good the tools that I use to exist.
Paige_Niedringhaus:
Great,
Jack_Herrington:
Yeah.
Tj_Vantoll:
Uh,
Paige_Niedringhaus:
Hm,
Jack_Herrington:
So I think if I read this, I think that I'm the right kid in the community. And I think as a developer, I think that we're an enterprise that is focused on this and I think that's why I'm here
Tj_Vantoll:
so I think like read this as them trying to get in the doors of some of these. little bit more of an enterprise focus than just Netlify's traditional business, which I feel is very just like open source, uh, individual developers sort of things. So I think I read this as them trying to get more into some more enterprise conversations, having some more enterprise tools at their disposal. And I guess best of luck to them because I like what they're doing and hopefully, hopefully this ends up working out for them.
Jack_Herrington:
I read this in the internet, right? It's
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
a good story around this, right? I mean, the whole thing was like you'd have these plugins that would then add additional material into this GraphQL schema for CMS, and then you would render your pages based on So, you know, you could swap out Prisma for whatever, you know, on the fly. And then, you know, if you got that open source story, I think that's really a good match. I mean, but how, what are the pickings out there, right? If you've got Remix, Next.js and Remix are always spoken for. You know, there's
Paige_Niedringhaus:
Hm,
Jack_Herrington:
Gatsby, there's Redwood.js. I don't know. You know, okay. There's that. There's Astro. You can grab Astro.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
I kind of think. other ones, but those are like the big big ones. I think Astro is getting more mindshare than it actually has deployed sites currently.
Tj_Vantoll:
So that is the end of our framework arc
Jack_Herrington:
Ha!
Tj_Vantoll:
in terms of updates. It's been a while, but it's also really cool, right?
Jack_Herrington:
Yeah!
Tj_Vantoll:
Like this is what you want. You want the competition, the frameworks evolving
Jack_Herrington:
you
Tj_Vantoll:
all the time. Cause at the end of the day, it just means better stuff for us to use. So
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
it's very cool.
Jack_Herrington:
It means a lot of choices. And
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
Yeah.
Jack_Herrington:
everybody wants to know what the number, which is the best. And it's like, no, that's a
Paige_Niedringhaus:
depends.
Jack_Herrington:
hard thing to say. Exactly, it depends. It
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
should be a motto of our podcast. It depends.
Tj_Vantoll:
That's a, and I think too that like that's to me, that's a sign of a healthy ecosystem.
Jack_Herrington:
It depends.
Jack_Herrington:
Yeah.
Tj_Vantoll:
And you, you want to be in that scenario. And we've had episodes before where we've talked about how to cope with that and how to deal with that and how to approach it in your day-to-day work, because I've been doing front end now for 15 ish years. And I remember the days of it was like, well, but backbones out and, uh, you know, there was those conversations and it's like, Oh, Moo tools or jQuery. it was
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
AngularJS or the initial React. conversations keep happening, but that's just a good thing. And part of your job as a front end developer is just learning to be comfortable in that sort of ecosystem, how to keep on top of things, how to keep from being overwhelmed.
Jack_Herrington:
I think that's a good question
Paige_Niedringhaus:
Yeah I've heard it described recently as we're living in a golden age of job, a script, and when you think about the amount of like you said, options and the new things that are coming online all the time, the new features, the new editions, the new, Just everything I, I could see that being a real accurate statement when I think about it, it's a great time to be a job, a script developer
Tj_Vantoll:
Yeah.
Jack_Herrington:
It is yeah
Tj_Vantoll:
Okay, so the last topic I have on my list, this is a Jack special,
Jack_Herrington:
Hahaha!
Tj_Vantoll:
because Jack was wrong about nested React components, and Jack also didn't realize that apparently this is a very controversial topic. So Jack, I'm gonna let you take it away and just describe your video and then sort of the reaction to it and the fallout from there.
Jack_Herrington:
Sure, the video title is classic clickbait. Basically, a couple of weeks earlier, I put out a video that talked about some different anti-patterns that I was seeing in React. And one of them was where people, I don't know if you've seen this, but where, like as an example, you might have like an app component. And so you got a function app, and then kind of within that, this is gonna be the container for your app, the frame. So it's got a header, it's got a footer, it's all that sort of stuff. And I've seen people go the header and the footer as functions within app, right? They do literally, instead of like importing them from somewhere else or defining them at the top level in the same file, they literally put them in the same component. And during, when the component renders, it defines a new header every time. And I think that's what people miss, is that they think that like, because the implementation is the same, the function is the same. I was like, in that video, I was like, ah, this is probably not a great idea, but I don't do it. But if you want to do it, it's okay. And then I did the actual numbers, actually ran some tests on it, and it was like, oh, no, this is not good. This is like your component is going to re-render every single time. And if you define any state in any of those nested components that you defined as nested components, like I want to separate this from React nesting of components like children and stuff. That's not that. This is like the definition of the component is nested. define these state in there that that states gonna reset every time and then the host app component re-renders which is probably not what you expect anyway so I created a much smaller video on like hey just don't do this you know kind of thing and a lot of folks are like I don't do this anyway I don't know you're nuts like I've never seen anybody do this like okay cool like I have and then there were a bunch of folks that are like this I do this all the time what And then they come up with all these different ideas like, oh, you could use memo. You could use a use memo to fix this or use a use callback to fix this. And I'm like, but why?
Tj_Vantoll:
Why?
Paige_Niedringhaus:
Right,
Jack_Herrington:
Like why,
Tj_Vantoll:
Yeah.
Jack_Herrington:
you're using a hook called use callback to make a new component. Does that not sound weird to you? Like use callback seems very specific to me to do a specific type of thing, a callback, right? And here you are using to make a new component. What, what? And so the why is and you know you drill down with a couple of you folks Why are you doing this and it's like no I want to just use I don't want to pass props. I'm lazy I don't like doing all the typescript definitions of all the props and everything literally and I'm like I just want to be able to reuse the local stuff in that state in that in the parent component the state and all That in my component. I just don't want to I don't want to deal with context. I don't want to deal with props I just want it and you're like whoa dude. That is like you're as a paradigm because you just don't like props.
Tj_Vantoll:
I've totally been guilty of this though,
Jack_Herrington:
Ha ha ha
Tj_Vantoll:
especially for simple things
Jack_Herrington:
Sure,
Tj_Vantoll:
right?
Jack_Herrington:
okay.
Tj_Vantoll:
Because it's like, why am I gonna externalize that? I could just initialize it right here. It's got three things, subjectively in my head, it's cleaner to mentally parse when it's all right there and I don't have to pass anything and it's right there. But I can see, you also kind of know, I should probably abstract this. I should probably,
Jack_Herrington:
Ah yeah.
Tj_Vantoll:
telling you that I'm doing the quick and dirty thing. If I'm doing it for a little demo thing where the performance isn't going to make or break anything, then sure. But if this is something that's going to scale or is used in an actually important app, I should probably take the work to
Jack_Herrington:
you
Tj_Vantoll:
make it external, bring it
Jack_Herrington:
you
Tj_Vantoll:
in, pass the props appropriately.
Paige_Niedringhaus:
Yeah, re.
Jack_Herrington:
you
Paige_Niedringhaus:
factor it. add the type script types don't be lazy.
Jack_Herrington:
Don't be lazy. And I think it's as a senior engineer, we're always trying to like, I don't know about you guys, but like, like they do the principle of least surprise. I don't like code that's cute. I don't want it to do
Tj_Vantoll:
Yeah.
Jack_Herrington:
weird stuff. And in this
Paige_Niedringhaus:
Hm.
Jack_Herrington:
case, if I were to go in and just randomly add a use state to the header to just track the cart count or whatever, and then that state were to just get vanished every time I'd be like, what the heck is going on?
Tj_Vantoll:
Yeah.
Jack_Herrington:
see defined header inside of app. The other thing is like these, these components just get monster. If you do that, if you create like an app component
Tj_Vantoll:
That,
Jack_Herrington:
that's got like 15
Tj_Vantoll:
yeah,
Jack_Herrington:
components
Tj_Vantoll:
yeah.
Jack_Herrington:
in it, it's
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
huge, huge.
Tj_Vantoll:
I was going to say that's usually why I end up regretting it, is because I start by saying,
Jack_Herrington:
Oh, it's
Tj_Vantoll:
oh,
Jack_Herrington:
very
Tj_Vantoll:
well,
Jack_Herrington:
small.
Tj_Vantoll:
this is simple.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
Right.
Jack_Herrington:
It's super small.
Tj_Vantoll:
It's just in line. What could happen? Then another feature request comes in. It's like, oh, well, it's
Jack_Herrington:
Just
Tj_Vantoll:
right
Jack_Herrington:
a little
Tj_Vantoll:
here.
Jack_Herrington:
more.
Paige_Niedringhaus:
I'll just
Tj_Vantoll:
It's just,
Paige_Niedringhaus:
tack
Tj_Vantoll:
hey.
Paige_Niedringhaus:
it on. It's fine.
Jack_Herrington:
Just take it on. That's
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
not gonna hurt anybody.
Paige_Niedringhaus:
suddenly you have stayed in every component all the way down
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
the line.
Jack_Herrington:
Suddenly you got like a 500 line component and you're like, ooh, when did that
Paige_Niedringhaus:
I want
Jack_Herrington:
happen?
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
to re factor that.
Jack_Herrington:
Yeah, it's probably not good.
Tj_Vantoll:
Ah, well,
Jack_Herrington:
Those are the
Tj_Vantoll:
this
Jack_Herrington:
days.
Tj_Vantoll:
has been a lot of fun. Do we have any other news, anything else that we want to get out there? Otherwise we can, we'll have to do another one of these. I think it's a good time to catch up on the latest and greatest happenings, but anything else that I've missed, that we haven't covered?
Jack_Herrington:
No, I think
Paige_Niedringhaus:
I think
Jack_Herrington:
we're.
Paige_Niedringhaus:
that's about it. for now. I'm sure there will be new stuff next week, but I think
Tj_Vantoll:
Yeah,
Paige_Niedringhaus:
we're up to date.
Tj_Vantoll:
JavaScript world doesn't sleep.
Paige_Niedringhaus:
Never.
Jack_Herrington:
No, it doesn't.
Tj_Vantoll:
Cool. Well, with that, why don't we head into our picks, which we pick something from around our lives, music, movies, kitchen utensils quite often. And Jack, do you want to kick us off today?
Jack_Herrington:
Yeah, sure. My pick is actually right at my hand. It's a Logitech vertical mouse. And, you know,
Tj_Vantoll:
A vertical
Jack_Herrington:
a vertical
Tj_Vantoll:
mouse.
Jack_Herrington:
mouse, right? It's like you hold it kind of up, you know, kind of, and you move it around. And it's,
Tj_Vantoll:
Whoa.
Jack_Herrington:
whoa, and it's supposedly more ergonomic. And I would think I was moving my daughter from, you know, an apartment to moving, whatever. I'm in the U-Haul and the guy's got a vertical mouse. I'm like, hey, is that any good? And he's like, yeah, actually, it's really good.
Tj_Vantoll:
Hehehe
Jack_Herrington:
I tried it out and he's right. It's great. I don't get any wrist pain. I don't get anything. It feels good. Works great. The only problem is like every once in a while I just kind of chuck it like randomly. Like my hand just sort of hits it because it's taller than the older mouse and it just sort
Paige_Niedringhaus:
Hm.
Jack_Herrington:
of tumbles,
Tj_Vantoll:
Oh yeah.
Jack_Herrington:
flies and then the battery case just pops out and like batteries over here. Whatever, it's a mess. But other than that, it's great.
Tj_Vantoll:
I might have to check that out because I have had wrist pain in the past and like when my Mouse wrist starts to hurt. I'll just switch hands and just switch Use the mouse in the other hand for a bit, but it's not the greatest solution. So
Jack_Herrington:
And all this
Paige_Niedringhaus:
Wow,
Jack_Herrington:
ergo
Tj_Vantoll:
I might
Jack_Herrington:
stuff,
Tj_Vantoll:
have to check
Jack_Herrington:
there's
Tj_Vantoll:
that
Jack_Herrington:
always
Tj_Vantoll:
out
Jack_Herrington:
that time, right? It's like, oh, I'm going to have to invest a week just to make it feel comfortable and blah, blah, blah, blah. This was comfortable in seconds. It was like,
Paige_Niedringhaus:
Nice,
Tj_Vantoll:
Hmph.
Jack_Herrington:
it was an improvement that I, it was just done.
Tj_Vantoll:
It's just interesting because I've never seen one before.
Jack_Herrington:
Oh,
Tj_Vantoll:
It's kind of fascinating.
Jack_Herrington:
yeah. Yeah, it's very cool.
Tj_Vantoll:
Cool. Paige, what picks do you have for us?
Paige_Niedringhaus:
My pick Today is going to be a new series. Well, it's not
Jack_Herrington:
you
Paige_Niedringhaus:
a new new series but it's one that's new to me and it's called. I think we might have talked about it before. Actually, it's called Only Murders in the building
Jack_Herrington:
Mmm. Mm-hmm.
Paige_Niedringhaus:
and it's got
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
Martin Shine and Steve Martin and Selina Gomez, and
Jack_Herrington:
you
Paige_Niedringhaus:
I just started watching it a couple of nights ago, But there's cameos by people like Nathan Lane and Tina Fay, And it's It's awesome. Sting.
Jack_Herrington:
Oh, wow. Oh, right.
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
Yes, I remember
Paige_Niedringhaus:
yeah,
Jack_Herrington:
that. That was hilarious.
Paige_Niedringhaus:
there's there's big names. The plot so far has been really good. There's a lot of references to pop culture like there's this podcast, a true crime podcast in the actual show that is very similar
Jack_Herrington:
for the stereo.
Paige_Niedringhaus:
to serial. Um, so
Jack_Herrington:
So it's funny to see
Paige_Niedringhaus:
it's funny to see kind of
Jack_Herrington:
kind of the thing that they put in the
Paige_Niedringhaus:
them making a little bit of fun of that
Jack_Herrington:
back of the ad and then
Paige_Niedringhaus:
and and playing off
Jack_Herrington:
playing it. So it's
Paige_Niedringhaus:
of it. So it's if you're looking
Jack_Herrington:
if you're looking at the history
Paige_Niedringhaus:
for kind of mystery,
Jack_Herrington:
of the industry
Paige_Niedringhaus:
Done it with a lot of humor
Jack_Herrington:
and the way they've done it
Paige_Niedringhaus:
in it. I would say that this is definitely
Jack_Herrington:
and the way they've done it.
Paige_Niedringhaus:
one. I think there's two or three seasons at this point, so
Jack_Herrington:
I think it's just
Paige_Niedringhaus:
some
Jack_Herrington:
two.
Paige_Niedringhaus:
good watching
Jack_Herrington:
And then I just haven't watched the second one yet.
Paige_Niedringhaus:
M.
Jack_Herrington:
But.
Paige_Niedringhaus:
M.
Tj_Vantoll:
The second season is also pretty good
Jack_Herrington:
Cool.
Tj_Vantoll:
and it leaves on a cliffhanger so they're
Jack_Herrington:
you
Tj_Vantoll:
definitely planning on coming back. So
Paige_Niedringhaus:
Nice,
Tj_Vantoll:
yeah, that was a good one. We watched it as well.
Paige_Niedringhaus:
Cool,
Tj_Vantoll:
My pick this week is a classic. I'm going to pick the Sixth Sense.
Jack_Herrington:
Ha!
Tj_Vantoll:
So
Paige_Niedringhaus:
Very classic,
Tj_Vantoll:
we ended up rewatching this to
Jack_Herrington:
with
Tj_Vantoll:
show
Jack_Herrington:
your
Tj_Vantoll:
it to
Jack_Herrington:
kids
Tj_Vantoll:
our kids
Jack_Herrington:
and it's
Tj_Vantoll:
and
Jack_Herrington:
a
Tj_Vantoll:
it holds
Jack_Herrington:
lot of
Tj_Vantoll:
up
Jack_Herrington:
fun.
Tj_Vantoll:
amazingly. It's one of those movies where if you know, you know, so
Jack_Herrington:
Ha
Tj_Vantoll:
it's,
Jack_Herrington:
ha ha.
Tj_Vantoll:
but if you haven't watched it in a while or if you've never seen
Jack_Herrington:
Thanks for watching!
Tj_Vantoll:
it before, absolutely go check it out. And even if you haven't watched it in a while, like I hadn't, it's definitely worth the second watch. It was a lot of fun.
Jack_Herrington:
Are you an M. Night Shyamalan fan?
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
Kind of. There's some of his other movies, like I thought Signs was pretty good,
Paige_Niedringhaus:
Hm.
Tj_Vantoll:
but then his movies kind of tapered off for a while. I have not seen the latest one because there's one that just
Jack_Herrington:
Yeah,
Tj_Vantoll:
hit
Jack_Herrington:
the
Tj_Vantoll:
theaters
Jack_Herrington:
cabin
Tj_Vantoll:
as
Jack_Herrington:
in
Tj_Vantoll:
we're
Jack_Herrington:
the,
Tj_Vantoll:
recording this.
Jack_Herrington:
what is it? It's Knock at the
Tj_Vantoll:
Knock
Jack_Herrington:
Cabin.
Tj_Vantoll:
at the door.
Jack_Herrington:
Not to be confused with Cabin in the Woods, it's a hilarious movie. Knock at the Cabin
Tj_Vantoll:
Okay.
Jack_Herrington:
is the, yeah, it's a new one. He,
Tj_Vantoll:
I haven't seen it. I don't know if either of you have, I thought the reviews were kind of like, which is
Jack_Herrington:
he, he, he, he,
Tj_Vantoll:
kind
Jack_Herrington:
he, he, he, he,
Tj_Vantoll:
of
Jack_Herrington:
he, he, he, he, he, he, he, he, he, he, he,
Tj_Vantoll:
the
Jack_Herrington:
he, he, he, he,
Paige_Niedringhaus:
M.
Tj_Vantoll:
pretty standard for him lately,
Jack_Herrington:
he, he, he, he, he,
Tj_Vantoll:
but.
Jack_Herrington:
he are on a path to minus zero negative Rotten Tomatoes score because like they had this like Linear progression
Tj_Vantoll:
Yeah.
Jack_Herrington:
of like just boom
Paige_Niedringhaus:
Oh
Jack_Herrington:
boom
Paige_Niedringhaus:
dear.
Jack_Herrington:
boom But yeah, Sixth Sense is a great one But I think I saw one where it was like they're on a beach and they're aging like really fast on
Tj_Vantoll:
Yep.
Jack_Herrington:
the beach That one was
Tj_Vantoll:
Old.
Jack_Herrington:
old Yeah,
Tj_Vantoll:
Yeah.
Jack_Herrington:
that was not great
Tj_Vantoll:
Yeah, it's been a slow progression downwards. I've seen
Jack_Herrington:
Thanks for watching!
Tj_Vantoll:
most of them actually. Lady in the Water was really
Jack_Herrington:
Oh...
Tj_Vantoll:
bad. There was one with an elevator that was not that great that I saw. So
Jack_Herrington:
Thanks for watching!
Tj_Vantoll:
people keep giving him money to make these things though. So
Jack_Herrington:
How
Tj_Vantoll:
it's
Jack_Herrington:
does
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
that
Tj_Vantoll:
like,
Jack_Herrington:
happen?
Tj_Vantoll:
that's how desperate we are.
Jack_Herrington:
How?
Paige_Niedringhaus:
yeah,
Tj_Vantoll:
And I've seen a lot of them. So I'm part of the problem. And I think it's, you're just clinging on to like, maybe he can find it again.
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
We keep complaining about like, oh, this is MCU film, 85,000, and it's the same thing over and over and over again. And then we're like, and then you got this guy who's doing different content, right? And
Paige_Niedringhaus:
Hm,
Jack_Herrington:
then we're like, oh, he's terrible. Like, I don't think we're easy to please.
Paige_Niedringhaus:
No,
Jack_Herrington:
I think it's us.
Tj_Vantoll:
No,
Jack_Herrington:
I think
Tj_Vantoll:
no.
Jack_Herrington:
it's us.
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
Yeah.
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
I mean, that's why we're doing re boots of everything. We can't come up with new good original ideas, so we're just going to remake old popular movies now, roadhouse
Jack_Herrington:
Right.
Paige_Niedringhaus:
dirty dancing,
Jack_Herrington:
Oh, they're
Paige_Niedringhaus:
All stores
Jack_Herrington:
re-
Paige_Niedringhaus:
of stuff
Jack_Herrington:
are they redoing Roadhouse? No way.
Paige_Niedringhaus:
they are,
Jack_Herrington:
Oh my- why? And
Tj_Vantoll:
Take.
Jack_Herrington:
they're redoing Columbo with Pokerface and it's...
Paige_Niedringhaus:
Uh,
Jack_Herrington:
okay,
Paige_Niedringhaus:
uh,
Tj_Vantoll:
There's
Jack_Herrington:
I guess.
Tj_Vantoll:
a new Indiana Jones movie coming out.
Paige_Niedringhaus:
That's
Tj_Vantoll:
I just
Paige_Niedringhaus:
true
Tj_Vantoll:
saw the preview for that, which I don't even know how that's gonna happen, but
Jack_Herrington:
AI.
Tj_Vantoll:
apparently it
Paige_Niedringhaus:
Movie
Tj_Vantoll:
is.
Paige_Niedringhaus:
magic, exactly.
Jack_Herrington:
Movie. A lot of a
Tj_Vantoll:
Yeah.
Jack_Herrington:
lot of the aging and movie magic. Yeah, absolutely.
Paige_Niedringhaus:
Hm,
Jack_Herrington:
Apparently this one they really really really get it right this time. Believe us.
Tj_Vantoll:
Yeah.
Jack_Herrington:
It doesn't look like Gollum. But even Gollum was actually better than some of the other ones.
Paige_Niedringhaus:
Hm,
Tj_Vantoll:
All right, well, this was a lot of fun as
Jack_Herrington:
Absolutely.
Tj_Vantoll:
always. It was great catching up with all of you,
Jack_Herrington:
Yeah.
Tj_Vantoll:
getting up on the latest and greatest React news.
Paige_Niedringhaus:
Oh,
Tj_Vantoll:
And yeah, so until next week, thanks everybody.
Jack_Herrington:
See you next time