Paige_Niedringhaus:
Hello everyone, welcome to another episode of React Roundup. I will be your host today, Paige Neidringhouse, and I am joined by our panelist, Jack Harrington.
Jack_Herrington:
Hello there.
Paige_Niedringhaus:
And our special guest today is Attila Fasina. Welcome Attila.
Attila_Fasina
Hi, thanks for having me. And yeah, I'm looking forward to have a nice chat with you folks.
Paige_Niedringhaus:
we are as well. So Attila, for anybody who has not met you before, maybe you could tell us a little bit about yourself, why you're famous, and what we're planning to talk about today.
Attila_Fasina
Yeah, so I'm not sure about the famous part.
Paige_Niedringhaus:
Ha
Jack_Herrington:
That's
Paige_Niedringhaus:
ha
Jack_Herrington:
what
Paige_Niedringhaus:
ha.
Jack_Herrington:
everybody says
Attila_Fasina
But
Jack_Herrington:
I love it
Attila_Fasina
yeah, so.
Jack_Herrington:
somebody somebody somebody's gonna come on and say I'm famous because
Paige_Niedringhaus:
Ha ha
Jack_Herrington:
You
Paige_Niedringhaus:
ha!
Jack_Herrington:
know
Attila_Fasina
Yeah, I guess I'm famous for whoever knows me
Jack_Herrington:
There you go,
Attila_Fasina
but yeah
Jack_Herrington:
exactly,
Attila_Fasina
anyway
Jack_Herrington:
you're famous to us.
Paige_Niedringhaus:
Exactly.
Attila_Fasina
So currently I work at Zata, which is a serverless database and
Jack_Herrington:
Hmm.
Attila_Fasina
we're still in closed beta. We're very close to go to open beta and I'm working on the dev rel team as a developer experience engineer. And yeah, I've been, I like writing articles. Most of them are on Smashing Magazine. Most cases about... Next.js, React. There's a new one about serverless databases. Hitting anytime soon. It's a series about database for frontend developers.
Jack_Herrington:
Mmm, ooh!
Attila_Fasina
And yeah, and... I like whenever somebody gives me a microphone, I talk a lot. That's what I'm doing
Paige_Niedringhaus:
I'm sorry.
Attila_Fasina
now. I show up at conferences when I can. Last one, been Norway talking about remakes and optimistic UI, which, as I heard, is something that you folks are interested too in talking about. So
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Yeah,
Attila_Fasina
yeah,
Jack_Herrington:
let's talk about
Attila_Fasina
that's
Jack_Herrington:
remix.
Attila_Fasina
what I've been up to.
Jack_Herrington:
Yeah, so last time we talked about next JS and here you are and you can talk about remix and I think for a lot of folks. You know, like next chance is such a standard. Like why won't one? Why? What is remix? Why is it cool? Why would I want to use it?
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Why,
Paige_Niedringhaus:
Ha ha
Jack_Herrington:
why, why, why, why?
Paige_Niedringhaus:
ha.
Attila_Fasina
Yeah, so the first thing that I saw a lot of people doing and I'm guilty of doing that myself was when figuring out what remix is about, we immediately jump in and comparing to Next.js.
Jack_Herrington:
Mm-hmm.
Attila_Fasina
Yeah,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Yeah, oh yeah.
Attila_Fasina
and they do like, though like, yeah, they have very similar use cases in some points and... different opinions on how to do same stuff sometimes, but they do have some very nice differences that I found a place in my heart for both of them. So
Jack_Herrington:
Hmm
Attila_Fasina
I do like both of them quite a lot and... I think that now the layouts RFC on XJS brings them a little bit closer together. It's going to encourage a little bit more comparison even. Because one thing that to me set Remix apart when it came out was the partial routing. So how they do routing in the Remix app was quite interesting to me. big chunk of complexity when you're migrating from a vanilla React app like if you created something with Create React app and you want to go like on a more serverless, gemstack way, more performance friendly stuff like that and if you build your app with Create React app, bigger chances are you use React Router and Remix was compatible
Jack_Herrington:
Mm-hmm.
Attila_Fasina
out of the box with React Router.
Jack_Herrington:
From the guys from ReactRider.
Attila_Fasina
Exactly.
Paige_Niedringhaus:
Right.
Attila_Fasina
So,
Jack_Herrington:
Yeah.
Attila_Fasina
um. So that was something that was speaking volumes to me because at the time it came out, I was actually planning on break a React app to use something like Next.js or Remix to go like serverless routes, but not intended, sorry, serverless paths, lifestyle, whatever.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
And then when Remix came out, I said, oh, that just takes my biggest problem out of me. Like I don't need to dig into the app system
Jack_Herrington:
It's
Attila_Fasina
which
Jack_Herrington:
baked
Attila_Fasina
is
Jack_Herrington:
in.
Attila_Fasina
always good. So that was the first thing to me that caught my attention with Remix. I do like a lot how they handle the mutation story, like how they manage pushing data from
Jack_Herrington:
Hmm.
Attila_Fasina
your app to the server, which is
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
something like out of the box quite unique I guess so far. I don't know. about many other frameworks, but at least Next.js, you eventually need something like, I don't know, SWR or React query, something
Paige_Niedringhaus:
Yep.
Attila_Fasina
like that to handle the states when you're pushing. And Remix kinda does that out of the box with how they handle forms and the action functions and things like that. So that was quite appealing. So yeah.
Jack_Herrington:
Can I can we dig down a little bit on these though? Because I think you're you're skimming over them like like you would like
Attila_Fasina
Yeah.
Jack_Herrington:
the person on the other end knows what you're talking about, like
Attila_Fasina
Yeah,
Paige_Niedringhaus:
Hehehe
Attila_Fasina
I'm
Jack_Herrington:
like
Attila_Fasina
just...
Jack_Herrington:
partial routing. What are you talking
Paige_Niedringhaus:
Right.
Jack_Herrington:
about? Like
Paige_Niedringhaus:
Heh
Jack_Herrington:
there's
Attila_Fasina
So
Jack_Herrington:
routes.
Paige_Niedringhaus:
heh.
Jack_Herrington:
What is a partial
Attila_Fasina
I'm setting
Jack_Herrington:
route?
Attila_Fasina
the landscape
Jack_Herrington:
Half a route.
Attila_Fasina
and you tell me where you want to dive.
Jack_Herrington:
Oh, OK.
Attila_Fasina
So
Jack_Herrington:
Oh, let's
Paige_Niedringhaus:
Okay.
Jack_Herrington:
dive in on partial routes and maybe dive in on this mutation thing.
Attila_Fasina
yeah,
Paige_Niedringhaus:
Yeah.
Attila_Fasina
both of you are the maestro of this conversation. So you tell me,
Paige_Niedringhaus:
Hehehe
Attila_Fasina
oh, that's something you're interested in. Otherwise, I'll just go like very big salesman and you tell
Jack_Herrington:
Ha ha
Attila_Fasina
me.
Jack_Herrington:
ha ha!
Attila_Fasina
And
Paige_Niedringhaus:
Ha
Attila_Fasina
yeah,
Paige_Niedringhaus:
ha ha.
Attila_Fasina
you're not interested in this conversation. It's 15 minutes.
Paige_Niedringhaus:
Ha ha
Attila_Fasina
No,
Paige_Niedringhaus:
ha!
Attila_Fasina
but. Yeah, so the partial routing is interesting because then you can have like these nested routes, which you don't need to reload or rerender the entire app when navigating that makes it easier for you to handle your resources when you're doing this navigation. So, and share layouts in most cases. So,
Paige_Niedringhaus:
So can
Attila_Fasina
somebody.
Paige_Niedringhaus:
you give us kind of an example of how you might visualize a nested router, what that might look like for a user in the browser?
Attila_Fasina
Yeah, so for example, I think the most classic example that most people are going to be able to relate to is a dashboard. where in the dashboard you have all those different views and you can navigate the views and only refresh part of it, which essentially leads to a smaller payload, which leads to some resource optimizations. And then you come to those like web vitals where the last waterfall your resource loading is, like as many resources you can load in parallel. better and by breaking down your routes into smaller segment paths it allows you to organize them and fetch them in parallel because they don't have like dependencies in within your application logic so I think that's that's a nice a nice view for example if you're like I don't know in an amazon for example you have your dashboard you have your orders view you have account and you don't need to reload the whole app whenever you're switching those tabs sort of I don't know if that makes it clear or if you want
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
to expand on this
Jack_Herrington:
Yeah, I mean, okay, I think that's actually really cool. I mean, I would love to dig more down that, but you also mentioned the mutation thing, like
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
Yeah,
Jack_Herrington:
how the mutations are different.
Attila_Fasina
so Remix has different ways of handling mutation. They bring some hooks out of the box to handle some mutations. So in the first case, you get like the use action data, which like on Remix, every time you're handling data, you have like the get method, which is the one that runs on fetch. that calls like to a loader function, which is... you can compare that to a get static props or a get server-side props on xjs if that
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
helps your mental model and those are the ones that are going to handle every get request and then for all the other verbs, so post, put, delete, and I always forget one patch,
Paige_Niedringhaus:
patch.
Attila_Fasina
you...
Jack_Herrington:
Hatch! Oh, yeah.
Attila_Fasina
You use the action, the loader action, not the loader action, sorry, the action function on the server side. So you have a few hooks that help you connect to it. One of them being the first one being the use action data, which is going to help you get whatever is going to return from this. So you get the payload from the, with the use action data and you can respond to this. you have the use transition which is going to happen every time you do like one of these post requests it's going to provide you with some it's going to allow you to have the pending UI so it can get you into a loading state for them but still it doesn't it doesn't how can I put it So it's whenever, like, and please, an important thing to do now is to not confuse that with the use transition hook that's in React 18. Like there's the
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
use transition in React 18, and there's the use transition on Remix. I think at some point they are going to have to arm wrestle for that namespace.
Jack_Herrington:
Ha
Paige_Niedringhaus:
Hehehe
Jack_Herrington:
ha ha ha ha ha ha!
Attila_Fasina
But yeah, they are different. So they use transition, just to rephrase that, because I got like... I put my hand through my feet at that point. This transition is going to be triggered every time there is a route transition. And they have this, this transition is going to give you some life cycles where you can use implement the pending UI. So that's what I mean. That's part, that's the biggest part of what I mean when I say that Remix has a very nice story for handling the mutation part where... Out of the box, just with Remmix's dependency, you can have a pending UI with the use transition, for example. And then you can go to even more complex use cases with the use fetcher, for example, where you not only get the transition, but you can also use the use fetcher to not do the navigation. So then your Remix app starts having a very single page application behavior, where then it's just going to fetch the resources, but it's not going to navigate. So with that, you can get the optimistic UI behavior where you don't need to wait for the round trip to the server to say to the user, oh that's what you requested, so yeah we did it and you're running that under the hood and if something fails you can prompt the user to retry or something else or if it succeeds the user doesn't know so you get that instant feeling. So Remix got did a lot of work on I'm missing the word here. Like they were very passionate about the way they can handle optimistic UI and they were very vocal
Jack_Herrington:
Mm-hmm.
Attila_Fasina
about it.
Jack_Herrington:
Yeah, yeah, yeah, yeah,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
yeah. Yeah.
Attila_Fasina
to the point that a lot of people started talking remix and optimistic UI together, as
Paige_Niedringhaus:
Mm.
Attila_Fasina
they were like, as optimistic UI was like a remix thing, but it's a web thing. You can do
Paige_Niedringhaus:
Right.
Attila_Fasina
that with any other frameworks. The biggest thing is that remix makes it dead easy to implement. And then another part of how they handled is that they have this form component within remix that's supposed to be used with with these hooks that they have and This react this form component Has this fallback that Obviously goes back to a form element. So it helps you use in a node JS environment, but then also you can in HTML almost have your API, I'm doing air quotes in a podcast, but
Jack_Herrington:
Hahaha
Attila_Fasina
schema almost in a declarative way on HTML because you're basically with the inputs, you're defining how the data that it's coming back from that form submission going to look like, which
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
is also very interesting once like you go past that, maybe if you're... as old as I am and you've been through working with form submissions to go to single page applications you kind of don't want to go back to form submissions. You know?
Jack_Herrington:
Yeah,
Paige_Niedringhaus:
Right.
Jack_Herrington:
yeah. You're so used to doing fetch for everything. Like you
Attila_Fasina
Yeah.
Jack_Herrington:
know,
Paige_Niedringhaus:
Right.
Jack_Herrington:
oh, I got to get data over the server. It's like, wait, a form? What is a form tag?
Attila_Fasina
Yeah,
Paige_Niedringhaus:
I'm
Jack_Herrington:
Wait, what?
Attila_Fasina
it's a similar
Paige_Niedringhaus:
sorry.
Attila_Fasina
feeling
Jack_Herrington:
Because I don't even
Attila_Fasina
of...
Jack_Herrington:
teach it anymore.
Attila_Fasina
It's a very
Jack_Herrington:
And now
Attila_Fasina
similar
Jack_Herrington:
it's like, whoa.
Attila_Fasina
feeling when React came out with the on-clicks and we were like,
Paige_Niedringhaus:
Mm-hmm
Attila_Fasina
no,
Jack_Herrington:
Yeah!
Attila_Fasina
no! Yeah,
Paige_Niedringhaus:
and on submit. Yeah
Attila_Fasina
so these forms are actually nice to use because essentially they take out the complexity of... handling when the cases that they don't work properly
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
or optimizing the forms to like a single page application scenario. So you can use those with the remix hooks and it looks a lot like HTML. So that's a nice thing when you're learning remix. A lot of the times you see yourself going back to App Fundamentals.
Jack_Herrington:
Yeah,
Paige_Niedringhaus:
Yeah.
Attila_Fasina
Because
Jack_Herrington:
yeah.
Attila_Fasina
Ryan Florence says a lot like when they're like when you're watching his remix singles and stuff like that. He goes, That's what the web should do and that's what we're doing here. We're not reinventing
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
anything. We're just doing the same
Paige_Niedringhaus:
Yeah.
Attila_Fasina
So I like that about remix That's something that to me is very appealing on it. And the fact that they just take the web APIs and make it work on this single page, native feeling, heavy JavaScript client-side environments.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
I think that another thing that Remix got famous for is that it worked with Node.js, but that's kind of a byproduct, I think. I'm not them to say it, but I think it's a nice byproduct because they were just focusing on the web,
Jack_Herrington:
Yeah.
Attila_Fasina
on the web platform.
Paige_Niedringhaus:
Yeah. So one thing that you mentioned early on was that in Next.js, there's something called layout RFC, I believe.
Attila_Fasina
Yeah, the layout
Paige_Niedringhaus:
So
Attila_Fasina
of the RFC is pretty
Paige_Niedringhaus:
could
Attila_Fasina
nice.
Paige_Niedringhaus:
you tell us a little bit about that? I'm not familiar with that and it may be, maybe a new, a
Attila_Fasina
Yeah,
Paige_Niedringhaus:
Next feature.
Attila_Fasina
so basically I think a lot of people thought like me when Remix came out with the React router and partial routing and all these things we've been talking for so long. Everybody thought that was a good idea. And Next.js has this RFC, which stands for Request for Comments. So they have a blog post on their website. And there is an open discussion on the Next.js repository. And they're basically refactoring the whole routing system from the ground up, but in a backwards compatible way. So the way it goes now. React 18 and server components are going to take a front row seat with that. So if you're familiar with Next.js, you're used to declaring your routes on the pages directory.
Jack_Herrington:
Yeah.
Attila_Fasina
So this
Paige_Niedringhaus:
Right.
Attila_Fasina
RFC brings the apps directory. And in the apps directory, everything is like, trying to put it in simple terms, everything is server side first.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
The components are supposed to be server components and everything's supposed to be rendered on the server side and then sent to the client to be hydrated.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
So everything is like very edge first, pretty much in the... I hate being the guy doing this. It's pretty much like Remix is doing as well. Like I don't
Paige_Niedringhaus:
Ha ha
Attila_Fasina
like
Paige_Niedringhaus:
ha
Attila_Fasina
compare
Paige_Niedringhaus:
ha
Attila_Fasina
them, but
Paige_Niedringhaus:
ha ha
Attila_Fasina
they
Jack_Herrington:
Well,
Attila_Fasina
do have
Jack_Herrington:
I mean,
Attila_Fasina
very
Jack_Herrington:
they're
Attila_Fasina
nice,
Jack_Herrington:
both server frameworks,
Attila_Fasina
good...
Jack_Herrington:
so it's hard not to.
Paige_Niedringhaus:
They're doing
Attila_Fasina
Yeah,
Paige_Niedringhaus:
the same stuff, yeah.
Jack_Herrington:
Yeah.
Attila_Fasina
like... I'm highlighting how they do things that I like the same way, more or less, which I think is good for us users. Like if you end up jumping from framework to framework, you don't want to learn a whole new language every time.
Paige_Niedringhaus:
Yeah.
Attila_Fasina
Everybody wins with that. But essentially, like with this, it goes like server side first. And what they're doing is... For a few obvious reasons, they have some people that are in the React core team working inside Vercell, which is the maintenance of Next.js, but they're very much aligned with what React 18 is doing and they plan to leverage React Suspense out of the box and server components being very like a central piece of this Layouts RFC. and basically leveraging a lot of the complexity and bringing the whole idea of server components because essentially server components by itself or streaming by itself or suspense by itself is not gonna make every React app performant and with great UX. So
Paige_Niedringhaus:
Alright.
Attila_Fasina
what Next.js, what I understand Next.js is trying to do with layout RFC is... bringing all the advantages with this nice abstraction that Next.js is famous to do for. So that's what they do with, for example, the revalidate keyword on the getStatic props for
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
incremental static regeneration.
Paige_Niedringhaus:
Yep.
Attila_Fasina
Like they're caching stuff on a very reliable way and stuff like that. So you don't need to know cache control headers to be able to cache that. In the same way, you're not going to need to know React use suspense in the right way. So I like that a lot.
Jack_Herrington:
OK, so. You got we've got this apps directory. What goes into
Attila_Fasina
Yeah.
Jack_Herrington:
the apps directory? Is it like what is an app? Is it a login app?
Attila_Fasina
So
Jack_Herrington:
Is it a cart
Attila_Fasina
in the apps
Jack_Herrington:
check
Attila_Fasina
directory
Jack_Herrington:
out? What is in there?
Attila_Fasina
you start declaring your routes in the same way that you do on the pages directory
Jack_Herrington:
Okay.
Attila_Fasina
in a similar way, maybe not the very same way because the behavior is different and with that it's a layout RFC so the routing is a part of it and they have this new idea of layouts as components, as like route components which is I hate doing this, but similar to what Remix does with the routes and the layouts, that you can also declare that. So you have the layouts and the layouts can be nested. So you declare the routes inside the app by directories. So every directory
Jack_Herrington:
Okay.
Attila_Fasina
is their own route and inside each route, you can have a layout and you can have a page file.
Jack_Herrington:
Okay.
Attila_Fasina
And that page file is going to be the one that's going to be rendered on the layout. And as you go on nested routes, you can be declaring layouts as well. So you can have nested layouts And this is very, very nice because the layouts, first of all, they don't re-render. So you can have access to the GetServerSite props from a layout. You can handle your application state in a component level, which is pretty awesome. Like so far we've been needing to do that on a route level. Now you can do on a component level.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
And there's some... special rules about that because as I mentioned everything is like server-side friendly so I'm very scared about doing a disservice, but if I remember right, there is the server component and you can nest client components on server components, but not the other way around. There is
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
a very interesting workaround that can be done, but essentially that's the thing. server-side rendered by default, while routes in the pages folder have the static rendering by default as we are all used to.
Jack_Herrington:
And just to follow up, because I know I'm sure Paige wants to jump in, but just to follow up. So I import, I'm over in my pages directory and that's like where my index is or whatever. I import from the apps directory and then I like a component. And then that gets server side rendered individually on the page.
Attila_Fasina
I don't think you will want your things on your page directory to talk to your things on the apps directory
Jack_Herrington:
Oh,
Attila_Fasina
They're different
Jack_Herrington:
okay.
Attila_Fasina
routes so
Jack_Herrington:
Oh,
Attila_Fasina
These are the
Jack_Herrington:
oh.
Attila_Fasina
so that's the point so that the idea of the apps directory. I believe is to be backwards compatible so
Jack_Herrington:
Super
Attila_Fasina
everything
Jack_Herrington:
seating. It just...
Attila_Fasina
Yeah,
Jack_Herrington:
okay.
Attila_Fasina
so
Jack_Herrington:
Oh, I
Attila_Fasina
everything
Jack_Herrington:
get it.
Attila_Fasina
you have
Jack_Herrington:
Wow.
Attila_Fasina
on the pages works as it is you update your next JS creates a fresh new app directory. And as you need, or as you want, or whatever, you start moving some routes to apps.
Jack_Herrington:
Got
Attila_Fasina
I
Jack_Herrington:
it.
Attila_Fasina
don't think
Paige_Niedringhaus:
Okay,
Jack_Herrington:
Okay.
Attila_Fasina
I don't know
Paige_Niedringhaus:
it's
Attila_Fasina
how
Paige_Niedringhaus:
a
Attila_Fasina
it's
Paige_Niedringhaus:
migration.
Attila_Fasina
going to work if you have conflicting routes.
Paige_Niedringhaus:
Yeah.
Attila_Fasina
And I don't think, as they write on the RFC, they're going to still support the pages directory for the foreseeable
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
future. So I don't know if they're replacing or they intend to replace. I do see me as a developer that the apps directory going on a more edge computing direction is more about what the web is going towards.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
But there's no like, as far as I've seen, I haven't seen anybody from the Vercell team saying, oh, Page Directory is going to be gone by next 56.
Paige_Niedringhaus:
Right.
Attila_Fasina
I don't know. Nobody said anything like that.
Paige_Niedringhaus:
Yeah, I mean, it sounds, it sounds very much like, and this seems to be where a lot of JavaScript frameworks are going towards kind of an island architecture, which we've been talking about
Attila_Fasina
Yeah.
Paige_Niedringhaus:
recently where everything that is possibly can be server rendered and is fairly static. You know, they just ship that as it is and do nothing else to it. Don't give it any dynamic up options really once it's been generated the first time. So it's really interesting to hear that Next is also trying to kind of walk back. some of the server options that they had and just make it that way from the, you know, from the get-go. Cause I think a lot of people struggled with that, especially if they weren't as familiar with how React frameworks and server-side rendering worked in general, just trying to figure out, do I need server-side rendering? Do I need static rendering? What, you know, what is the best option for me in my use case? So it's cool to hear that they're just kind of starting to give people that option out of the box. about it really if you just put it in the right folder next we'll just handle it for you so that's
Jack_Herrington:
Just
Attila_Fasina
Yeah.
Paige_Niedringhaus:
very
Jack_Herrington:
handle it.
Paige_Niedringhaus:
very
Jack_Herrington:
Handle
Paige_Niedringhaus:
interesting
Jack_Herrington:
it. Take your work.
Attila_Fasina
Yeah, so,
Paige_Niedringhaus:
right it just works
Jack_Herrington:
Yeah
Attila_Fasina
yeah, that's definitely the direction I think they're going and it kind of doesn't come as a big surprise, I think, since the last Next.js Conf. There were talks from some people in the Aurora team at Google talking about the streaming API and things like that. And I think that goes directly into the direction for serving partial HTML documents. That's what the streaming API is about, just if anybody's not familiar with. I think that goes directly in the direction of these islands of interaction that you just mentioned.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
That's what I was gonna say. Yeah, I think this is all like everybody's sort of converging on islands architecture out there,
Paige_Niedringhaus:
Thanks for watching!
Jack_Herrington:
you know, like in different different directions.
Paige_Niedringhaus:
Yeah.
Attila_Fasina
Yeah, because it makes a lot of sense, right? You don't want everybody to get the whole kitchen sink if they just wanted a toothbrush.
Paige_Niedringhaus:
I'm sorry.
Jack_Herrington:
Which is what you get by default, right? Next assumes that everything on the page is built on the server, and then all
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
that state is shipped over to the client, and then we build it again on the client
Attila_Fasina
Yeah.
Paige_Niedringhaus:
Yep.
Jack_Herrington:
just to make sure that the same, you know?
Attila_Fasina
Yeah.
Jack_Herrington:
And then at the end, you're like, well, now you get to be interactive, as opposed to, you know, let's go and take the parts of the page that are static and keep them static, and
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
just send the HTML. There, it's all you need. And then we have the parts of the pages are dynamic and you send them as and then you just send the JavaScript for that. And so I
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
think that's at the end of the day. That's where this app stuff is trying to get to. That's where like Astro is trying to get to and remix.
Attila_Fasina
Yeah, exactly. And React 18 is enabling every framework that's dependent on React to do something like that because... That's what they're doing with the whole Suspense API and all the new hooks that are coming with it. So it's pretty exciting times, I guess. It's basically where DX goes full on on helping people shipping good UX, which... like since I officially became the X engineer, that's pretty much everything I talk about apparently. But yeah,
Paige_Niedringhaus:
I'm sorry.
Jack_Herrington:
Hehehehehehehehe
Attila_Fasina
that's what we try to do at my work now as well. Like we've been working on some, like I'm working on example apps and the first thing I'm doing, the first one I'm doing is Next.js. And we just want something like, yeah, you just run a command and all the best, All the best practices are there for you to use our product. You don't need to worry about that. You don't need to read our entire documentation to be able to use us. And
Paige_Niedringhaus:
Yeah.
Attila_Fasina
I think it's nice that you have something like Next.js, Remix, Gatsby, Redwood, all these frameworks are doing. So developers that are coming in, they don't need to understand. all the web vitals, especially because they're changing all the time with everything we find and all the new APIs. So people don't need to know everything to be able to ship something or like if they get like, I don't know, if they they're not paying attention to a small detail on their app it's not like they're going to blow up the whole experience I guess.
Paige_Niedringhaus:
Right.
Attila_Fasina
Which like... That's something that a lot of people, like when they look back and say, Oh, it was simpler to build on the, on the web. Yeah. But you know, it was also harder in this case, like
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
it was simpler, but because we were like, like really getting a lot of like details that should be cared for, I guess. So I do like that a lot.
Paige_Niedringhaus:
Well, maybe you could tell us a little bit more about what your company is and what they do. Because, you know, as a developer experience engineer that's spinning up examples using these frameworks that we know and really enjoy, you know, how does your product fit into them?
Attila_Fasina
Sure. So Zara is a serverless database. So our idea is to make dealing with databases fun, or at the very least comfortable. And yeah, so
Jack_Herrington:
I do know people
Paige_Niedringhaus:
That's
Jack_Herrington:
out there
Paige_Niedringhaus:
a good
Jack_Herrington:
who think
Paige_Niedringhaus:
tagline.
Jack_Herrington:
databases are fun.
Attila_Fasina
we're bold
Jack_Herrington:
Not
Attila_Fasina
people.
Jack_Herrington:
me
Attila_Fasina
What can I say? Like you need to aim
Paige_Niedringhaus:
Ha
Attila_Fasina
high,
Paige_Niedringhaus:
ha.
Attila_Fasina
right? But
Jack_Herrington:
I'm gonna go get some water.
Attila_Fasina
yeah, so. Basically, what we usually say is, yeah, we want our users to think about data and not databases. So you basically model your data. Our database is hidden behind an API. And as a serverless database, we are going to handle all the complexity under the hood for you. And you can just hit some endpoints to fetch your schema, to push your schema, to get query data, and things like that. And we'll make sure it works, we'll make sure it scales, we'll make sure it's performant, we'll make sure the deliverability is nice, we'll provide the asset guarantees that you need. So, that's the whole point. And like we proud ourselves a lot on the DX that we're building. So... That's the whole thing about the work that I'm doing right now in my team is to do like the integrations, not integrations, but to create these example apps that makes it easy to use Zara.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
And yeah, essentially, yeah, sorry, I just, I just,
Jack_Herrington:
Okay, but
Attila_Fasina
I'm trying not
Jack_Herrington:
let
Attila_Fasina
to
Jack_Herrington:
me
Attila_Fasina
get
Jack_Herrington:
let
Attila_Fasina
too
Jack_Herrington:
me.
Attila_Fasina
carried away. I'm not
Jack_Herrington:
Sure,
Attila_Fasina
here
Jack_Herrington:
sure, sure. But let me let me
Attila_Fasina
to
Jack_Herrington:
play
Attila_Fasina
sell
Jack_Herrington:
devil's
Attila_Fasina
anything.
Jack_Herrington:
advocate with you for a second, because I know that there's a lot of folks like it's a crowded space. So of network databases out there. What makes
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
what's what's the. What's the what's the elevator pitch that's going to make me want to use Zada as opposed to other
Paige_Niedringhaus:
anything
Jack_Herrington:
cloud DBs?
Paige_Niedringhaus:
else.
Jack_Herrington:
Yeah.
Attila_Fasina
Okay, I think that though it's a crowded space, there are different use cases that each. each one of these products meet. Like if you look at other serverless databases like SuperBase, PlanetScale, Zada, HDB, they all have different things that they're aiming for. Zada, we are different than most of them because we have, because we are behind an API, we can provide our users with some nice abstractions. For example, we can provide with instant migrations. So you can branch our schema. pretty much as you would branch your GitHub repository, your code base. And because we're behind an API, once you decide to merge that branch, it's instant to you because we're just pointing out to different parts of, we're just changing a Sim link essentially. So that's one thing that we do nicely. And another thing is that we also have an analytics and a search engine out of the box. because we have Elasticsearch within our database. And because we're behind an API, we can provide the asset guarantees, even though if it's an NoSQL database under the hood. So whenever you're querying your data, things can get pretty fast, even when like traditional relational databases may not be as performant as.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
But with the API, we can do the asset guarantees and everything you would expect developer experience and interface that you get with relational databases even though you might not be querying data straight from a relational database in this in our in this case and because of these kind of this this kind of decisions we can help you scale horizontally and vertically, like scaling vertically becomes automatic and horizontally we can get to the point where it's a no brainer for you and we handle this complexity because we are behind this API. So that's one thing. As I said, we're still in closed beta, so there's a lot that we're still working on how we're going to do stuff as we move on to the public beta.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
We do, I can say that we are going to have a free tier out of the box. We already have
Jack_Herrington:
Mmm,
Attila_Fasina
a few
Jack_Herrington:
nice.
Attila_Fasina
users being onboarded.
Paige_Niedringhaus:
great.
Attila_Fasina
So yeah, so we have this Discord server. If anybody's interested in about that, you can join us. And
Jack_Herrington:
it as a closed
Attila_Fasina
there's
Jack_Herrington:
beta?
Attila_Fasina
an access request
Jack_Herrington:
I mean...
Attila_Fasina
stuff,
Jack_Herrington:
oh
Attila_Fasina
but
Jack_Herrington:
there
Attila_Fasina
we can
Jack_Herrington:
you go
Attila_Fasina
give
Jack_Herrington:
okay
Attila_Fasina
access, yeah, so that's
Jack_Herrington:
okay
Attila_Fasina
it.
Jack_Herrington:
nice
Paige_Niedringhaus:
There you go.
Attila_Fasina
If you have a use case like something to we're actually asking for feedback like a lot of our work is open source already so yeah
Jack_Herrington:
Yeah,
Attila_Fasina
but again
Jack_Herrington:
yeah, shoot
Attila_Fasina
I'm not
Jack_Herrington:
us
Attila_Fasina
here
Jack_Herrington:
a
Attila_Fasina
to
Jack_Herrington:
Discord
Attila_Fasina
do any sales pitch
Jack_Herrington:
link
Attila_Fasina
so
Jack_Herrington:
and we'll drop that in the show notes.
Attila_Fasina
oh
Paige_Niedringhaus:
Absolutely.
Attila_Fasina
thanks
Jack_Herrington:
Ah,
Attila_Fasina
yeah
Jack_Herrington:
you know, I, you know,
Attila_Fasina
But
Jack_Herrington:
gotta make
Attila_Fasina
yeah,
Jack_Herrington:
sure
Paige_Niedringhaus:
So
Jack_Herrington:
you get
Paige_Niedringhaus:
is
Jack_Herrington:
your
Paige_Niedringhaus:
this...
Jack_Herrington:
plugs in.
Attila_Fasina
at this point, we're all about talking to people and see what they expect from a serverless database and see how we can actually meet those requirements with a nice developer experience. Another thing that I like a lot with our SDKs and our APIs that we're extremely TypeScript friendly, like we build the types, like we have the code gen, so
Jack_Herrington:
Oh, yeah, nice.
Attila_Fasina
every
Paige_Niedringhaus:
guys.
Attila_Fasina
ursdk is by default type safe.
Jack_Herrington:
Awesome.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
We have a nice VS Code extension so you can provision a database from VS Code.
Paige_Niedringhaus:
cool.
Attila_Fasina
I actually recorded a video without any speed up, I did that in two minutes, I provisioned,
Jack_Herrington:
Woo!
Attila_Fasina
created tables and
Paige_Niedringhaus:
Nice.
Attila_Fasina
pushed records to it. So it's pretty cool, I'm very proud of that. I was a user before I joined the team, so that's why... library like that.
Jack_Herrington:
Hahaha!
Paige_Niedringhaus:
Ha ha ha ha!
Attila_Fasina
I do feel bad now that I joined the team because it makes me sound like a salesman but that's not what I'm doing I'm just excited about this stuff we're building.
Jack_Herrington:
Awesome.
Paige_Niedringhaus:
Yeah. So you say that it's a behind an API is there, can you query it, uh, either from restful endpoints or with graph QL.
Attila_Fasina
So our API for now is REST.
Paige_Niedringhaus:
Okay.
Attila_Fasina
So yeah, you have RESTful endpoints. We do have in our dashboard, a nice SDK playground which feels. at least to me, feels a lot like those GraphQL clients that you have the schema there and everything, especially
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
because we code gen types for you based on your database schema. So you get all the auto-completion, you get IntelliSense and this kind of stuff. They're pretty nice. So it feels like you have night GraphQL and stuff like that. It feels almost declarative to me,
Paige_Niedringhaus:
Yeah.
Attila_Fasina
at least. Um,
Paige_Niedringhaus:
Nice.
Attila_Fasina
so yeah.
Jack_Herrington:
Yeah, it's interesting thing like you know when it comes to GraphQL, unless you're actually going to like unless the API is your service, like you're not
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
actually going to you don't really need the dynamic behavior of GraphQL. If you control the client and the server, in fact, you're just
Paige_Niedringhaus:
Right.
Jack_Herrington:
paying extra cost to. You actually parse through the Jack GraphQL query and and validate it and all the rest of it. So it's interesting. Yeah, it's interesting trade off. I mean you get like some other stuff like you get the ability to like multiple queries in a single request things like that.
Paige_Niedringhaus:
Right.
Jack_Herrington:
You know, so yeah, it's it's it's interesting trade off, but I can totally see where if you have like a nice playground where you basically give essentially GQL and it makes the query for you and it's all typed. I mean, that's pretty slick.
Paige_Niedringhaus:
Yeah, I'll take that.
Jack_Herrington:
Yeah,
Attila_Fasina
Yeah.
Jack_Herrington:
exactly.
Attila_Fasina
Yeah, so yeah, I do think that the GraphQL conversation shouldn't be the same conversation about which database you're going to use. Or if you
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
need like a SchemaFull, like ORM or something like that, it should be a second conversation. Like, okay, we need an ORM or we need something like this. Do we need it? Do we need GraphQL as well? Like there's
Jack_Herrington:
All right.
Attila_Fasina
separate talks, I guess. I know that some like nice implementations of that use GraphQL kind of push people into like, okay, I'm just going to jump this whole decision and just take that because that works for me. I respect that. But you know, it like, it's like. Whenever we treat a tool or framework as our savior, that's where we need to understand what we need from it before we know what, before we expect stuff, I guess.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
You know, you're talking earlier about like having in your examples, basically some canned stuff that's everything out of the box. And you don't have to make any decisions. I kind of I would say I warn against that sort of thing a little bit.
Attila_Fasina
Yeah, yeah.
Jack_Herrington:
And that like I've definitely seen some bad examples of that, where it's like they made a lot of decisions. Just not the ones I would have made, you know. Yeah, I think there's
Attila_Fasina
Yeah.
Jack_Herrington:
some pretty famous e-commerce vendor out there, you know, came
Attila_Fasina
Hahaha.
Jack_Herrington:
out with their own, like canned framework and they're like, you know, we decided for you that it's going to be going to be on V and it's going to be service
Paige_Niedringhaus:
Mm.
Jack_Herrington:
side components and you're going to be
Attila_Fasina
Yeah.
Jack_Herrington:
like. Okay, but like I would have liked to have had a voice in that decision. So,
Attila_Fasina
Yeah, I
Jack_Herrington:
you
Attila_Fasina
totally
Jack_Herrington:
know,
Attila_Fasina
agree
Jack_Herrington:
I like
Attila_Fasina
with
Jack_Herrington:
the
Attila_Fasina
you.
Jack_Herrington:
I like the the plug in thing. Or it's like I like I've been playing around with Astro lately and they've got integrations and it's like, oh, you want tailwind? Cool. Here's an integration for you. Bam. You can drop it in. But it's not out of the box. It's like I get to make the decision of whether to use it or not, whether to use that or something else,
Attila_Fasina
Yeah,
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
you know.
Attila_Fasina
I totally agree with you and I think I expressed myself poorly in this case.
Jack_Herrington:
Ah, okay.
Attila_Fasina
What
Paige_Niedringhaus:
Hehehe
Jack_Herrington:
That's okay.
Attila_Fasina
I also don't like when people make decisions for me,
Jack_Herrington:
Yeah, you know, I guess I'm autonomy.
Attila_Fasina
the thing is what I was trying to mean is, for example, if you decide, okay, I'm going to test this thing out, but... Can I query it from the client side? Should I create an API route? Should I use, like in the case of Next.js, get server-side props? Where do I put my stuff? Or how do I, I don't know, decide where the code gen is going to be? What kind of configuration files do I need? This kind of decisions, like I don't want you to spend 15 minutes in my docs to find out
Jack_Herrington:
Yeah, yeah, totally. Good
Attila_Fasina
how.
Jack_Herrington:
examples are great.
Attila_Fasina
Yeah.
Jack_Herrington:
Big
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
time. Big time. Yeah.
Attila_Fasina
And then like... My plan with those examples is that you would get like the minimal approach and then you get like a little bit more And then you get a little bit more and so on so if you get to the point where Look, I just want a POC. I just want a proof of concept I would just run a command here and it's going to speed out a block for me
Jack_Herrington:
Yeah.
Attila_Fasina
Okay,
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
then you can have that. Otherwise, no, I'm building something from scratch. I want you to be hands off and that's what I have. So I think it's hard. Like, I think... Next.js and Remix are good examples of frameworks that make a lot of decisions for you, but they allow you to opt out at any
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
point. Next.js is really, really good at it, in my opinion, because to the point where you can decide to do TypeScript and they just say, okay, we detected you have a TypeScript configuration file. You should install these types. Like,
Paige_Niedringhaus:
Yeah.
Attila_Fasina
okay, thanks. You know, it gives you a piece of mind where like, a voice from your terminal is telling you what
Jack_Herrington:
Hahaha!
Attila_Fasina
you need. Ha ha ha. Ha ha
Paige_Niedringhaus:
Yeah.
Attila_Fasina
ha.
Paige_Niedringhaus:
Or when you're going through the setup process and it asks you, you know, do you want to use TypeScript for this project? Do you
Attila_Fasina
Yeah.
Paige_Niedringhaus:
want to use this thing, that other thing, this third thing? That's
Attila_Fasina
Yeah.
Paige_Niedringhaus:
kind of nice. Cause you can just do yes, no, no, yes. And, and then it will just build the starter that you want.
Attila_Fasina
Yeah, and Remix went a step further with those Remix stacks So
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
basically Remix stacks
Jack_Herrington:
Oh yeah, I forgot about
Attila_Fasina
to
Jack_Herrington:
those.
Attila_Fasina
listeners is that like a bunch like it's basically a stack that's why they call it remix stacks where they get you like a provider like whenever you're going to deploy to they help you set up the environmental key variables or whatever you need they even some even set up like end-to-end tests and stuff like that everything out of the box and then that's it
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
you and in like, I don't know, three minutes time, you're writing application logic already.
Jack_Herrington:
Yeah.
Attila_Fasina
And that's like super, super cool. I was looking at how to create remix stacks, because as I said, that's what I'm doing for a living now.
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
And they even allow you, like the developer, to do like extend the remix CLI, in the sense that, oh, if you're installing my stack, I can create a few special prompts some dependencies just for the first time to get you set up. So like for example for me that I'm going to create a stack to use a specific database, I can prompt my user that's installing it, okay, how many decisions do you want to make for me? Do you want to pull like a pre-made schema for you and push some dummy records so you can see something out of the box
Jack_Herrington:
Like a blog
Attila_Fasina
or do
Jack_Herrington:
or something
Attila_Fasina
you want
Jack_Herrington:
about
Attila_Fasina
me to
Jack_Herrington:
yeah,
Attila_Fasina
butt
Jack_Herrington:
yeah
Attila_Fasina
out, you know? So that's really nice I think. So yeah.
Jack_Herrington:
I will say, if you do that, please go and name it something that is Googleable. Because yes, Remix Stacks, you can get started in three minutes, but you spent 15 trying to find the Remix Stacks homepage
Paige_Niedringhaus:
that you want.
Jack_Herrington:
because you do Remix Blues, which is the name of one of their stacks. And it's like the first home, the first whole page is like blues remixes, which are
Paige_Niedringhaus:
Right.
Jack_Herrington:
awesome, but
Paige_Niedringhaus:
Music.
Jack_Herrington:
have nothing to do with JS.
Attila_Fasina
Well, a tip for you is using one of the author's names to disambiguate. So you can say
Jack_Herrington:
Oh
Attila_Fasina
Michael
Jack_Herrington:
yeah,
Attila_Fasina
Jackson
Jack_Herrington:
okay.
Attila_Fasina
Remix Blues.
Jack_Herrington:
Ahahaha!
Paige_Niedringhaus:
Hehehehe
Attila_Fasina
That could get you some interesting
Jack_Herrington:
Yeah,
Attila_Fasina
results
Jack_Herrington:
sure.
Attila_Fasina
as well.
Jack_Herrington:
Yeah, yeah, yeah. Right.
Paige_Niedringhaus:
Hehehe
Jack_Herrington:
Very interesting result.
Paige_Niedringhaus:
Well Attila, is there anything that we have not talked about yet that you think we should cover?
Attila_Fasina
Uhm... Yeah, I'm here for anything you wanna talk about Like as I said, I'm just like, I just... You point me and I'll start blabbering
Jack_Herrington:
Ha ha ha ha!
Attila_Fasina
I don't know if... I don't know if the quality is going to be good But I'm here for it
Paige_Niedringhaus:
I'm sorry.
Attila_Fasina
Ah...
Jack_Herrington:
It's been great. I've had a good time and I've learned a lot
Paige_Niedringhaus:
Absolutely,
Jack_Herrington:
actually. Yeah.
Paige_Niedringhaus:
yeah. Yeah,
Attila_Fasina
Thanks,
Paige_Niedringhaus:
I've definitely...
Attila_Fasina
that's always nice to hear.
Paige_Niedringhaus:
I've got to continue that remix tutorial that I was working
Jack_Herrington:
Mmm
Paige_Niedringhaus:
on and
Attila_Fasina
Hahaha
Paige_Niedringhaus:
put down a couple weeks ago. Gotta finish that off.
Jack_Herrington:
And I've got to
Attila_Fasina
That's...
Jack_Herrington:
look into this Layouts RFC. That sounds cool.
Paige_Niedringhaus:
That too.
Attila_Fasina
Yeah, both of them are nice and I actually playing around like for my last talk I created this Remix app to play around with this optimistic UI stuff and actually
Paige_Niedringhaus:
Mm-hmm.
Attila_Fasina
deployed Remix app on Netlify Edge. So it's like the most, I think it's probably the most hipster thing I've done this year. Like Remix.
Paige_Niedringhaus:
That Lafayette
Attila_Fasina
Remix
Paige_Niedringhaus:
edge.
Attila_Fasina
running on Edge on a Dino runtime
Paige_Niedringhaus:
Oh gosh,
Attila_Fasina
Like
Paige_Niedringhaus:
you hit
Attila_Fasina
it's
Paige_Niedringhaus:
all
Attila_Fasina
awesome.
Paige_Niedringhaus:
the high points.
Attila_Fasina
It's
Jack_Herrington:
You
Attila_Fasina
awesome
Jack_Herrington:
know you had to do it on Dino deploy if you're gonna like really
Paige_Niedringhaus:
I'm sorry.
Jack_Herrington:
go for it But
Attila_Fasina
Hahaha
Jack_Herrington:
like did he do it in a coffee shop? That's the trick,
Attila_Fasina
Oh
Jack_Herrington:
you know
Attila_Fasina
no
Jack_Herrington:
And
Attila_Fasina
I
Paige_Niedringhaus:
with
Attila_Fasina
didn't,
Paige_Niedringhaus:
tailwind.
Attila_Fasina
yeah.
Jack_Herrington:
in a Berlin coffee shop,
Attila_Fasina
Oh.
Jack_Herrington:
that's
Attila_Fasina
Oh.
Jack_Herrington:
it. There's just nothing
Attila_Fasina
Yeah.
Jack_Herrington:
better really honestly
Attila_Fasina
Yeah,
Paige_Niedringhaus:
Hehehe
Attila_Fasina
I lost that opportunity. Yeah.
Jack_Herrington:
Yeah, so close so close
Attila_Fasina
I'll have to do it. I'll have to find another excuse to do something like that.
Jack_Herrington:
Oh, and a beer garden.
Paige_Niedringhaus:
I'm sure
Jack_Herrington:
That'd
Paige_Niedringhaus:
as
Jack_Herrington:
be fun.
Paige_Niedringhaus:
yeah, I'm sure as DevEx
Attila_Fasina
Yeah.
Paige_Niedringhaus:
you will.
Attila_Fasina
Hahaha!
Jack_Herrington:
Ah, there you go. Here we are at Oktoberfest. Let's do this.
Attila_Fasina
Hahaha
Paige_Niedringhaus:
Well cool, I think it is now time for us to move into the section of the show that we call PICS and these are television shows, they're books, they're cool technologies, they're basically anything that you have really enjoyed that you think that our users would enjoy as well. So Jack, do you want to start us off this week?
Jack_Herrington:
It has turned into like the television show thing because there's just so many of them. Oh,
Paige_Niedringhaus:
There
Jack_Herrington:
my God.
Paige_Niedringhaus:
are.
Jack_Herrington:
I know.
Paige_Niedringhaus:
It's pretty
Jack_Herrington:
Crazy.
Paige_Niedringhaus:
good.
Jack_Herrington:
And you know what? I'm going to do a television show that's just, ah, but I will say I have been really saddened by the state of like writing and stuff. It seems really lazy in some of these shows. But one that was just absolutely fantastic was one called The Bearer on Hulu. And it's about a chef and cooking. And I swear to you, it's it's. I know these I know some of these actors and it
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
doesn't seem like they're acting. It's just crazy how like into it it feels. So it's an amazing show. Anyway, I think it's got 100 percent of Rotten Tomatoes and it just totally deserves it. So and it's
Paige_Niedringhaus:
Nice.
Jack_Herrington:
only eight episodes and my my daughter and I were just glued from like episode two. It's just fantastic. So the
Paige_Niedringhaus:
I'm
Jack_Herrington:
Hulu
Paige_Niedringhaus:
sorry.
Jack_Herrington:
Hulu, the bear.
Paige_Niedringhaus:
I have heard about the bear, so that's another, and that's another vote in its favor. So I'll, I've definitely got it on the list. I need to just actually go ahead and watch it, I think.
Jack_Herrington:
It's an intense watch. It's like if you if you're excited by people like being really intense with each other, then that's
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
it. That's because there's Chicago and Chicago folks
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
like dirt.
Paige_Niedringhaus:
Got
Attila_Fasina
What
Paige_Niedringhaus:
a
Attila_Fasina
does
Paige_Niedringhaus:
lot
Attila_Fasina
that
Paige_Niedringhaus:
of energy.
Attila_Fasina
mean? I'm not from the US.
Jack_Herrington:
Oh, it means like, I don't know, if you have a city where people are just like, they just tell it like it is up in your face, you know,
Attila_Fasina
Ah,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
you know where you
Attila_Fasina
okay.
Jack_Herrington:
stand with folks,
Paige_Niedringhaus:
They're
Jack_Herrington:
you
Paige_Niedringhaus:
very
Jack_Herrington:
know, that's
Paige_Niedringhaus:
honest.
Jack_Herrington:
that's yes, that's Chicago.
Attila_Fasina
Nice, nice.
Paige_Niedringhaus:
Cool. I will go next. My thing for this week is going to be a spray bottle that I recently bought off of Amazon. And it's a spray bottle that you'd use for cooking, like if you need to mist something that you're searing or you're cooking it on the grill or something like that. Yeah, and there's it's not battery operated because there were some of those. It's just a really simple one where you pour whatever into it, mix it up, and then you can just pull down this little lever. really nice mist of whatever you've got in there. So if it's an oil-based thing, if it's maybe juice and vinegar or something like that, it just comes out beautifully. It's got a nice long... mist cycle from one one good pump. And it was really inexpensive and it you know really made a difference because my husband's been doing a whole lot of grilling since summertime over here. So
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
you know he did some ribs this weekend that turned out fantastic and it had this apple cider vinegar
Jack_Herrington:
Hmm
Paige_Niedringhaus:
and apple juice mix that you missed on it every half hour while it's while it's smoking. So it turned out great. So I would definitely recommend it if it's something, if you're a person who likes to cook and do stuff like that, it's a really good investment.
Jack_Herrington:
I'm all over this. I can't wait to see in the show
Attila_Fasina
I
Jack_Herrington:
notes.
Attila_Fasina
don't
Jack_Herrington:
I'm
Attila_Fasina
like
Jack_Herrington:
going to
Paige_Niedringhaus:
Yeah.
Attila_Fasina
to
Jack_Herrington:
grab
Attila_Fasina
cook
Jack_Herrington:
one of
Attila_Fasina
but
Jack_Herrington:
these.
Attila_Fasina
I'm very hungry. Now...
Paige_Niedringhaus:
Talking about food, I know it does it
Jack_Herrington:
There
Paige_Niedringhaus:
to
Attila_Fasina
Yeah...
Jack_Herrington:
you
Paige_Niedringhaus:
me too.
Jack_Herrington:
go exactly exactly
Paige_Niedringhaus:
So Attila, do you have any picks that you'd like to recommend?
Attila_Fasina
Yeah sure, so as Jack said there's a bunch of shows around and I've been all over them. The one that I'm currently watching I would recommend because I read a lot of comic books in my life so
Jack_Herrington:
Hmm
Attila_Fasina
this one comes straight from it. So it's Sandman.
Jack_Herrington:
I'm watching
Attila_Fasina
I
Jack_Herrington:
this
Attila_Fasina
don't
Jack_Herrington:
right now.
Attila_Fasina
know.
Jack_Herrington:
Yeah.
Attila_Fasina
Yeah, yeah that's
Jack_Herrington:
Yeah.
Attila_Fasina
pretty nice. I didn't actually read the Sandman graphic novels. So I'm seeing some backlash from the most, but fans are fans, right?
Jack_Herrington:
Yeah,
Attila_Fasina
But I do
Jack_Herrington:
totally.
Attila_Fasina
like a lot. I like New Game and I watched already Good Omens and American Gods.
Jack_Herrington:
American God is amazing. Yeah.
Attila_Fasina
Yeah, yeah. So I think Sandman is there with those two, other two series that I liked. I haven't finished it yet though.
Jack_Herrington:
I think I'm on episode 8 now. I don't know how many there are.
Attila_Fasina
Yeah,
Jack_Herrington:
Yeah.
Attila_Fasina
I'm somewhere there between 7 maybe 8. I don't remember
Jack_Herrington:
Yeah.
Attila_Fasina
where I stopped.
Paige_Niedringhaus:
Ha ha ha!
Attila_Fasina
Like,
Jack_Herrington:
Yeah.
Attila_Fasina
I have
Jack_Herrington:
I just
Attila_Fasina
a
Jack_Herrington:
don't
Attila_Fasina
bad
Jack_Herrington:
know.
Attila_Fasina
habit of watching until I'm almost falling asleep. So I don't remember
Jack_Herrington:
Oh,
Paige_Niedringhaus:
Yeah.
Attila_Fasina
where I
Jack_Herrington:
and then
Attila_Fasina
am
Jack_Herrington:
you got
Attila_Fasina
anymore.
Jack_Herrington:
to like get around rewatch,
Attila_Fasina
Yes,
Jack_Herrington:
you know,
Paige_Niedringhaus:
Ehh
Jack_Herrington:
the last 10 minutes, you're like,
Attila_Fasina
something
Jack_Herrington:
what
Attila_Fasina
like that.
Jack_Herrington:
happened? Why? Who
Paige_Niedringhaus:
I don't
Jack_Herrington:
is this
Paige_Niedringhaus:
remember.
Jack_Herrington:
guy? I don't know. Wait,
Attila_Fasina
Hehehehe
Jack_Herrington:
what? I had to do that with Westworld. I literally like we watched the entire first episode of season four because I'm like, hold up. I don't
Attila_Fasina
Hahahaha
Jack_Herrington:
know. What are we doing now? Who
Paige_Niedringhaus:
Do
Jack_Herrington:
is this
Paige_Niedringhaus:
not
Jack_Herrington:
guy?
Paige_Niedringhaus:
remember.
Jack_Herrington:
Like what? I yeah, so I just we watched the entire first show again because like, got to catch up. And then that's actually the rest of the season was pretty, pretty amazing. It hasn't finished yet, but dang, that's a, that's a, that's a show.
Paige_Niedringhaus:
Is this the final season of Westworld or is there
Jack_Herrington:
Who
Paige_Niedringhaus:
a
Jack_Herrington:
knows?
Paige_Niedringhaus:
future?
Jack_Herrington:
You
Paige_Niedringhaus:
You don't
Jack_Herrington:
know,
Paige_Niedringhaus:
know.
Attila_Fasina
Hehehe
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
every season you think it's going to be the last one. And then it turns out, whoa, they figured out a way to make it go.
Paige_Niedringhaus:
Ah! Hehehehe
Jack_Herrington:
I think Orville was one where they unless they can get like a fan thrall
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
to come in, then it's gone, gone. And that
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
was actually a good show. Yeah.
Paige_Niedringhaus:
Yeah, it's always a shame when those things kind of get canceled and
Jack_Herrington:
Yeah,
Paige_Niedringhaus:
have
Jack_Herrington:
your
Paige_Niedringhaus:
the
Jack_Herrington:
favorite ones.
Paige_Niedringhaus:
end on a cliffhanger.
Jack_Herrington:
Right, and then the ones you don't think should get a second season due, and you're like, why
Paige_Niedringhaus:
Eh.
Jack_Herrington:
this show
Paige_Niedringhaus:
Ha ha
Jack_Herrington:
is
Paige_Niedringhaus:
ha.
Jack_Herrington:
awful?
Attila_Fasina
Yeah,
Jack_Herrington:
Please God
Attila_Fasina
yeah
Jack_Herrington:
kill this show.
Attila_Fasina
Yeah,
Paige_Niedringhaus:
Oh
Attila_Fasina
I'm still like hurt by the dark gently cancel like on
Paige_Niedringhaus:
Mmm.
Attila_Fasina
Netflix there was one from it was from Douglas Adams Douglas yeah,
Jack_Herrington:
Mm hmm. Yeah, sure. And
Paige_Niedringhaus:
Yeah.
Attila_Fasina
and
Jack_Herrington:
detective
Attila_Fasina
like the
Jack_Herrington:
agency
Attila_Fasina
first
Jack_Herrington:
or something
Attila_Fasina
season
Jack_Herrington:
like that.
Attila_Fasina
uh
Jack_Herrington:
It was
Attila_Fasina
Sorry
Jack_Herrington:
the Dirk Gently's detective agency or something,
Attila_Fasina
Yeah,
Jack_Herrington:
wasn't it? I think
Attila_Fasina
holistic detective
Jack_Herrington:
holistic
Attila_Fasina
something
Jack_Herrington:
detective
Attila_Fasina
like that
Jack_Herrington:
agent got this one with the kid. Geez,
Attila_Fasina
It has
Jack_Herrington:
yeah.
Attila_Fasina
one of like it's probably like in the first season there's one scene that's probably the funniest scene I've ever seen in a TV show like like I Went full dead on it. I stopped I paused it and I rewind rewind it. Yeah, that's how so
Paige_Niedringhaus:
Yeah.
Attila_Fasina
I just you know, I Rewind Netflix. That's how much I liked
Jack_Herrington:
Yeah,
Attila_Fasina
it.
Jack_Herrington:
yeah,
Attila_Fasina
And then
Jack_Herrington:
wow.
Paige_Niedringhaus:
Hehehehe
Attila_Fasina
I I went back on it It was really like I couldn't stop laughing at it So
Jack_Herrington:
Okay.
Attila_Fasina
yeah.
Paige_Niedringhaus:
Nice. Well Attila, it has been a pleasure having you on today.
Jack_Herrington:
It really has
Paige_Niedringhaus:
If
Jack_Herrington:
been.
Paige_Niedringhaus:
people want to get in touch with you, how can they find you?
Attila_Fasina
Oh yeah, they can find me on Twitter, like Attila Fasina, like first name, last name, or Attila.io. There's all my contacts there, everything. And yeah, anything I'm up for, like let's stock shop anytime. That's all good.
Jack_Herrington:
I love it. Yeah,
Paige_Niedringhaus:
Great.
Jack_Herrington:
this is great.
Paige_Niedringhaus:
We'll have all those links in the show notes and we'll see everybody in the next episode of React Roundup.
Attila_Fasina
Bye everyone.
Jack_Herrington:
See you then. That was awesome. Yeah.
Paige_Niedringhaus:
Yeah.