
Open Mic: CWV, Type-Safe React Query, HTML Super Powers
JavaScript Jam Live discusses type-safe React Query, web components as HTML with superpowers, core web vitals, and answers beginner questions on React and TypeScript.
Episode Description
JavaScript Jam Live discusses type-safe React Query, web components as HTML with superpowers, core web vitals, and answers beginner questions on React and TypeScript.
Episode Summary
This JavaScript Jam Live episode, hosted by Scott Steinlage with co-host Anthony Campolo and regular Daniel, covers several topics from their weekly newsletter. The conversation opens with a discussion of type-safe React Query, where the hosts reflect on how tRPC's influence has spread into the React Query ecosystem and share their evolving relationship with TypeScript. They then turn to Dave Rupert's work on web components, with Anthony noting that web components may finally be ready for mainstream adoption. A substantial segment focuses on core web vitals, where Anthony breaks down Google's recommendations around largest contentful paint, cumulative layout shift, and avoiding unnecessary JavaScript, while Bro Nifty and Scott discuss the challenge of understanding Google's technical terminology. The episode becomes especially interactive when Carol, a beginner developer, joins to ask about learning Next.js 13 versus 12, how experienced developers approach new projects, whether HTML Canvas is worth learning early on, and whether to invest in TypeScript or stick with plain JavaScript. Anthony consistently advises pragmatic, incremental learning—start building, adopt TypeScript gradually, and focus on fundamentals like REST before exploring tools like tRPC. The episode closes with brief plugs for podcast episodes featured in the newsletter and a recommendation for Create T3 App as an approachable TypeScript starting point.
Chapters
00:00:00 - Introduction and Newsletter Setup
Scott Steinlage opens the show by welcoming listeners to JavaScript Jam Live and introducing co-host Anthony Campolo and regular speaker Daniel. He explains the format as an open-mic style discussion covering a range of web development topics and invites participation from developers of all experience levels.
The hosts share some casual banter while Scott sets up the weekly newsletter for discussion. He promotes the JavaScript Jam newsletter at javascriptjam.com, highlights Anthony's work curating it, and shares the link in the Twitter Space. Daniel mentions ongoing frustrations with Twitter's desktop experience for Spaces, noting the irony given the platform's developer-heavy user base.
00:06:37 - Type-Safe React Query and the TypeScript Ecosystem
Daniel kicks off the first technical topic by asking about the recently released type-safe React Query. Anthony connects it to the broader influence of tRPC on the React ecosystem, noting that end-to-end type safety is something GraphQL users have long enjoyed while others are discovering it for the first time. Daniel shares his own recent conversion to TypeScript and Zod after years in statically typed languages.
The conversation expands as Daniel and Bro Nifty compare their experiences with React's class components versus hooks. Daniel admits the transition was rocky after years of class-based React, while Bro Nifty argues hooks are a clear improvement over the verbose class syntax. They debate the role of useEffect, with Daniel advocating for minimizing its use due to performance pitfalls, and Anthony reflecting on the challenge bootcamps faced teaching both paradigms simultaneously during the transition period.
00:17:09 - HTML with Superpowers and Web Components
Scott transitions to another newsletter topic: Dave Rupert's article on HTML with superpowers, which focuses on web components. Anthony provides context on Rupert's background as co-host of the Shop Talk podcast alongside Chris Coyier, and highlights Rupert's advocacy for web components being ready for production use after years of the community waiting for them to mature.
Anthony notes the emergence of web component frameworks like Enhance and emphasizes the need for better educational resources around web standards, since official specs can be notoriously difficult to read. The hosts agree that more accessible documentation and tutorials are needed to help developers adopt web components without getting lost in dense specifications.
00:20:01 - Core Web Vitals and Google's Performance Recommendations
Anthony walks through Google's core web vitals recommendations from web.dev, explaining key metrics like largest contentful paint and cumulative layout shift. He offers practical takeaways such as ensuring critical resources are discoverable from HTML source, setting explicit sizes on content to prevent layout shifts, and minimizing unnecessary JavaScript for better performance.
Bro Nifty praises web.dev as a resource but admits some of the material on topics like streaming rendering can be intimidating. Anthony agrees that Google's naming conventions and acronyms contribute to the confusion, suggesting the terminology could have been designed to be more accessible. Scott shares his own creative approach to explaining core web vitals through a humorous story about "the Google Slap," connecting CWV to SEO penalties and search rankings.
00:31:32 - Midshow Break, Newsletter Podcasts, and Community Plugs
Scott delivers a midshow station break, reminding listeners about the weekly Wednesday schedule and encouraging participation regardless of skill level. Anthony highlights the podcast recommendations in the newsletter, including interviews on Jamstack Radio about Redwood, an FSJam episode on Netlify's edge functions with Eduardo Bocas, and episodes covering React predictions for 2023 and Elm.
The hosts discuss the concept of "crossing the chasm" referenced by Shawn Wang, using ChatGPT live on the show to define the term as the gap between early adopters and mainstream customers. Anthony also plugs the newsletter's curated podcast section as a way for developers to gain an edge in their careers by listening to long-form industry conversations, and Scott encourages newsletter subscriptions at javascriptjam.com.
00:34:20 - Beginner Q&A: Learning Next.js, React, and Building Projects
Carol, a self-described beginner, joins the stage to ask whether she should learn Next.js 13 or start with version 12. Anthony advises using Next 13 but sticking with the Pages folder rather than the experimental App folder, explaining that most existing Next projects still use older patterns. Carol also asks about learning approaches, and Anthony emphasizes that no one truly understands a tool completely before building with it—everyone learns incrementally through practice.
Anthony recommends resources including Epic React by Kent C. Dodds, Brad Traversy's YouTube tutorials, and the beta React documentation site. He suggests starting with a personal project like a blog as a practical learning playground. The conversation reinforces the value of building something useful rather than following rigid tutorial paths, with Anthony encouraging Carol to adopt tools progressively rather than trying to master everything upfront.
00:52:08 - Canvas, Animations, Accessibility, and Portfolio Advice
Carol returns with a question about whether beginners should invest time learning HTML Canvas and scroll animations. Anthony shares his perspective that while flashy portfolio sites with heavy animations can be eye-catching, they rarely reflect the skills most valued in professional web development. He emphasizes that accessibility and solid user experience matter far more than visual spectacle.
The discussion touches on who portfolios are actually for—technical hiring managers versus recruiters—and how that audience should influence what you showcase. Anthony advises Carol to focus on making websites functional and accessible first, noting that Canvas and animation skills are more relevant for developers specializing in the design end of the spectrum. Carol agrees, sharing that her own browsing experience prioritizes ease of use over visual flair.
00:59:29 - TypeScript with React, tRPC for Beginners, and Closing
David joins to ask whether TypeScript truly adds value when working with React. Anthony acknowledges it's a personal preference but notes TypeScript is becoming standard across the industry and may eventually be integrated into JavaScript itself. He recommends Create T3 App as an approachable way to get started with TypeScript in a React project without heavy configuration overhead. Carol adds her own beginner perspective, suggesting that simply writing JavaScript in TypeScript files and adding types incrementally is an effective learning strategy.
Carol asks one final question about whether beginners should learn tRPC instead of REST. Anthony firmly advises learning REST first as the foundational concept, explaining that tRPC is essentially a nicer abstraction over REST and can be explored later. Scott wraps up the episode by thanking all participants, promoting the newsletter one last time, and reminding listeners that JavaScript Jam Live runs every Wednesday at noon Pacific.
Transcript
00:00:45 - Scott Steinlage
Okay. Man, the silence, I couldn't bear. My goodness. Took me a second here. Everything lined up. All right. Welcome to JavaScript Jam Live. Thank you so much for joining us today. This is gonna be a little bit open mic today. We're gonna talk CWV, core web vitals, type-safe React Query, HTML superpowers, and anything else that's on topic is good to go. JavaScript, Jam, web development, we talk about it all. Yes, indeed. In fact, if you're a beginner or you're seasoned and you've been doing this for quite some time, it doesn't matter. We love to hear from everybody. So excited for today. I have with me here a co-host, Anthony, and a regular, you could even call him a co-host, speaker, Daniel, as well. Super excited for everybody in the room today.
00:01:42 - Daniel
I feel like we were doing a Where's Waldo of Anthony.
00:01:47 - Anthony Campolo
Yeah, yeah, I'm here, I'm alive.
00:01:51 - Scott Steinlage
He's good to go. That's awesome. Yeah, I got in touch with him. So I'm super excited for Anthony to be here and really excited for our talk. So with that being said, we do this every Wednesday, 12 p.m. Pacific Standard Time. Like I was saying, let's have a good time. Let's do this. Let's talk about what's on topic. And if you haven't signed up for our newsletter yet, just go to JavaScriptJam.com, sign up, and that way you'll get the deets on everything that's going on in the JavaScript and development world. Latest and greatest news, for sure. In fact, let me share the latest episode, the latest newsletter iteration that was written by our dear Anthony, really quite well, actually. And I'll post that in the comments on the thread of this live. So with that, Anthony, what's up, brother? How are you? Daniel, how are you? Hey, Jen, how are you? Welcome to the room.
00:02:56 - Anthony Campolo
I'm doing all right.
00:02:58 - Scott Steinlage
Good.
00:02:59 - Anthony Campolo
Eating some bread. That was nice.
00:03:01 - Scott Steinlage
Oh yes, bread is good.
00:03:04 - Anthony Campolo
How are you doing?
00:03:05 - Scott Steinlage
I'm doing wonderful. I should be eating, but I'm not. I don't think I've had lunch yet. Looking forward to it. So yeah, I am Scott Steinlage. I am the technical community manager here at Edgio. Anthony, you want to introduce yourself? Feel free. I can do it for you, though, if you want.
00:03:30 - Anthony Campolo
My name is Anthony Campolo. I am a developer advocate at Edgio, and I also host FSJam, and I'm on the Redwood team through that.
00:03:39 - Scott Steinlage
Yeah. If you haven't checked out FSJam, please check out that podcast as well. They have some awesome hitters on there, some really influential people in the technology space. So in fact, they were nominated for a GME this past year, which is really cool.
00:04:00 - Daniel
Congratulations.
00:04:01 - Scott Steinlage
Yeah, thank you. That is awesome. All right, so shall we get to the topics here? Ishan will not be joining us today. He's actually out of the office today, but he will be rejoining next week. All right, let's get this newsletter here up and loaded. JavaScriptJam.com, and at JavaScriptJam.com you can click on Newsletter Archive. Check that out, folks. And then just click, and let's see. Yeah, here it is. And go to Twitter. You know what's interesting on desktop? It's kind of hard to find the space.
00:05:01 - Daniel
You know what's most interesting about desktop is the fact that I can't talk when I'm on desktop.
00:05:05 - Scott Steinlage
That's true. That's so true. Oh, gosh.
00:05:10 - Daniel
Still drives me nuts. And the fact that I have to take out my phone is ridiculous.
00:05:16 - Scott Steinlage
Yeah, especially as a developer, right? A lot of developers would just rather do things on their PCs, computers, desktops, whatever, you name it. Yeah. And this is a big world for developers, right? Twitter, right? I mean, yeah.
00:05:35 - Daniel
Know your audience. Come on, Musk.
00:05:37 - Scott Steinlage
Yep. Come on, bro. All right, now let me grab this link here. And there it is. Back to Twitter comment letter. There we go. Paste. It's in there, folks. And I'm going to go ahead and throw this obviously into the header of our space here. Boom. In the header.
00:06:26 - Anthony Campolo
Nice.
00:06:27 - Scott Steinlage
That only took forever. You can click on that and go there.
00:06:37 - Daniel
So I see this type-safe React Query. Did this just come out?
00:06:44 - Anthony Campolo
Yeah, maybe like a week or two ago.
00:06:49 - Daniel
What's your first thoughts on it?
00:06:51 - Anthony Campolo
TRPC is eating the world.
00:06:56 - Scott Steinlage
I don't know.
00:06:57 - Daniel
I mean, TRPC is pretty cool. I guess I just don't see the huge value of it. I mean, I get it. I just don't know. I'm just not as hyped about it as everybody else.
00:07:15 - Anthony Campolo
Yeah, I mean, I wasn't really on the TypeScript train at all, or the type safety train, for a while. I think that the way that you can do it with end-to-end type safety is pretty sweet, so I understand why people are excited about it, especially since I was in the GraphQL world forever. I have to believe that that was something I had that others didn't for the longest time. And so I think that's kind of partially what it is. Some people have already had this, and so I kind of take it for granted, whereas others are getting it for the first time and are very excited about it. But I think the fact that it's in React Query now, which is kind of what TRPC has been using very heavily for its React-based projects, just kind of shows how that influence is bleeding into other projects.
00:08:06 - Daniel
Yeah, no, it makes sense. I mean, I have never been on the TypeScript train, but in the last three weeks I kind of embraced it. I'm just addicted to Zod, and everything about it I really enjoy. But I've also lived in static or highly typed languages most of my life, so it wasn't that big of a change for me. But I really like the flexibility of it. And when hooks came out, Query wasn't around, so I didn't really get the experience of Query. But now that I'm kind of diving back into the ecosystem, React Query is probably one of my favorite libraries that exists. I mean, it just eliminates so many issues that you normally run into with basic patterns. And knowing that it's type-safe now, that just makes life so much easier.
00:09:00 - Anthony Campolo
Yeah, and I had been hearing about React Query for the longest time and didn't really use it until, let's see. Actually, I'm still not really using it that much, but I remember Blitz was probably the first time I'd ever heard of it, when Blitz was using it. And then there's this long conversation about whether Redwood should use it instead of Apollo, that we kind of made it swappable so you could use that if you wanted to. So it's already embedded in a lot of frameworks, I think, that a lot of people don't even realize.
00:09:32 - Daniel
Yeah, that makes sense. It's funny, but I hadn't given it a chance, and I sat there writing my own hooks. I'm like, there has to be something easier. This is just such a pain now. I'm like that negative Nancy still talking about class components. That's like the golden era, I think, just because that was when I mostly focused on front end, when class was dominant. And I'm so used to React being class-based that the shift is like, why am I even using React? It just feels so different. It doesn't even feel like React like it used to anymore. But now I'm getting adjusted to it, so it's enjoyable. And same thing about GraphQL. I mean, I was big on the GraphQL train for a long time too.
00:10:25 - Scott Steinlage
Awesome. Yes, type-safe React Query, that's the conversation that's happening here. Hey, Bro Nifty, what's up, bro? Long time no see. Well, not long time. You were here a couple weeks ago. How's it going, dude? One of the usuals, one of the regulars. David the Dev, how you doing, sir? What's up? The MERN Stack Programmer, how are you? Anything you want to talk about with type-safe React Query? By the way, for those who are just joining us that haven't joined us before, maybe you have, but either way, we love to hear from everybody, right? Whether you're a beginner, whether you've been doing this for a very long time, we like to hear from everybody. Feel free to request to come up, just like Bro Nifty did. We brought him up, and state an opinion, fact, question, comment, whatever. We love to hear it. Bro Nifty, what's up, dude?
00:11:37 - Bro Nifty
I came here to spit facts and chew bubblegum. I'm all out of bubble gum.
00:11:42 - Scott Steinlage
Oh man, we're spitting facts.
00:11:44 - David
Hey bro.
00:11:46 - Bro Nifty
Hey, what's up? I'm so excited that Anthony's working there now too, and you guys are there. Everybody's here now. And then yeah, it was great with Daniel, although I can't really relate, Daniel, as to the classes. I did not enjoy binding the interface to a class with this keyword and the bind, you know, explicitly binding it. I feel like hooks are really a nice way, with a functional component returning JSX, and the hooks implicitly hooking into the lifecycle methods rather than creating a class which then gets rendered and explicitly calling the lifecycle methods inside the class, creating explicit state inside with a constructor and all those types of things. I felt like it's really, really overkill.
00:12:52 - Daniel
I mean, honestly, I agree with you. I think, from my perspective, that's how I learned React. When I first touched it, Flux wasn't even out. I came up with it during that period of time where it was habitual. Class components were React. That's all there was to it. So I think when you had done it for so long, and that was really my first big front-end experience outside of Rails, it's second nature. It took me a while to get adjusted to hooks. I enjoy them now. I definitely prefer them. It's much less code, it's more optimal. I think it was just getting used to the patterns and exactly how, you know, I was addicted to useEffect for like two weeks, and I just realized it's just garbage, and learning all the different patterns now and how to work around them and understanding how it works today versus how it worked six years ago. But now that I've adjusted to it, switched over to TypeScript mostly, it's a very enjoyable experience.
00:13:54 - Daniel
I will say that class-based with TypeScript was terrible. It just wasn't even functional, whereas now it feels like TypeScript and React are one. You want to use TypeScript and React. It just feels natural.
00:14:11 - Bro Nifty
Would you agree, I don't know where we are on the useEffect thing, but would you agree that useEffect's job is to call a function without requiring user input, so automatically either when it starts up or when a variable in its dependency array changes?
00:14:35 - Daniel
Yes. Honestly, if I were to use it, that's the context that I could use it in. I mean, it's pretty much just like when you use componentDidMount or didUpdate. Those would be the same exact scenarios that you would use both of them in. But for me personally, I have made it an effort to not use it at all if I can help it, unless it's to initialize. I'm mostly focused on using useCallback, useMemo. I'm really trying to stay as much as I can away from useEffect. And of course now I'm messing more with queries, so it's kind of eliminating the conversation altogether. But I was doing a hefty amount of creating my own hooks because of it, because I just would have issues with useEffect. And let's say I'm working with Firebase. I didn't want to work with a constant repeating pattern, so it just ended up being a joint hook between two different lifecycle methods and how the hooks with the actual Firebase components would also work. And yeah, I felt it almost like, why use this particular function?
00:15:38 - Daniel
It's so dangerous. It killed performance constantly for me.
00:15:45 - Scott Steinlage
Cool. Cool.
00:15:50 - Bro Nifty
I don't really have much else to say off of that. I agree.
00:15:54 - Anthony Campolo
Yeah, I was gonna say I was in a bootcamp that was, maybe when I was in it, maybe two years after hooks had come out in React, so the shift had already happened where it was pretty clear it was the thing to do. But there's still tons and tons of code written in class components even today. And so they wanted to teach us how to do both, which wasn't really possible, I feel like, because we had to learn so much in the bootcamp. And I think there's something to be said that even if class components are worse than hooks, at least back then there was one way to do it and you could learn the way to do it, and it would work. Whereas in this world where we had to learn both, you learn a little bit of both, and then neither of them would work. So it was kind of a tough place to be. So I think that just having one way to do it would be really nice. And that's not really something we could ever have anymore, because now we're in this world where we can't get rid of the old class stuff.
00:16:55 - Anthony Campolo
But whether you're writing in the new
00:16:57 - Scott Steinlage
stuff,
00:16:59 - Daniel
for sure, absolutely.
00:17:09 - Scott Steinlage
Awesome. Well, in the newsletter, there was also talk of HTML with superpowers. I'm not going in any order here, but I just thought it was a good hook. So, I mean, you would think HTML superpowers, HTML with JavaScript anyway. But yeah, it's more about web components, right? Which is pretty cool. Who is the author of this?
00:17:41 - Anthony Campolo
Yes, this is Dave Rupert. Ever listen to Shop Talk?
00:17:46 - Scott Steinlage
Oh, yes, right. I remember you telling me about that. And I have listened to a couple.
00:17:50 - Anthony Campolo
Yeah, great podcast. That's Chris Coyier, who most people know was the creator of CSS-Tricks and also CodePen, and then Dave Rupert, and they've been doing that show for over 10 years, I think, a really long time. So it's some of my favorite weekly listening. And Dave is one of the more prominent web component advocates, and I think one of the more successful ones in that he is able to speak to people who are using more modern component libraries. He's a big Vue guy, and yeah, he's been going on a lot of podcasts. He was on PodRocket last year talking about that. He feels like web components are ready for prime time, or they're at a place where you don't need to keep saying, I'll use web components when they're ready. He thinks they're ready. So I've been kind of dipping my toe in every now and then. There's also all these web component frameworks now, like Enhance and others that we've talked about. So yeah, I think the more good resources for this stuff, the better, because web standard stuff can always be tricky.
00:18:58 - Anthony Campolo
Sometimes all there really is is the spec, and then you go to the spec and the spec's really hard to read, and so you don't really know what to do. But yeah, I put this in here just because I know it's a common topic everyone's talking about, and there's not a lot of great resources out there. So hopefully this can help some people out.
00:19:15 - Scott Steinlage
Yeah, we're all about trying to provide resources for people and expanding different things. So I'm going to go ahead and put "check out more on webhooks" and throw the link to that. It is in the newsletter, though. If you click in there, go to the newsletter, you can see it in there, but it doesn't hurt to throw it here under the comment as well. I'll pin it inside our live here in our space. Super exciting stuff. I don't know if you want to dig into another topic from the newsletter, Anthony, while I do that.
00:19:53 - Anthony Campolo
Yeah. What were some of the other ones on there?
00:20:01 - Scott Steinlage
Yeah.
00:20:02 - Bro Nifty
Let's do the newsletter. I think book clubs and newsletters are perfect topics, those kinds of things. So yeah.
00:20:09 - Anthony Campolo
Are you subscribed to the newsletter?
00:20:11 - Bro Nifty
If I'm not, I will be right now.
00:20:15 - Scott Steinlage
JavaScriptJam.com, bro. Yeah, yeah. You had data binding in React with Josh Comeau, and there was talk about core web vitals, [unclear] recommendation. Yeah, let's see.
00:20:43 - Anthony Campolo
JavaScriptJam.com, there we go. Yeah. Oh yeah, so the core web vitals recommendations. This is really good. This is on Web.dev, so if anyone is not familiar, this is a really great resource called Web.dev. That's the domain, and that's pretty much, I think, the Google team. I think there are people who are Google developer advocates. If you ever hear terms like largest contentful paint or time to first byte, things like that, those are the core web vitals. Ishan talks about them frequently. He's very much an expert in them. And they are always kind of shifting and changing and being re-optimized, and which ones they focus on can sometimes shift. So it's always good to stay up on what are the current best practices, because they really shift a lot, especially when it comes to performance. So they recommend things for each of the... there's the web vitals and there's the core web vitals. The core web vitals are the really important ones, and these are ones like largest contentful paint, which is basically going to be the largest image or largest thing that needs to render on the screen.
00:22:11 - Anthony Campolo
And so they're giving tips like, ensure that whatever your largest contentful paint resource is, make sure that it's discoverable from the HTML source. So if you need to run some JavaScript that then fetches the thing, that then displays the thing, then that could be an issue. So there's lots of tips like that in here, and making sure you're setting priority correctly so things are fetching in the correct order, and then things like using a CDN to optimize your documents. So a CDN like Edgio maybe would be a good choice. So yeah. Anyone else seen this article? They also recommend things for cumulative layout shift. This is a really common one. I think that most people who surf the web frequently will notice that you'll open a page and then you'll go to click something, and a split second before you land on it, everything on the page moves and you click an ad instead or something like that. That happens to me constantly. It's so frustrating. So they recommend setting the explicit size on any content. That way, when the page loads, the places that things will be will already be understood by the browser.
00:23:34 - Anthony Campolo
What else we got here? Avoid animations and transitions that use layout-inducing CSS properties, so try and avoid messing with the layout if you don't need to, and then breaking up long tasks, have a general optimization strategy. Then the big one: avoid unnecessary JavaScript. This is where a lot of the web component frameworks are looking to make a big impact. And then avoid large rendering updates. That's where things like Solid can come in and give you a lot better rendering performance versus something like React. There's a lot of good advice here, both very, very technical but also very practical, and like just-do-this kind of instructions, which is great because there are so many ways to optimize our websites these days. Being given very clear, prescriptive advice can be very useful for developers.
00:24:35 - Bro Nifty
Web.dev is an excellent resource.
00:24:38 - Scott Steinlage
Yeah, absolutely. I threw that in there. Just go to PageSpeed.web.dev, or click the link at the top there just here in the chat, and you can type in any website and get that on it. So...
00:24:54 - Bro Nifty
Yeah, when I go on there, I really feel like I'm missing a trick, several tricks, in fact. But I can't really get up to that level. I don't think I'm ready to read some of that stuff. Some of it's just like, oh my gosh, I need to take like 10 more classes or get my PhD before I start reading this. No, just joking. But some of the stuff, especially on streaming, like web streaming, and I don't know whether I'm mixing this with MDN and Web.dev, but there's definitely an overlap there. But when they start talking about streaming rendering, that gets really intense and really exciting for me in particular. But I started looking at it, and then it got a little bit too confusing for me, so I need to do some remediation and then circle back on that. But yeah, those Web.dev articles, they've got everything in there. Really, it's really composable and generic in the sense that you could use it for anything. They have stuff for payments, web payments, streaming, performance.
00:26:01 - Bro Nifty
Everything under the sun that's important to developers for not only the actual web platform, but mobile and different... I forgot what it's called, but when it's the hybrid between the two, when they have the blah, blah, blah. But yeah, all that kind of stuff. Yeah, it's a very important resource. Yes.
00:26:20 - Anthony Campolo
Yeah, I had the same experience when I was first learning core web vitals in general. I thought it was so confusing, and I was like, why am I not smart enough for this kind of thing? But I think they don't make it particularly easy to understand. I think they picked terms that technically make sense when you sit down and have them explained to you, but when you actually hear them spoken aloud, they can be very confusing. And then they made acronyms out of those confusing terms. So it's like, no wonder no one understands any of it. They picked really hard terms and then acronymized them and then threw 10 of them at us at the same time. So yeah, I think it's probably their own fault that it's so confusing, and it's not necessarily because they're so much smarter than everyone. They just didn't pick the best way to communicate the ideas.
00:27:09 - Bro Nifty
I forgot her name, but the Google manager. I don't know if she's still there now, but she wrote a book. Sarah is Ito, Sarah Ito, Sarah something. Anyway, she made a real good point about how it's important for people who are making frameworks and libraries and tools and things like that to try and strike the balance between either having all this information dropped on them and they're just awash in a sea of information. She actually phrased it much better than I could. I need to read it so many times until I memorize everything she said. I have to buy her book too, based on what she said there. It was like the smartest piece of tech advice I think I've ever read. But she was saying, yeah, strike a balance so if a user is looking at documentation or looking at an article or using a library or using a tool or framework, strike the balance between not having to go into a rabbit hole to figure something out or being just awash in a sea of information that they have to wade through, but being able to kind of lead them in a way where it's...
00:28:20 - Bro Nifty
It's not done all for them. They have access to the underlying capabilities, so it's not brittle, like they have to only go the happy path designated for them, and if they want to go anywhere outside that, it breaks, it doesn't work. I don't know. I'll have to dig it up. I made some screenshots of it, but I think she made some really good points recently. It was about a week ago, I think, when she did a little post thread there.
00:28:56 - Scott Steinlage
Yeah, that's good. Thanks for sharing that, man. You know, it's funny, speaking of core web vitals, I actually wrote out kind of an email sequence about core web vitals, but I told it from the perspective of kind of a silly story, and I call it the Google Slap. And you know, Google's done this many, many times over the years for businesses, websites, people utilizing and trying to have search engine optimization because CWV, core web vitals, is a big piece of obtaining ranking on the first page and whatnot, right? Because that's where a majority of clicks are being had, right? But anyway, so yeah, it was kind of a comical thing talking about Googlebots and how they began crawling the web and searching for websites whose core web vitals were deteriorating, and Google would penalize them by slapping them with a Google penalty, going, explaining Google penalties and all these other things. But I should put that as a blog post.
00:30:16 - Anthony Campolo
Yeah. That's one of the reasons why this is so consequential and why I think a lot of people will find themselves sitting down and staring at all these terms being like, hey, I gotta learn this because I'm gonna get the Google Slap. I don't understand any of it. So it's a tough position to be in.
00:30:33 - Scott Steinlage
Absolutely, yeah. That's why it's good to know these things, or be partnered with a company that knows how to help you with these things too if you don't have the team to do it, right? It's exciting that we have the ability to have people that know how to do that.
00:30:54 - Anthony Campolo
We have the technology.
00:30:56 - Scott Steinlage
Yeah, exactly. Now Google's always changing things. The algos are always changing, as you know, not perfect, but at least they're trying to give us the answers.
00:31:08 - Anthony Campolo
What if one day they decide that the web is actually going too fast, that we all need to slow down?
00:31:16 - Scott Steinlage
Yeah, no, we need to bring 56k back, get some dial-up in here. Oh, man. Yeah, I remember those days. All right, what about...
00:31:32 - Anthony Campolo
Or at the halfway mark, if you want to give a station break.
00:31:35 - Scott Steinlage
Absolutely. Thank you all so much for joining us. This is not a recording. This is me live right now. Yeah, you're listening to me. This is Wednesday, yep, January 18, 2023. We do this every Wednesday at 12:00 p.m. Pacific Standard Time. Thank you so much for joining us today. If you're new, or if you've been coming here many times, we love everybody no matter who you are. Thank you so much for showing up. And if you're a beginner, or maybe even you're a seasoned developer, doesn't matter. We want to hear from everybody. Yes, everybody. In fact, actually, that's where the most value comes from typically in these things, when you guys are participating and having some fun with us. So if you have opinions, questions, facts, statements, whatever that has to do with JavaScript and/or web development, please feel free to request. We'll bring you up, we'll have a good time, it'll be fun. Hey, look at that, CO has requested. We'll bring you up here in just a second. But yeah, thank you all so much for joining us today. By the way, if you get any value from anybody out here up on stage or wherever, feel free to click on their face there, follow them, because I guarantee you're probably going to get value from them in other places as well, not just here.
00:32:52 - Scott Steinlage
And hey, you know what? If you haven't followed JavaScript Jam yet, hey, give us a click and do that too. We would love one. Also, we have this awesome newsletter that we put out every week, and Anthony has been mastering that thing for the last couple weeks now for us. Like seriously, there's some awesome value in there, and that's kind of what we're going over today, the latest iteration of the newsletter there.
00:33:15 - Anthony Campolo
Yeah, I'm throwing in also some podcasts if you're someone who likes listening to podcasts. I am someone who is obsessed with podcasts, so I'm giving you a weekly rundown of interesting podcasts to listen to, which I think, if you do have the time to sit down and listen to these, I know it can be a bit time-consuming, it'll really give you an edge, I think, over others in your profession because not a lot of people will take the time to sit down and listen to long-form conversations from leaders in the industry.
00:33:44 - Scott Steinlage
That's awesome. Yeah. So if you don't have time to read a book, maybe you have time to listen to a podcast and get a leg up on the industry, especially nowadays with everything that's happening in the tech industry and all the different companies, layoffs, whatnot. This is one way to put yourself ahead of everybody else and stay ahead of the game, right? So yeah, if you want to have that resource, go to JavaScriptJam.com and sign up for our newsletter. Why not? Don't miss out. All right, thank you all so much. Back to it.
00:34:20 - Anthony Campolo
So we've got someone joining us up here.
00:34:22 - Scott Steinlage
Carol, what's up?
00:34:23 - Anthony Campolo
Carol, how you doing? Hello.
00:34:26 - Carol
Hello, everyone. I'm a beginner, and I have obviously 1 million questions. I will start with one that came to my mind today when I was doing some research on options to build the project. So what do you think? Should I learn and build a project with Next.js 13, or should I start learning 12 first? Because I've heard that 13 changed a lot of things. So should I start with 13 or first go through previous versions?
00:35:06 - Anthony Campolo
Yeah, that's a really good question. So I would say, first off, there are changes in 13 that you won't necessarily need to worry about if you're using 13. So I would say anytime you're kind of learning anything, it's always good to go with whatever the current version is, unless it's like, this is the current version, but it's actually a beta version that's way in the future with a bunch of stuff that's broken. In this case, Next.js 13 is something that you're good to use, and to basically think of as the current Next, but there's something called the App folder, which is still kind of experimental and different. So I would recommend using Next.js 13, but don't go down the App folder route. You're going to want to use the Pages folder, and if you don't know what any of that is yet, you'll learn that as you go through the docs. But the main thing is you can use Next 13 and write your code as if it was an older version of Next, and then you'll be able to upgrade to the newer stuff when you want, but you won't necessarily have to worry about it as you're learning it.
00:36:17 - Anthony Campolo
Does that make sense?
00:36:20 - Carol
Yeah, that makes sense. So yeah, I was doing some research. I've learned HTML, CSS, JavaScript, React, I would say the basics, because I'm waiting for a course that is coming out in the summer from Jonas on Udemy. I bought a few courses from Alexander Schwarzmiller or some... I don't remember his name, from other people as well. I was going through the courses, and I've noticed that I don't like them so much. I like Jonas' course, so I'm waiting to do the course from Jonas on Next 13. On all of the courses that I have bought or was checking, a lot of them are doing the older version, and I don't know how to say this, I don't want to learn something that I'm not going to use later.
00:37:20 - Scott Steinlage
You probably know the struggles of, you know.
00:37:24 - Anthony Campolo
Yeah, the majority of Next projects that you're going to encounter right now are going to be using the old stuff, so you're going to want to know kind of how to do that because Next 13 is very, very new. It's only been less than six months, probably, and Next itself is over five years old. So you're definitely... and the new stuff is not so radically new that you need to rewire how you use Next or how you think about Next. It's really more just kind of how you structure your project that changes.
00:37:59 - Scott Steinlage
Great.
00:38:00 - Carol
Another question then. When you are starting projects with new things, are you first trying to understand all of it, the structures and everything, or do you just basically know what is the purpose of what you are building, you know that you are capable of building that with this technology, and you're just starting to build and learning during the building process? How are you doing that?
00:38:29 - Anthony Campolo
I mean, I really don't think the first one is actually possible. I think certain people convince themselves that it might be, but really in practice they end up learning it bit by bit while actually building something out. Because there are too many tools, they're too complicated, there's too much to know. You can't get a top-down understanding of something before you start. It's just not possible. So we all arrive at the second thing you said, which is just kind of building something and learning as you go. That's really what everyone has to do just because of how much stuff there is to know.
00:39:04 - Carol
Yeah, that's a strange feeling when I'm trying to... I know what I want. I know that I can accomplish this with some technology. But it's a little bit of a strange feeling that I'm going to build something and I'm learning it. I don't know how... it's like I will be building a house and learning it, and then later someone will be living in that house, and I will be worrying that something will be wrong.
00:39:31 - Anthony Campolo
Yeah, this is why you want to build your own house first before you build someone else's. So then you will suffer the consequences of your broken house first. Do you have a personal project that you're kind of working on, or do you have a thing that allows you to practice building with these tools? That's what I would kind of recommend.
00:39:58 - Carol
Yes. I would like to build something. That's the thing. I would like to build something that is actually useful. I don't really like the tutorials that are teaching you something where you're using huge stacks and everything and you're building a simple to-do app. That is strange.
00:40:21 - Anthony Campolo
Yeah. For me, just having a blog is kind of a good test ground and playground for me to learn things and continue expanding out. So I think that just having some website with some amount of content on it, a portfolio site, a blog, or something like that, that's always good if you don't have any ideas. But if you already have an idea, something you want to build that you're passionate about, then build that. But I find some people, they don't even know what to build. So in that case, I'm like, just build a blog.
00:40:58 - Carol
About React, as I said before, I'm not really happy with the courses that I bought. Is there any course or any learning path that you would recommend to a beginner?
00:41:12 - Anthony Campolo
Yeah, it's always gonna be hard to find a course that's going to be comprehensive and that's going to be paced well for you and that's still going to be up to date. So I usually recommend people look for current YouTube tutorials. They're not necessarily concise. You can find an hour- or two-hour-long tutorial on YouTube, but those will at least, if you're watching one from within the last year, be up to date. And then you can watch more of them and be exposed to more instructors, and then you don't have to worry about finding that one instructor who explains things just the right way for you. But if you are looking for a course, Epic React by Kent C. Dodds is pretty good. I haven't gone through it myself. I would recommend checking out Brad Traversy. He'll have a two-hour-long React 101 video on YouTube. So Traversy Media, his stuff's really good. And yeah, I think React is something that there's going to be so many resources on. There's going to be more resources than you know what to do with.
00:42:22 - Anthony Campolo
So I'd say kind of keep looking for stuff and see what you can find in the free area. And then if you really, really can't find anything that clicks for you, then you can kind of try out some of the courses.
00:42:38 - Carol
So basically I think the best option will be to learn, like you said, some short fresh course and then try to build something by myself, maybe reading the docs and stuff.
00:42:51 - Anthony Campolo
Yeah, exactly. And when you're learning React, if you go to the regular React site, you're going to be seeing the old docs. You need to go to beta.react.org or beta.reactjs.org, I think that's where the newest docs are. So that's kind of like a trade secret. Not everyone knows.
00:43:18 - Scott Steinlage
Awesome. Well, I went ahead and just created that list that you were speaking of and just kind of threw some of the things together and commented, boom, there we go on this space here. So there you go. There's some of the resources for React. Not everything showed up on that list for some reason, but I put the YouTube channel link to Traversy Media, of course, Epic React with Kent C. Dodds, and I thought I had just linked in there ReactJS.org, but I guess I'll comment below it with it. Yeah, there you go.
00:44:13 - Carol
Thanks.
00:44:25 - Scott Steinlage
Very good. So we can thank... oh, thank you for coming up, Carol, asking questions. Like I said, if you're a beginner like Carol here or you're seasoned and experienced, it doesn't matter. We love to hear from everybody. So if you have an opinion, fact, a question, a statement, whatever, we want to hear from you. Yeah, it just makes this that much more fun for everybody, and usually some really good conversations come out of it. Please feel free to request to come up. This is open mic, by the way. The newsletter, we have a great newsletter. You can go to JavaScriptJam.com, check it out, subscribe. And we were discussing some of the topics actually on this recent newsletter just a few moments ago. So maybe we should bring up a couple other things.
00:45:31 - Anthony Campolo
Like, yeah, I was gonna say, bit of a self plug here, but two self plugs here actually. So in the podcast this week in the newsletter, we had a Redwood episode, which was pretty cool. I actually haven't listened to this one yet, but I know the person because I'm on the Redwood team. So Amanda, she works at Okta and is kind of the other developer advocate type person on the team. So she joined B. Dougie, Brian Douglas, who a lot of you know, on Jamstack Radio to talk about Redwood. And funny enough, this is actually my second ever podcast appearance. Back in 2020, I joined Jamstack Radio to talk about Redwood. This is pre-1.0. We're now on version 4, actually. And so if you want to hear a more up-to-date interview of what's going on in the Redwood world, that'll be a really good way to learn about it. And then I also included the most recent FSJam episode. It's pretty relevant to a lot of things we talk about here. We had Eduardo Bouças join us to talk about Netlify's Edge Functions. So we talk about the edge a lot here, and we are seeing more and more companies like Netlify and Vercel build specific edge primitives, and they're actually built...
00:46:52 - Anthony Campolo
In this case, they're using Deno under the hood. So yeah, it was great to talk with Eduardo. He's someone who's very, very deep in this tech. And yeah, we had a great conversation. So check that out.
00:47:14 - Scott Steinlage
Awesome.
00:47:15 - Anthony Campolo
Theo jumped in real fast also. Or JDev. He is a great open source maintainer who I'm sponsoring, actually, so people should check out his work.
00:47:27 - Scott Steinlage
Sweet. We'll invite you to come and speak if you want to say a little something about what you've been up to. Man, let's hear it.
00:47:38 - Anthony Campolo
Yeah. So I would recommend checking out those podcast interviews, and then there's a couple others there. The React Roundup team gave their predictions for 2023. And then Lindsey Wardell, she used to be the host of Views on Vue. She talked about Elm on PodRocket. She's a big Elm proponent. And then Swyx, Shawn Wang, talked about crossing the chasm, which is one of those Gartner-type terms. Do you know what crossing the chasm means, Scott?
00:48:17 - Scott Steinlage
Oh yeah, crossing the chasm, for sure. Chasm, the something. I don't know, whatever you want to call it.
00:48:23 - Anthony Campolo
How would you describe it? I don't know if I really have a good definition.
00:48:27 - Scott Steinlage
Oh, we could ask ChatGPT to define it for us.
00:48:33 - Anthony Campolo
Good idea, actually.
00:48:37 - Scott Steinlage
That's my go-to now.
00:48:40 - Anthony Campolo
What does it mean to cross the chasm, ChatGPT?
00:48:44 - Scott Steinlage
Yes, live right now on JavaScript Jam.
00:48:48 - Anthony Campolo
All right. It refers to the idea that there's a gap that exists between the early adopters of a new product and the majority of mainstream customers. There you go.
00:48:58 - Scott Steinlage
There you go. Thank you, ChatGPT. So it's...
00:49:01 - Anthony Campolo
How do you get from me to someone who will pay you money?
00:49:05 - Scott Steinlage
Absolutely. Yeah. And I think you could use it in several different contexts, right? But definitely. That's funny. ChatGPT is amazing.
00:49:19 - Anthony Campolo
Oh, man, it really is.
00:49:20 - Scott Steinlage
Again, GPT-4 is coming out soon, right?
00:49:30 - Anthony Campolo
I just can't wait till it can do my taxes.
00:49:35 - Scott Steinlage
Yeah, I don't know, I might be concerned with that. It might slip something in there.
00:49:42 - Anthony Campolo
It's getting more likely to not make a mistake than me.
00:49:45 - Scott Steinlage
That's true. That's true. Awesome. Well, yeah, so you heard him. He was listing off all those podcasts that we have in our newsletter. So if you go to JavaScriptJam.com, you can subscribe there, or hey, you know what? We would love for you to subscribe, but you can also, when you're there, click on the top link, Newsletter Archive, and then you can click on the latest one. And that's where we're at right now talking about it. All the links for all the podcasts should be in there. I think what I'm going to do from now on actually is just grab all those links and as soon as we start here, just compile them into a tweet, throw them on there, so we have them there too. Yeah.
00:50:46 - Anthony Campolo
So those were the main things in the newsletter this week. I think the only other things that we didn't talk about was State of JavaScript, which we talked about last week, so check out that episode if you want to hear all that. And then Data Binding in React by Josh Comeau. And yeah, he's just someone who, anytime I see one of his articles going around, I usually assume it's going to be worth a share because he writes very thorough blog posts and has just a really good explanatory style. So talking about data binding, which is, you know, how do you bind data? How do you get inputs and selects and checkboxes and things like that to behave the way you want them to behave in React, which can be a bit complicated. Looks like we got Carol jumping back
00:51:42 - Scott Steinlage
up here real quick.
00:51:45 - Anthony Campolo
But yeah, so check that out. I highly recommend Josh's work on essentially anything. Great teacher, great content creator.
00:52:08 - Scott Steinlage
Hey, go ahead, Carol.
00:52:11 - Carol
I have another question about HTML, Canvas, and animations. With Canvas, would you consider that something that beginners should learn or no? And are those animations and Canvas stuff generally used in a real project or not?
00:52:35 - Anthony Campolo
That's a good question. I don't use it myself. I don't do very heavy animation work or graphic work or the stuff on the design end. I usually think of it as a spectrum from design all the way on one end and dev all the way on the other end, and people tend to fall somewhere along the middle. I'm very heavy on the dev end and very far away from the design end part. I would think of it like that: do you want to be more involved with the graphics? Do you want to have more fine-grained control over that? And then if that's the type of work you want to do, then it may be worth learning. If you're more concerned about building full-stack apps, then understanding how the database works and the whole data flow might be more important than learning Canvas necessarily. So it's partly, is this an area of work that you want to be specialized in and you want to learn? Then it's one of the more important things to learn. But if you're not as concerned with being a specialist in that part of the stack, then you could probably get away with not learning it right now.
00:53:38 - Anthony Campolo
And maybe if it comes up on a project, then digging into it.
00:53:45 - Scott Steinlage
Yeah, great.
00:53:46 - Carol
You know, I'm asking that question because during the learning process, I've seen many tutorials and many, let's say, example websites, or on YouTube people reviewing websites where there's a lot of scroll animations and then some Canvas animations and stuff like that. But generally in real projects, I'm not seeing that. So that's why I'm wondering if this is something widely used or if I can skip that and focus on some other stuff.
00:54:20 - Anthony Campolo
Yeah, I would say as a beginner, it's not the most important thing that you should be focusing on right now, especially if you're still at the stage where you're trying to learn React and that whole thing. And when people are learning web development and they want to really show off their skills, they'll create some of those more flashy websites with animations and things that change when you scroll and stuff like that. And I gotta be honest, I hate websites like that. I absolutely hate them. And I find that I am never, ever on a website to have an aesthetic experience. Very few people ever are. So it can be good to show off your skills, but I think it's actually a lot more important to understand things like accessibility. How do you know that all that animation and stuff is going to make any sense to a screen reader? So I wouldn't worry so much about all the flashy stuff. The flashy stuff is what some people go toward because they feel like they have to show off something flashy.
00:55:20 - Anthony Campolo
But I think if you talk to people who have actually been working at web dev for a while, they'll tell you that that's not really the most important thing to learn.
00:55:30 - Carol
Yeah, this is what I was thinking as well. When I'm going to any websites, what I care about is accessibility and experience. I want to know when I'm clicking something, I want to know what's happening. I want to have it easy and accessible, yeah, accessible, nice user experience. Not a lot of clicks, scrolls, and stuff like that. So that was probably what I was thinking. However, I was also watching those website or portfolio reviews, and there were a lot of animations, and I was like, okay, people are doing it, so maybe it is important.
00:56:19 - Anthony Campolo
So part of the challenge here is, who is your portfolio for and who are you trying to impress by showing it? If you're talking to someone who's a technical hiring manager, then you can have a good conversation about, this is my skills, this is what I can do, here's a thing that shows those skills. Whereas if it's just a recruiter who is going through and trying to figure out, out of this pool of like 100 people, who's going to be the one that they're going to want to recommend, then that stuff might be more eye-catching to a recruiter, even if it might not be the best demonstration of your abilities as a technical architect or something like that. So the flashy stuff can be nice to have, and there are definitely reasons to do it, but I think that you're going to be better served by learning just how to make a website functional first.
00:57:37 - Scott Steinlage
Awesome. Yeah, thanks for coming up, Carol, and asking that and sharing your opinion. Always good to hear from people in the audience, whether you're a beginner or you've been doing this forever. Come on up, just request and we'll bring you up. Well, I think, Anthony, were we going to go longer today or are we sticking with...
00:58:06 - Anthony Campolo
I mean, unless anyone else wants to come up and ask questions, we could probably start closing it out here.
00:58:12 - Scott Steinlage
Yeah. Okay, cool. Now's your time. The time is now if you want to come up. Join us right here on stage today live on JavaScript Jam Live. Hit request. We'll bring you up. You can ask a question, give a fact, opinion, comment, whatever. We love to hear it. If not, then I think that's gonna sum it up here for the most part for today. We discussed all the wonderful things in the newsletter. Thank you, Anthony, for putting that together as always. If you want to check out Anthony's awesome newsletter that he's writing for JavaScript Jam, go to JavaScriptJam.com and subscribe. If you're unsubscribed, you're missing out. Oh, look at that. David's gonna come up. David, how you doing, man? Been here for a minute. Glad you're in here. All right. Twitter, the delays, I swear, this thing. There you go. David's up. What's up, man? You are muted, though. Unmute yourself.
00:59:29 - David
Sorry, I didn't know that. I'm good. How are you doing, Scott? Actually, my question is kind of simple. What do you think about React and TypeScript? Does it really have any advantage, or is it better off just going on with normal JSX instead of using TypeScript? Is there anything particular concerning TypeScript and React?
01:00:03 - Anthony Campolo
That's going to be a controversial question, but I would say you're going to get the benefit of type safety. So if you want to have autocomplete when you're writing your code, if you want to get better error messages, if you want to have more introspection into where things are going to break in your application, then TypeScript can be useful. It's partly just, do you feel like TypeScript speeds you up or slows you down? And you can't really know that until you've started using it and learned a little bit of it. I would say it's probably worth learning at this point just because it's so common, and you're going to see it in so many projects, and so many other JavaScript developers are familiar with it. But you can also get along without it if you really want to. So yeah, it's probably just going to come down to personal preference, but then you'll also be on teams where your preference won't matter and you're just going to have to do it a certain way.
01:01:01 - David
Yeah. My reason for asking was I've worked with so many people and they love TypeScript, but I don't like TypeScript, so working on other people's projects is kind of difficult. But I think... I don't know. For me, I prefer to stay back with the normal JSX, work with JSX, but for TypeScript I find it so difficult to wrap my head around it, probably because I have to state types and other things. So I think I'm still kind of skeptical. Is it the future, or should I just go on with normal React?
01:01:44 - Anthony Campolo
Yeah, I think it's probably going to be the future in the sense that even if we end up moving off of TypeScript, we're probably going to build something TypeScript-like into the JavaScript language itself. So you might be able to wait it out and eventually not have to learn it, but there's really no telling how long it's going to be before we get to a place where we don't need it. It could be years, could be five years. But I would recommend checking out Create T3 App. It's a meta framework that kind of sets you up with React and TypeScript out of the box and gives you good conventions. So that kind of was what helped me get into TypeScript and not feel like it was this huge burden to have to learn and add to my projects that I felt already worked without it. So yeah, if you can find a framework that kind of configures the TypeScript for you, like Create T3 App, then that could be a really good place to be. Carol, do you have a question?
01:02:43 - David
Oh, great. Thanks.
01:02:45 - Carol
Another question, I would like to add something from the beginner perspective on TypeScript. I've completed the TypeScript course from Colt Steele on Udemy. It's really short. It's like 10 hours, I think. And as well, I have watched the latest Theo video on YouTube about how to use TypeScript, or he said "Don't Use TypeScript," I think he called that video. And I was thinking, I think this is really good advice, to just start writing JavaScript in TS files and add some types when you are building. This is how I found this really nice flow of learning.
01:03:38 - Anthony Campolo
Right. You can adopt it incrementally, and you can kind of type things as you go and leave things untyped up until you want to type them. So that's a really good callout, that you don't need to go from an untyped project to a 100% typed project in one go. You can kind of do that incrementally where it makes sense, and then you can start to get some of the benefits of typing without needing to necessarily go all in and have to figure out a whole type system for your entire project.
01:04:13 - Scott Steinlage
I went ahead and linked Create T3 App there in the comments, and it's linked at the top here if you want to click on it, check it out. Awesome. Thank you guys so much for coming up and asking questions. Hopefully that answers everything, and I hope we delivered a lot of value to you guys today. I know we got a lot of value from you all just being here together and being able to have some good conversations about JavaScript and web development. Thank you all so much for joining us. Remember, we will be here every Wednesday at 12:00 p.m. Pacific Standard Time, so please feel free to join us every week. We have quite a good following, and when new people come and stick around... Carol, what's up? One last question here...
01:05:14 - Carol
Oh, we're finishing already. Just a quick question, because I watched another video on YouTube from Web Dev Junkie. He was saying that he is probably not going to use REST anymore. He's going to use TRPC. What do you think about this for beginners, TRPC, REST, or both?
01:05:39 - Anthony Campolo
I mean, this is going back to Create T3 App. TRPC is in Create T3 App. So I would recommend, if you did want to go down that route, using a meta framework that kind of makes it easy for you. And then he actually hopped out, but Theo or JDev is actually building a meta framework that's basically Create T3 App with Solid instead of React. But TRPC is still pretty new and is going to be very complicated for a beginner to wrap their mind around. So everyone needs to learn REST, period. You can't really get away from it, so you're going to have to learn REST first. And then TRPC is kind of a slightly nicer way to do what is basically REST anyway. So yeah, just learn REST, and then at a certain point, if you want to learn TRPC, you can learn TRPC. But the bigger concepts that you need to understand are just what is an endpoint, and what are PUTs and POSTs and GETs and all that.
01:06:46 - Carol
Great, thank you for all your advice today.
01:06:51 - Anthony Campolo
Yeah, thanks for joining.
01:06:52 - Scott Steinlage
Definitely.
01:06:53 - Carol
I will be joining more whenever I can. I love this format of allowing beginners to ask questions. Really great.
01:07:08 - Anthony Campolo
Yeah, we appreciate it.
01:07:09 - Scott Steinlage
Thanks for coming up.
01:07:10 - Anthony Campolo
And you know, I was a beginner not too long ago, so I understand the struggle and always happy to help out.
01:07:19 - Scott Steinlage
Yeah, thank you so much, Carol. And you've definitely made this live together here, this space, that much better because you came up. So I appreciate you, appreciate that. All right, if that's everybody, then I think we're going to call it good for today. Like I said before, if you found value from anybody speaking up here on stage, go ahead and click on their image there and follow them because I promise you, you will find value from them in other places on Twitter besides right here. And hey, we wouldn't mind a follow on JavaScript Jam as well. And I know I've said it many times, but I don't want you to miss out on the value there is in the newsletter, so don't miss out. Go to JavaScriptJam.com and subscribe if you're not already. Carol, I saw you subscribe. Thanks, man. Appreciate that. Awesome. Follow Carol's lead. All right? Love y'all. Thank you so much, and we'll see you in the next one. Yeah. All right, y'all, thank you all so much. Love y'all. See you next time. Peace.