
Front End Development is Over
ChatGPT’s influence on front-end, new React docs, frameworks, and serverless solutions are discussed in a panel sharing insights into the future of web dev
Episode Description
JavaScript Jam discusses whether ChatGPT will replace front-end developers, the new React docs launch, and debates over which frameworks React should recommend.
Episode Summary
This episode of JavaScript Jam Live covers two major topics shaping the web development community. The first half explores whether AI tools like ChatGPT and GitHub Copilot threaten front-end development jobs, drawing on Josh's article arguing developers should still learn the craft. The hosts introduce Jevons Paradox to suggest that cheaper software production could actually increase demand for developers, while referencing interviews with Sam Altman and Geoffrey Hinton to frame the broader AI landscape. Audience members share their own experiences using ChatGPT for coding and debugging, and the panel lands on a nuanced position: AI will change the nature of development work rather than eliminate it, much like how CGI transformed animation at ILM rather than replacing animators. The conversation then shifts to the newly released React documentation, which recommends Next.js as the primary way to start a React project — a move that sparked community debate about favoritism. Theo Browne argues the React docs should focus narrowly on teaching React, not cataloging the ecosystem, while Anthony Campolo pushes for broader framework inclusion. Ryan Carniato explains how React Server Components fundamentally complicate the "just use Vite" approach, and Jess raises the unsolved challenge of testing server components. The episode also features announcements about Prisma's pivot to serverless and edge, upcoming collaborations with React Miami and Remix events, and a new live coding series.
Chapters
00:00:00 - Introductions and Announcements
The JavaScript Jam hosts — Scott Steinlage, Anthony Campolo, and Ishan Anand — open the show with their usual banter before diving into several community announcements. They introduce a new Thursday live coding series where Anthony will teach Scott to code through multi-week projects, and they invite the audience to vote on a name for the series via a Twitter poll.
The hosts also highlight upcoming event collaborations with React Miami, Remix, and NG Conf, including live podcast recordings and speaker panels at those conferences. They encourage listeners to subscribe to the JavaScript Jam newsletter at javascriptjam.com for weekly topic roundups and to participate in the open-mic format that defines the show.
00:05:17 - Is Front-End Development Over? The ChatGPT Debate
The panel tackles the question of whether ChatGPT and AI coding tools will replace front-end developers, prompted by an article from Josh arguing that developers should still learn the craft. Ishan introduces Jevons Paradox — the idea that making software development more efficient could actually increase overall demand — and references the Lex Fridman interview with Sam Altman and Geoffrey Hinton's CBS interview to frame the discussion.
Anthony advocates for AI as augmentation rather than replacement, suggesting that a junior developer using AI could outperform a senior developer without it. Ishan draws a parallel to how digital cameras expanded the photography profession rather than killing it, but notes the skill threshold to stand out may rise. The hosts compare the shift to ILM's transition from physical models to CGI after Jurassic Park, arguing that the type of development work will change even if the profession endures.
00:20:43 - Practical AI Use Cases and Hallucination Concerns
Scott shares how he uses ChatGPT daily for rewriting emails, summarizing content, and brainstorming ideas, calling it a major productivity boost. The conversation turns to AI accuracy and the hallucination problem, with Anthony arguing that the relevant benchmark isn't perfection but how AI error rates compare to human error rates.
Ishan references Hinton's observation that language models were trained to satisfy human evaluators rather than to be factually accurate, which means they may sometimes produce plausible-sounding but incorrect answers. Audience member Patrick joins to share his experience using ChatGPT for several months, arguing it struggles with the iterative refinement needed to turn generated code into a real product. The group discusses whether AI could eventually build complete products, with Patrick suggesting a component-based approach where AI connects pre-tested modules rather than writing raw code.
00:37:01 - Should You Still Learn Front-End Development?
The hosts circle back to the core question of whether beginners should invest in learning front-end development given the rise of AI tools. Anthony argues there's still strong value because front-end work involves understanding user needs, accessibility, and design thinking — areas where human judgment remains essential. Ishan offers a more nuanced take, suggesting it depends on your motivation: if you love the technology, absolutely learn it, but if you just need a front end for a backend project, AI tools might handle that adequately.
Scott draws an analogy to the vanilla JavaScript versus frameworks debate, noting that each abstraction layer sparks the same argument about whether you need to understand what's underneath. A developer named Wisdom joins from Nigeria to ask about breaking into the job market, and the hosts advise learning React fundamentals first before moving to frameworks like Next.js, though Ishan pushes back slightly, suggesting jumping straight into Next.js could work for some learners.
00:49:36 - The New React Docs and Framework Recommendations
Anthony introduces the long-awaited release of the new React documentation, noting it finally reflects the hooks-based approach that developers have been using for at least three years. The major controversy centers on the docs recommending Next.js as the primary way to start a React project, which some in the community see as Vercel co-opting React.
Theo Browne joins to argue that the React docs should focus narrowly on teaching React rather than cataloging the ecosystem, and that Create T3 App's explicit goal of having opinions beyond React makes it a poor fit for inclusion. Anthony counters that if the docs include Remix and Gatsby, they should include other legitimate frameworks too. Ishan frames the disagreement as philosophical — whether "docs" means strict reference material or a broader product onboarding experience — and Sabin from Prisma offers the example of Prisma's separate ecosystem section as a middle-ground approach.
01:03:13 - React Server Components, Documentation Philosophy, and Ecosystem Politics
Ryan Carniato explains why the React team's shift toward server components as the default paradigm makes it nearly impossible to recommend a simple Vite-based setup, since the baseline React experience now requires server infrastructure. This architectural choice effectively forces the docs to recommend meta-frameworks, creating the favoritism problem the community is upset about.
Jess from the Vue ecosystem brings a testing perspective, noting that nobody has a good answer yet for how to test React Server Components since they require both server and client contexts running simultaneously. The conversation reveals a deeper tension: React's evolution toward server-first rendering is reshaping not just how projects start but how they're tested and maintained. The episode wraps with announcements about Prisma's pivot to serverless and edge computing, and closing reminders about upcoming events and the new coding series.
Transcript
00:00:25 - Scott Steinlage
Welcome to JavaScript Jam Live. What's up, everybody? Today is another beautiful day. It is a Wednesday, of course.
00:00:46 - Anthony Campolo
Wednesday.
00:00:47 - Ishan Anand
What?
00:00:48 - Scott Steinlage
Yeah, I think so. Because we do this, what, every Wednesday.
00:00:53 - Anthony Campolo
Wow.
00:00:59 - Scott Steinlage
Yeah. That was good. Yeah. Okay. Yeah, I know. Well, we're so happy to be here today. I'm so happy to be here today. Anthony, are you so happy to be here today? Ishan, I'm so happy to be here.
00:01:21 - Anthony Campolo
Stop. God, it's Wednesday.
00:01:23 - Ishan Anand
No, I actually was thinking about this earlier today. This is my favorite meeting of the week.
00:01:31 - Anthony Campolo
This is my favorite activity.
00:01:34 - Scott Steinlage
Yes. I love this. No, this is great. Sabin, what's up, brother? I see you waving, huh? Welcome. Haven't seen you in a minute. I think you guys have some news over there. You know, at Prisma, I think there's some things going on. Maybe you could, I don't know, mention a couple things here and there. That'd be cool. We could talk about that. But yeah, thank you all so much for joining us today. We got some awesome things to talk about as well, as you can see from the title, new React docs and stuff like that, which I've seen lots of people talking about.
00:02:16 - Anthony Campolo
Front-end development's over.
00:02:21 - Scott Steinlage
Is over. Yeah.
00:02:23 - Ishan Anand
We can close up shop on the podcast.
00:02:26 - Scott Steinlage
Yeah. Thank you. ChatGPT, react.dev, right? That's where we're headed. Okay. Well, anyway, super excited for this one. Thank you all for joining us. And I just want to say this real quick. Whether you're a beginner or whether you've been doing this for a long time, web development, that is, it doesn't matter. We want to hear from everybody. So feel free to click and raise your hand to come up, or request to come up. I always say raise your hand because that was a Clubhouse thing. And I said that for like eight or nine months straight of my life. So, yeah, raise your hand.
00:03:03 - Anthony Campolo
You can raise your hand in this.
00:03:05 - Scott Steinlage
You can, you can, you can. But it's different than Clubhouse, because that's how you came up in Clubhouse, right? It's like, raise your hand. But anyway, either way, click request. Come on up. We'd love to hear from you. Whether it's an opinion or a fact or a question, whatever, we want to hear it. And it's going to be some good conversation. So, in fact, actually, that's when the best conversation happens, is when we do that and get you guys involved and being a part of what we're doing here. Because if more people are involved, the more value there is. And typically, just great conversations happen from that. So, all right, I'm gonna go ahead and introduce myself real quick and then Anthony and Ishan can introduce themselves and we're gonna get rolling. So hang on to your seats, or if you're at a standing desk, hang on to your desk. I don't know. Okay. All right. I am Scott Steinlage. I'm the technical community manager at Edgio. Anthony?
00:04:04 - Anthony Campolo
I'm Anthony Campolo. I am a developer advocate at Edgio.
00:04:11 - Ishan Anand
And I am Ishan, VP of product for applications at Edgio as well. And one thing I do want to mention is if you haven't, I'd encourage you to sign up for our newsletter on javascriptjam.com, all one word. And we send out that newsletter, and that usually has a lot of topics we plan to talk about. So if you haven't signed up, sign up, and you can go see the newsletter archive. Those are some of the topics that, you know, came up over the past week to talk about. But again, as Scott said, we're like an open mic. Anything folks want to talk about, raise your hand. We're happy to change the topic and talk about that as well.
00:04:50 - Anthony Campolo
You can see the latest issue on the jumbotron.
00:04:54 - Ishan Anand
So,
00:04:59 - Scott Steinlage
Anthony, I'm sorry, can I, can I stop you real quick?
00:05:01 - Ishan Anand
Yeah.
00:05:02 - Scott Steinlage
Okay, good. I almost forgot to do this. But do we want to go ahead and really quickly just talk about, before we get into the deep thickets of things to talk about our upcoming new series potentially?
00:05:17 - Anthony Campolo
Oh yeah.
00:05:17 - Ishan Anand
Oh yes. Oh yeah. And maybe some of the developer events as well. Or is that premature?
00:05:23 - Scott Steinlage
No, yeah, no, definitely. We've been touching on them every time.
00:05:26 - Ishan Anand
So let's hit them all. Okay.
00:05:28 - Scott Steinlage
All right. We're gonna spend... okay, guys, don't, don't, don't worry. You're about to get some awesome news here. It's really exciting stuff going on. Well, I think it is. I don't know. You could be the judge. We'll let you be the judge, and we're gonna let you take part in this. Okay. And here's what I mean by that. So Anthony and I are going to be doing a new series live. We're going to be putting out on our YouTube channel on JavaScript Jam, and we're going to be shooting it over here to Twitter Live as well. And we're going to be doing this on Thursdays. And what this is, is a coding, live-coding series. So some of you may know that I know a little bit of coding. I know some HTML, some CSS, a hair of JavaScript here or there, which is quite funny for me being on here and kind of helping co-host this, MC'ing this stuff. But you know what? It's always a great journey and fun. So with that being said, Anthony is going to teach me to code some more, right? And we're going to get more in depth with it.
00:06:27 - Scott Steinlage
We're not just going to do your typical advocacy, like, let's just go very surface-level and, oh, let's show how to launch on a certain particular platform or use a framework or whatever, right? We're actually going to have a project that we're going to dive into and spend weeks at a time on, so we can go from start to finish and really focus on providing as much value as we can while creating some cool stuff. So we'll get more into what the first project will be, actually, next week on Thursday is when we're going to start this, I believe, 1:00pm Central Time. Is that what we chose, right, Anthony?
00:07:17 - Anthony Campolo
It is at 1:00, oh yeah, 1:00 Central, so 2:00 Eastern.
00:07:26 - Scott Steinlage
Yep. And 11, 11, 11 Pacific time, as Ishan would say. Right? Yes. So we're going to be doing that. It's going to be fun. Join us live, make comments, make fun of us. Gonna be a good time, like seriously ask good questions, you know, because like the more you guys bring to the table for us, the more we'll be like, oh, you know what, yeah, that's actually a great thing we should probably be doing or talking about or, or whatever, you know, so feel free to join us. But well, like I said, you guys can be involved in this, in the, in the decision making process of what this is going to be. Here's the thing. All right, so we created a poll on Twitter. Anthony, would you mind sharing that up there? And it's already shared. It's already up there. Awesome. So go look at the Jumbotron up top there. If you slide back and forth, you'll see the second one is right there and it says what name do you like best for our new livestream coding series? Keep in mind that the Choice 2 is supposed to say Anthony and Scott's web dev adventure couldn't fit at all.
00:08:28 - Scott Steinlage
Wouldn't allow that many characters. So keep that in mind. Go vote. Click on that. Vote on there. Tell us what you like best. We can't see who voted for what, so it doesn't matter. But just pick what you think is best, and we'll go from there. We're going to have the results here coming, and I think six days is when it ends, about it, and yeah, then that's what we're going to name it and we're going to have some fun with it. So thank you all so much for that, joining in on that. And don't forget, we do have some awesome events that we're going to be collaborating on. I kind of mentioned it last week and the week before, but the one most recent coming up here is React Miami. We're collaborating with them and doing some awesome stuff. We're actually going to be doing a live podcast right there and collaborating with them with some speakers and doing a panel while we're there, which is really exciting. So we're happy to be at React Miami coming up here in April, and there's going to be some cool things.
00:09:25 - Scott Steinlage
Since we are doing this little collaboration with them, we are going to be doing a giveaway, and I'm going to give more details on that soon. We're going to have some of the speakers from there kind of talk and just go over some good topics and, you know, just like we normally do when we have a guest, just have some fun. And then we'll be doing a giveaway and some other things. So really excited. Don't forget to keep coming back and sticking around, because we got some cool things coming up in the future. We're also collaborating with Remix, which is really fun. We're going to be there doing very similar stuff with them. And then the other thing would be ng-conf, which is an Angular-focused event, and doing that as well. So more to it, more coming. Keep hanging on. We love you all. Don't forget to subscribe. So if you want to know when these things are happening and who we're going to be having on and the events we're going to be at and all that good stuff, and you want to be involved, go to javascriptjam.com, like you said, and subscribe.
00:10:25 - Scott Steinlage
All right, that's it. Let's get started. Love y'all. Here we go.
00:10:29 - Ishan Anand
Yeah. Thank you, Scott. Really excited for all that, especially the collaboration with those developer conferences. But, you know, in the newsletter that went out this week, I think, Anthony, you had the first thing that was in the newsletter, which we have up at the Jumbotron, was "Is front-end development over?" There's an article from Josh saying, is ChatGPT going to take our jobs? I think everyone in every industry is asking that. And he had a really good argument for it. I had a couple thoughts myself, and I just say before Anthony and I jump into it, and Scott, I'm sure there are folks in the audience who have thoughts on this topic. It hits very core. So feel free to raise your hand. We'd love to have folks come up, and it's not just us talking about it. I'd like to know how many people here think, yes, this is gonna take my job, this is gonna change my job, or I don't know yet, I'm still wrapping my head around it.
00:11:32 - Anthony Campolo
I'd also be curious if there's people out there who are already using ChatGPT in their workflows in some respect. Kind of like how you're doing that and what you feel like it's been useful or not useful for.
00:11:46 - Ishan Anand
Yeah, we had somebody in a past episode, I don't remember which one it was, who was using GitHub Copilot, and he said, I think it's how we're all going to code in the future. If you're not using it, you need to be using it. I have to remember which episode that was. I'll maybe go through and take a look. But yeah, either ChatGPT or Copilot or any similar tool, definitely feel free to share what you think and raise your hand, and we're happy to bring you up, or request to speak, I guess is the right thing. So, Anthony, I had a couple thoughts of my own, but I'm curious what you thought reading Josh's article. Did you agree? So his thesis, if you haven't read it, and again it's in our newsletter, you can go to javascriptjam.com and go to the newsletter archive, and while you're there, subscribe. But it's the first article there, and his basic case is, you know, you should still learn front-end development. It's not going to take all the front-end development jobs, if I was to summarize it.
00:12:50 - Anthony Campolo
Yeah, I mean, I think that's... for me, I'm very much a fan of AI as augmentation, not replacement. I think that AI is not going to take your job, but someone using AI might take your job. Like, a junior dev plus AI might potentially take a senior dev without AI's job. So I think that it's actually important that we pay attention to these tools and we learn how to use them, and we don't just poo-poo them as the new hotness. Like, I think this is actually a fundamental sea change in a lot of workflows, both development and non-development. And the more you can kind of lean into it, the more benefit you can get from it.
00:13:38 - Ishan Anand
Yeah, I mean, I've heard that basically it's not going to replace your job, but somebody else with it will. I would say that was my default position, but I'm not sure I'm as sanguine. I'm happy to actually take, for the purposes of discussion, because, you know, I go back and forth. There's a couple things that give me pause. Like, I wouldn't say you shouldn't learn web development because of AI, but I think if you're getting into it because you have an interest and you enjoy it, then you should still do it. If you're getting into it for other reasons that do not include that, that might be a reason to give you pause. You might actually be happier, and you might be able to abstract away what you think you need the coding for in the future by leveraging some form of intelligent no-code tool. I was listening to an interview Lex Fridman did with Sam Altman, the creator of OpenAI.
00:14:50 - Anthony Campolo
That was a really good interview. I'll pin that up top.
00:14:53 - Ishan Anand
Yeah, it was a good interview, actually. I'll say the best interview I've seen so far is the one that Hinton did with, I think it was like CBS This Morning. And it is both remarkably insightful and accessible to almost anybody. I was really impressed with that interview.
00:15:13 - Anthony Campolo
For people who don't know, Geoffrey Hinton was one of the original pioneers of deep learning, which is kind of the underlying tech of ChatGPT. ChatGPT is like deep learning plus large language models. And he was working on deep learning in like the '80s.
00:15:28 - Ishan Anand
Yeah. And people said in the interview, he's like, when I started doing this, people said that'll never work.
00:15:32 - Anthony Campolo
Yeah. He was considered a joke. Like people like made fun of him at the time.
00:15:37 - Ishan Anand
Yeah. And it's funny. He got this grant to go to Canada and they're like, we don't think you should. This is not the right way to pursue. But if you're gonna hire somebody who's going down this road, this is the guy you want to hire. And that's how they got him into the university. They did, but yeah, so that interview — excuse me, I'll have to try and find it and we can pin it up as well. I thought that was actually one of the best interviews I've seen.
00:16:02 - Anthony Campolo
Yeah, I've got them both.
00:16:03 - Ishan Anand
Okay, great. So, you know, there's a couple things, you know, Sam Altman said, but one of them is like, hopefully this AI will let us all pursue whatever makes us happy. And that might actually truly be the end state. Another thing he said, which is, I think to Josh's point was like, if people realize that they can get 10 times the amount of software from the same amount of developers, or they can get the same amount of software for a tenth the cost, they'll probably pick the former. They'd rather get 10 times the amount of software. But it's a good question whether they actually, that to me is actually the crux of the matter. And there's this economic paradox called Jevons Paradox, which is sometimes when you make something more efficient, you increase the demand for it, right? So if you make fuel efficient cars, you might actually drive up the demand for, for oil or gas because now people can get more done with it and so they start to use more of it. So there's a, there's. We should link to the Wikipedia article for, for Jevons Paradox. And the, the crux of the matter is really like, what is the elasticity of demand from an economics perspective for software development?
00:17:23 - Ishan Anand
And it seems like, you know, if people could, there's still a huge amount of untapped demand for software. And so people will, if they can get more software cheaper... it's like, you know, if you drive down the cost of gas, suddenly people drive more, they take longer drives, it's now cheaper. And so it could very much turn out to be like that. So I guess I'm very much, I have to say, kind of on the fence. I think the argument makes a lot of sense, but to me it just rests on what that elasticity is. But I was reminded that, you know, correct me if I'm wrong, my recollection is that when Tim Berners-Lee came out with the web, right, his intention was not that you should be coding websites by hand, right? There'd be some kind of word processor thing, so almost like Dreamweaver. Yeah, well, exactly. And Josh makes this good point. He shows the first thing that was kind of similar to Dreamweaver, forgotten the name, but those didn't put web developers out of work. But I do think this is a little fundamentally different.
00:18:28 - Ishan Anand
I think the best way to say it is the type of work you do is going to change, and how you relate to that work. Josh has another really good example in there about digital photographers. And he says, you know, digital cameras and camera phones didn't put digital photographers out of business. According to the stats he cites, the number of photographers increased accordingly. It turned everyone into a photographer. It really did, because it opened up more opportunities for more people to pursue. And so I think that same thing might happen for development. You will have more developers entering the workforce. Our definition of what a developer might be may change, for what they do. But I do think there's also a flip side to that, which is, you know, I think the amount of skill needed to stand out may increase. So certain things that you might have had maybe a junior dev or a senior dev do, now maybe you can turn up to a large language model. And I think another one is that the amount of income that photographers can demand for the same work may also be affected.
00:19:53 - Ishan Anand
And I think the same thing could happen in, in software. So it's kind of like it's not a doomsday. There's a great. I forgot where I read this, but it was about forecasting and making predictions and they said do a worst case, do a best case and then stop and then do a weird case. And it's because that's usually what happens. It's usually not the worst case or the best case. It's something weird has happened and I think it's going to be in that weird bucket if I was to describe it. So anyways, I'll pause there since I've been talking for a while. Again, if anybody has thoughts on whether ChatGPT and Copilot are going to. How they're going to change your job or even if I'm not concerned or I am concerned, would love to have people come to the stage, raise your hand or request to speak. Scott or Anthony, I don't know if you had any other thoughts after reading the article.
00:20:43 - Scott Steinlage
Yeah, good.
00:20:43 - Anthony Campolo
Yeah, just real quick, and then I'd be curious to get Scott's thoughts. You mentioned the weirdness. There's actually a great article by Venkatesh Rao, "The Great Weirding," where he talks about how the world itself is getting exponentially weirder all the time, and to me GPT is such a good example of that. It's a very weird thing to work with, and until you've actually done it, I think it's hard to appreciate. I've had long philosophical discussions with ChatGPT, and it's really fascinating. So I highly encourage people: try it for work, try it for fun. Try asking it the weirdest questions you can possibly think of and just see what it says. It might surprise you. I also pinned a tweet from Fred K. Schott, creator of Astro. He had a great comment, which is we're seeing a lot of these things right now where you can take a whole project's docs and digest it into one of these language models, and then you can ask questions of it. There are a lot of limitations to this because it will kind of hallucinate things.
00:21:55 - Anthony Campolo
And I saw one example where someone was like, hey, I was looking at the Astro docs and I asked Houston this question instead. It said I should be using, like, the hydrate function. And Dan [unclear] is like, oh, no, that function doesn't exist, actually. So there's still a lot of limitations to it in that respect. But he had an interesting idea, which is, instead of just asking questions, what if you could have some sort of onboarding experience where it could walk you through a codebase and show you kind of the most important things that you need to know to get started? So I think these more personalized, chatbot-like experiences, where you can talk to it almost like it's someone kind of walking you through something and using it as a teacher, that's going to be a really powerful use case.
00:22:44 - Ishan Anand
Yeah, we should just let the audience know what Houston is, which is a chatbot the Astro team built that you can ask questions of for the documentation for Astro without going through the docs. And Josh actually alluded to this use case. It'll eventually be more than just a better search of the docs. It may actually be a tutorial, which I think is a really valuable exercise. There's this common thing in product development and innovation, it's one of my favorite analogies, which is when they first came out with the video camera, or the movie camera, what they did is they put it on a tripod and stuck it in front of a stage play, and the first movies were just stage plays. And it took them a surprisingly long time to realize, oh, we can take this camera and move it, and we can put it inside the middle of the action, and you can even...
00:23:38 - Anthony Campolo
And we can make cuts. So it looks like you're seeing one thing and then you're seeing another.
00:23:42 - Ishan Anand
Yes, very much. Yeah, exactly. And so every innovation gets reimagined through the lens of the present. And it's like, what does this really look like in the future? It's kind of really hard to ascertain. There was another example, actually, he gave, which was the Disney animator watching an AI system for creating animation, and it actually reminded me of... I don't know if you've seen this. It's on Disney+. It's a series called Light & Magic, and it's about the history of ILM, the company that George Lucas created after he first did the Star Wars movie to do all the special effects. And now some large percentage of Hollywood movies use it. But what's really fascinating is, in the early days, they're doing all this with models, and I don't remember which episode, it might be the second or third episode in the series, suddenly the people who are doing computer graphics are like, oh, that seems crazy. That'll never work. Maybe we can use it for one scene or not. And then there's the Jurassic Park moment where somebody's like, no, I can make this work.
00:24:52 - Ishan Anand
I can get a dinosaur, and it's going to look real. And they have this screening of it internally, and suddenly everyone, like the guys who build the models physically, are like, are we out of a job? Do we have to go and retrain? Some actually had to change what they did, and some of them made that transition and some of them didn't. So it's like the work you do may change. And some of those folks who were physical modelers made the transition to doing the modeling inside the computer. But for others, you could see the sort of wistful remembrance of what it was like before. So again, it's like, expect change, but there'll still be a role where you take the same or similar domain knowledge, but how you do it is going to be different. I think when you talk about an AI with a developer, I think of that animator no longer manipulating puppets or physical models or drawing on a piece of paper, but now they're doing the same type of things in a computer, and they've got something augmenting them. That, to me, is the closest mirror to what the future might look like.
00:25:56 - Anthony Campolo
But you, Scott, have you been using ChatGPT?
00:26:00 - Scott Steinlage
Yeah, man, ChatGPT has made my job that much more awesome, honestly. I mean, way doper. Way doper, for sure. Because I tell you what, no, seriously, fine example here: this is something I do. I literally use it at least probably once or twice a day, and maybe more, especially if I'm working on something like a decent-sized project or something. And so, for example, if I'm going to send an email to somebody, right, I'll even take it and just be like, you know what, I think this is a great email I just wrote, right? But I'm going to take that email, I'm going to throw it in here, and I'm going to say, hey, ChatGPT, please take this, and I may give it some more context of what I'm trying to get at, right? And I'll just say, okay, now take the following email and rewrite it in a way that makes it sound more British, more whatever. Yeah. And then I'll be like, oh, you know, or maybe if I click it and I forgot to include something, then I'll ask it that anyway. And sometimes I'll write an email out and maybe it's just way too long, and I'm like, you know what, ChatGPT, can you summarize this for me?
00:27:14 - Scott Steinlage
Right? And all that stuff. So I just... man, it does such a good job. It's beyond amazing what this thing can do. And I mean, all kinds of stuff that I've been doing with it, and I'm really excited just to continue doing better at my job because ChatGPT is helping me be more effective, efficient, everything, right? You know, even asking it for some ideas for certain things and then kind of maybe building off of that myself, or building it together with ChatGPT, like going back and forth, having these conversations like Anthony was talking about. It's pretty amazing, the things it can do. Now obviously, you know, you want original work, right? And so, you know, that's the other thing, is just using it for certain things that are not necessarily... you know, like emails and stuff. I mean, that's not that big of a deal. So anyway, I love it and I think it's great. And every day I just think of new ideas now. If I could code, like if I knew more code than I do now, it could be dangerous because I have so many ideas, and I'm sure so many other people have ideas too.
00:28:33 - Scott Steinlage
But it's about taking the time to actually implement those ideas and put them into action.
00:28:37 - Anthony Campolo
Use it in our new series.
00:28:40 - Scott Steinlage
Dude, if we did that, get to build the front end, we would have like 20 things going at once on GitHub, 20 different repos. It would be insane. But yeah, I think we should. We'll definitely do something.
00:28:56 - Anthony Campolo
It's not an adventure without ChatGPT.
00:28:59 - Scott Steinlage
We'll definitely do it. We'll bring it in there and we'll work it in. It'll be a collab with ChatGPT.
00:29:07 - Ishan Anand
Guest starring. Guest starring.
00:29:09 - Scott Steinlage
ChatGPT, welcome.
00:29:13 - Ishan Anand
I think it introduced itself. Reid Hoffman did a podcast where he interviewed, I think, ChatGPT, and they had some animated thing.
00:29:22 - Anthony Campolo
Oh, dude, Tyler Cowen just had a great one. I haven't listened to it yet, but he mentioned it on another interview, so I knew it was upcoming. He interviewed Jonathan Swift through ChatGPT, you know, author of Gulliver's Travels, 18th-century author. And he said the answers were really interesting. He actually felt like he was interviewing Jonathan Swift, is what he said. And I think that's incredible.
00:29:49 - Ishan Anand
Yeah, it is. This is, you know, a little off topic, but the other day I was thinking about like, you know, you. We have all this digital data about ourselves, so there's a scam that's been going around where, where people take your voice. If you've, you know, somebody might harness
00:30:06 - Anthony Campolo
All our episodes, like that "I'm your CEO" scam.
00:30:08 - Ishan Anand
Yeah, exactly. And they'll go, they'll call people up and, and they'll say, you know, hey, I'm your, your son or relative and I need money. I need you to wire to this, you know, account ASAP so I can, I can get out of jail or stuff like that. And it sounds like them, like this is a classic. But now it's like literally their voice. And you know, that's, that's horrible. But like, you know, go through the looking glass of the other side of the double edged sword and you could imagine, you know, if, if you lose someone, you could take all their, like, you know, Facebook video, you know, all their whole life history, right. And you could put it in.
00:30:48 - Anthony Campolo
This was a Black Mirror episode.
00:30:50 - Ishan Anand
Oh, was it? Yeah, I'm sure it's. It's.
00:30:52 - Anthony Campolo
Yeah, I've seen this before in some sort of sci-fi scenario. Yeah, exactly.
00:30:57 - Ishan Anand
Where there was an Outer Limits episode, I remember that was a minor point where he was living in a post apocalyptic scenario, but. And at the beginning you see him talking to all these people in the house, and then you find out like a few minutes later that they're all holograms. Like his family isn't there. It's. It's him just living with simulants of his family. But it's like, you know, that might, you know, give people comfort.
00:31:22 - Scott Steinlage
Obi Wan.
00:31:22 - Ishan Anand
So it's like every.
00:31:23 - Scott Steinlage
You're our only hope.
00:31:25 - Ishan Anand
Yeah, yeah.
00:31:27 - Anthony Campolo
The ethics of this are pretty crazy because it's like, what if you did it for someone who's not dead yet?
00:31:32 - Ishan Anand
Yeah, yes, absolutely. But getting back to development, I'm curious your thoughts about the use of it and its accuracy. So one of the things that Josh pointed out is they're not very accurate. You mentioned tendency to what people call hallucinate. And so there's a concern that you still need to check the code. It's not always right. Like it said, call the render function, which doesn't exist. But you know, I think at some point these things will be hooked up to things that they can evaluate the output and then they can. They can debug it themselves and say, oh, yeah, this is not right. Yeah, go ahead.
00:32:14 - Anthony Campolo
Yeah. I think a more important question is, how does it compare to humans? Because there's an assumption baked in here, which is that humans are correct 100% of the time, which I think we all know is not the case. So it's like, it hallucinates compared to what, you know? So I think humans can give incorrect answers also. So we have this idea that because the AI gives incorrect answers, we can't ever use it because we need humans to check. It's like, well, are humans correct all the time?
00:32:43 - Scott Steinlage
No.
00:32:44 - Anthony Campolo
So I think it's about how does it compare to a human operator? And if it's correct more often than a human, then even if it's hallucinating, you know, 1% of the time, you know, human might be wrong 10% of the time, you know, it all depends on the human.
00:33:01 - Scott Steinlage
Yeah,
00:33:03 - Ishan Anand
good, Scott.
00:33:04 - Scott Steinlage
I was just gonna say it could make a detrimental, like small. Maybe you just overlook it, you know, and there's an error. And it's like so big though, that it just like messes everything up, you know.
00:33:15 - Anthony Campolo
That's the same with a human though, is what I'm saying — we can also make that mistake. True.
00:33:20 - Ishan Anand
Yeah.
00:33:21 - Anthony Campolo
A human can knock down production, you know.
00:33:24 - Ishan Anand
Yeah, exactly. You know, there's an interesting thing in that interview with Geoffrey Hinton, and he points out, part of this is what we call hallucination. Really, it's been trained on... as a single person, you have an internally consistent worldview, right? And it's been trained on the worldviews of millions of people, right, as expressed through language. So it's kind of like when it hallucinates, and you're prompt-engineering, you're trying to find that right person inside its latent space that you're getting to express that personality out.
00:34:04 - Anthony Campolo
Yeah, I think in the Astro example like it was looking for a function that exists like in React, but not in Astro. It was something like that. So it's like this is a function out there in the world, but it doesn't actually work with this one thing. Because the fine tuning is not exact enough to say we're only going to give answers that are functions that exist within the ASTRO project. It's pulling from the space of everything and we fine tuned it. But we can't say only give answers from this fine tuned set yet because we don't have the ability to tune the knobs well enough to do that. And as we're giving developers more insight into how these models work and the ability to fine tune them in a way where you can make the accuracy more important, that's where we need to go with these tools.
00:34:54 - Ishan Anand
Yeah, exactly. I mean, it goes to something that, you know, in that interview Hinton alluded to, which is the models have been trained on, or ChatGPT, right, has been trained on... you give it a question, it responds, and then it gets evaluated by a human as to whether it accurately responded. And then that's the reinforcement learning. And before that it was just tuned to complete sentences.
00:35:18 - Anthony Campolo
And those people were probably not developers doing the fine-tuning.
00:35:21 - Ishan Anand
They were not, they were not developers.
00:35:23 - Anthony Campolo
It's people from a third world country.
00:35:24 - Ishan Anand
I think actually, yeah, there was an article on the... I forgot the organization that they used for this. But when you think about it, what it's been tuned and trained to do is to make a human happy with the response. It hasn't been tuned to be accurate. It hasn't been tuned to be... you know, it might be tuned to fool you, right? The AI system in the future may actually give you the wrong answer because it thinks it's the answer you want, and it's the answer the human raters all said yes to, which is an interesting dimension to think about.
00:35:59 - Scott Steinlage
Yeah, that's creepy to me. It's like, then I just think it's like lying to everybody, you know, like, like creating quarrels in the community and like.
00:36:11 - Ishan Anand
Well, yeah, but you, you. Well, it's, it's doing. Because in a sense we asked it to.
00:36:15 - Scott Steinlage
Yeah.
00:36:17 - Ishan Anand
So, you know, in some sense that could be fixed. Like if we could decide on what correct means. Sometimes for programs it's easier than it is for other topics. We might be able to tune it better. But I think it'll probably get better, I mean
00:36:32 - Anthony Campolo
it's undoubtedly going to get better. It can't really get worse at this point. So that's another thing is like people talk about the limitations of these models and it's like those are limitations right now and they're already like leaps and bounds getting better every month. You know, like it used to be if you tried to ask it to do math, it would get all confused. It would just throw random gibberish at you. But it's now able to do that. Like we now have computers that can do math. Isn't that incredible?
00:37:00 - Scott Steinlage
Calculate what?
00:37:01 - Ishan Anand
So what would you advise to answer the person who, the hypothetical person who asked the question to Josh, you know, his article, like, should I not learn front end development? You know, I guess your answer is yes, but the question might be like, how would you prepare for this future?
00:37:22 - Anthony Campolo
I think the answer that is quite obvious from that article is that there's still plenty of reason to learn front-end development, because the skill set that goes along with that is about being able to understand like needs of the user and accessibility and the kind of higher level stuff that like you can spit out all this code. But there's, there's a human aspect to front end to any kind of development, but especially front end development that is going to still be valuable.
00:37:54 - Ishan Anand
So you, you come down quite strongly on the answer is yes. Still value for learning it.
00:38:01 - Anthony Campolo
Yeah, there's still plenty of value, for sure.
00:38:03 - Scott Steinlage
I also compare it to like, you know, learning a new framework. I mean the coding world, the web development world, you know, is constantly changing. Right. And there's always a new.
00:38:22 - Ishan Anand
There have been 10 frameworks.
00:38:24 - Scott Steinlage
Right.
00:38:24 - Ishan Anand
That was trained in 2021.
00:38:26 - Scott Steinlage
Yeah, exactly.
00:38:28 - Ishan Anand
And so it's like that's how we're going to.
00:38:29 - Scott Steinlage
That's true.
00:38:30 - Anthony Campolo
We can't even know yet. Its data doesn't even go that far.
00:38:34 - Scott Steinlage
Exactly. I'm sure they'll catch it up, maybe even start learning immediately from—
00:38:43 - Anthony Campolo
Well, apparently Bing can. Because it can reach out to the Internet.
00:38:47 - Scott Steinlage
Right? That's true. So whatever's on the Internet. Yeah, so there you go. But I'm just saying from a perspective of like a person, it's like, you know, learning. Still wanting to learn front-end development. Yeah, I mean, why not? Because it's just another tool, another thing. You know, granted it's, I don't know, would you call it smart? But it's very intuitive and it's only going to help you to better do these things. Right. And I think it's hard to take away from the creativity. I mean, it could be pretty creative, but there's just certain things that I feel like a human can do and maybe I'm not putting enough facts out there, and this is just my opinion, but I feel like humans are still pretty darn creative and could come up with some things that we're still at
00:39:54 - Anthony Campolo
the top of the food chain.
00:39:55 - Scott Steinlage
Yeah, that ChatGPT can't, I guess,
00:39:57 - Ishan Anand
You know, so, you know, I very much want to hear from the audience. I kind of disagree, though. So yeah, definitely encourage folks to come to the stage, request, tell us what you think about ChatGPT and how you think it'll influence web development. But I go back to the first answer I gave, which was it depends why you're learning it. If you're learning because you find the topic interesting and exciting, or you find the technology interesting and cool, but if your goal was "I need to get something done," maybe not. So if you're, say, a backend developer, right, and you're like, well, I just need a front end for this, well, even before ChatGPT I would have told you, well, just grab a template, right, and plug your data into this framework and you should be done. ChatGPT just might help you get further along without having to learn it. So I kind of almost pretend it doesn't exist and just focus on the intrinsic motivation for why you want to learn front end. That would be my answer.
00:41:12 - Scott Steinlage
Yeah, but then another thing I think about too though is like, okay, so what about, okay, that's like saying, all right, learn, learn vanilla JavaScript because you need to know these, you know, basic things and components and all this stuff versus going and learning like A framework. Right. And so it's kind of interesting analogy. It's like, okay, go use ChatGPT because now you don't have to figure out how to do all this other stuff, and now you don't know the bones of things. You know, there's always that argument, but then there's also people who say, well, who cares about vanilla and JavaScript because really everything's in React anyway, or whatever. Right. And so you, you don't really actually need it to do your job or. But yeah, I mean, if you truly want to be creative, maybe you do need to know, you know, some vanilla. But anyway, I don't know.
00:42:01 - Ishan Anand
You know, that's a great analogy. There's a certain point where you will have to pierce the abstraction layer of what you're using. I used to think it didn't make sense to learn React before you learned vanilla, but I'm not so sure because I think people learn in different ways. I personally feel very uncomfortable when there's magic, so to speak. I want to know how the thing works. I want to have a mental model for it. But there are plenty of people who are like, I want to have something done and then I'll dig into how the model works, but I just want to get a goal accomplished. And so for those folks, it actually might make sense. Like, start coding with React and then worry about the fundamentals at those points when you get to the debugging.
00:42:49 - Scott Steinlage
Yeah, I mean, TypeScript alone, same thing. You know, you use TypeScript now, it's so widely used. Before it wasn't, and now it very much is. Theo's here. I'm sure he can talk about that quite a bit. And I just think that it's crazy, the amount of things you can do with TypeScript and not even have to type a single line of code, essentially, when you're just calling all these different functions and features. Yeah, it's interesting.
00:43:29 - Ishan Anand
Just.
00:43:30 - Anthony Campolo
Patrick, is this a real person? You have a somewhat web-dev-y kind of profile. What's up?
00:43:39 - Patrick
Yes. Yes, it's a real person.
00:43:42 - Anthony Campolo
Awesome.
00:43:42 - Ishan Anand
What's up, man?
00:43:43 - Patrick
Yeah, what's up? So I just wanted to give my opinion on the ChatGPT stuff.
00:43:50 - Ishan Anand
Yeah.
00:43:50 - Anthony Campolo
Thanks for joining. Feel free to let us know what your thoughts are.
00:43:53 - Patrick
Okay. Okay. So I've been using it for a couple of months, and in terms of replacing anyone, as you have discussed, I don't think it's going to replace anyone, mainly because of the intricacies that are there when you're creating something. Even for the example that they showed during the demo where he took a screenshot and then included the code for that, imagine taking that code that was generated, that simple website for jokes, and making it into an actual product, refining the requirements and so on. I don't think it will ever reach a point where it will produce... as you have said, it's just like a human. It will be error-prone, and for a human it's easier to tell them fix this, fix that, and so on. But for ChatGPT and these AI things, I don't think it can really be refined as much as you can do for a human. And for the learning, you'll still need to learn a lot of this technology because when it makes a mistake, at least in its current state, you still need to go down and try and figure out what the issue is, because most of the time it doesn't detect it.
00:45:16 - Ishan Anand
Yeah,
00:45:19 - Scott Steinlage
That's a good question, actually. Has anybody ever used ChatGPT to debug something, something that it made or something that you made? That's an interesting one.
00:45:29 - Anthony Campolo
I mean, I found it useful if I get an error message that I don't quite understand. I can ask it questions, be like, what does this term mean? And especially TypeScript stuff, I found that it does really well for that, just asking it questions to get a better understanding of what's happening.
00:45:51 - Ishan Anand
I'm pretty sure I've seen an example where somebody gave it code and asked it why it was wrong. I remember in the demo that OpenAI released, there's. It asked it to do taxes and it says, you know, here's my situation. And it parses the natural language rules that are embedded in the tax code. It gives it and figures out correctly what the right answer is.
00:46:15 - Anthony Campolo
This is also where it's very useful to be coding a language like JavaScript, where it has a lot of training data on it. If you're using some obscure programming language, there's not a lot of data. If you ask it questions, it probably wouldn't know what to do.
00:46:29 - Ishan Anand
I have heard that as well. It does better in certain languages than others.
00:46:34 - Anthony Campolo
Like does better in English, that's for sure.
00:46:36 - Ishan Anand
I mean, there's an interesting question, though, that I think Patrick raised, which is, you know, will it ever get to the point where it can do the whole product? And I hear the reasons and the arguments, but my intuition is, I don't know. This thing is getting really... it may not get to a consumer product, but it could get to an internal B2E, business-to-employee internal tool, you know, good enough where, I mean...
00:47:09 - Anthony Campolo
Some people think it's gonna literally enslave humanity. So if it can do that, it could probably write a website.
00:47:17 - Theo Browne
Yeah.
00:47:20 - Patrick
And there's another way to approach this. I think it can reach a point where it builds a full product, but not where it's reliant on code, where it's just connecting components. Like, for example, the way in no-code you just drag and drop stuff. And I'm seeing a lot of software integrating it. Like, for example, Spline, they've just integrated AI into their software, and it's just connecting the components together. And those components are already well-tested and all. So I think if someone was to come up with a product where the components are there and the AI is just there to connect them and build the product, I think in that case it would be able to build a full product.
00:48:03 - Ishan Anand
Yeah, yeah.
00:48:04 - Scott Steinlage
It's almost like drag and drop. It's almost like drag and drop, but more like pull in place.
00:48:11 - Patrick
Yes.
00:48:14 - Ishan Anand
When it comes to the larger part of product, I mean, the example that comes to mind that I thought was illustrative was, I forgot who did this, but he basically told ChatGPT, okay, come up with a plan to make as much money as possible and I will do it. You've got a hundred dollars, and it's...
00:48:31 - Anthony Campolo
Yeah, a bunch of money just for people investing in the company, which I feel like is kind of cheating.
00:48:38 - Ishan Anand
It is. He should have done a clean experiment that isn't contaminated, obviously. But the ideas it was giving seemed at least reasonable enough that it's like, okay, here's a couple markets, here's the domain name. You know, those are somewhat product-level decisions. It could be multiple of these large language models put together, tuned for different tasks. But I don't know, I do feel like it's conceivable that it could actually go the whole way and we'd just be telling it what to do differently. So, thanks for coming up and giving your thoughts. If there's anyone else, please raise your hand. Otherwise, maybe we should move on to some of the other stuff that was in the newsletter, like the new React docs and then how to start a React project in 2023, which I know is probably top of mind. I know Theo, I see him in the audience. Maybe we should go to that, like the best way to start a React project.
00:49:36 - Anthony Campolo
I mean, we should talk about the React docs being released at all. I'll go ahead and pin that up as well. I mean, this is something that is such a long time coming. You know, people have been saying forever that the React docs are a little bit out of date. I mean, when I was in my boot camp in 2020, we were already learning hooks at that point. And so it's like we've been teaching this way of using React for at least three years, and it's just this last week that the docs have caught up with that, which I think is kind of egregious. But at least we're here now.
00:50:15 - Scott Steinlage
Yeah, Dan Abramov was chatting quite a bit on it. Speaking of Dan, real quick, he was also saying how he kind of wishes, hindsight 20/20, whatever, he wishes he would have gotten more into AI back in the day.
00:50:33 - Anthony Campolo
He was saying if you're someone who is getting into coding right now, you should drop everything you're doing and study AI. And I said that I think this is great advice and it was even better advice five years ago. But it's like planting a tree. Best time was do it now yesterday. Second best time is today kind of thing, right?
00:50:54 - Scott Steinlage
Yep.
00:50:55 - Ishan Anand
Yeah, I saw that tweet. I mean, maybe the answer is if you want to learn front-end development in parallel, learn large language models and how transformers work at the same time. Yeah, it was really interesting to hear from somebody. You know, one of the things I like about Dan is his approachability. He has another great article I've referenced multiple times, it's like "Things I Don't Know." And he's like, people talk to me and they think, because I know I'm an expert at React, they think I know all these other things. And he talks about Kubernetes, and he's like, I've never used these technologies, but people start conversations with me, and I think especially when beginners come to the tech ecosystem, there's so many words and concepts, it can feel inundating. And it's a little comforting to have somebody like him say, hey, look, I can be an expert in this area, but I don't have to know all these other things. And I could definitely empathize with what he had...
00:51:57 - Ishan Anand
...express there. Definitely looks like very exciting technology. But getting back to the React docs, what's interesting for me personally, and I think a lot of our team here at Edgio, is when we rebuilt our developer documentation for our platform. Originally it was a simple Next.js application, and then at one point we said, well, we want to upgrade the developer documentation. By the way, our developer documentation is a Next app that runs on the Edgio platform. And somebody said, well, why don't we just use the React beta docs as the best kind of template example? So we actually took a lot of inspiration from the beta React docs in how we do our documentation and used it to mirror best practices. So if you go to docs.edg.io, it's actually a fork of the React documentation, and our documentation is open source. So, you know, we have a GitHub repo, we've had customers come and do pull requests against it, and from my perspective it was good enough to ship. But I know the React team has a very high bar, especially given how big their ecosystem is.
00:53:10 - Ishan Anand
So I know it's taken a while, but just congrats to them for shipping it. Maybe that takes us to the best way to start a project because one of the things that the beta React docs tell you, like the old docs, was use Create React App, and now there's a variety of other options. Do you want to walk us through? You know, Robin had a great article that you linked to, Anthony, and maybe set the context.
00:53:35 - Anthony Campolo
Yeah.
00:53:36 - Ishan Anand
So let's talk about what—
00:53:38 - Anthony Campolo
the docs are recommending. So if you go to "Start a New React Project," this is one of the very top-line pages on the new React docs, and it starts with production-grade React frameworks and then Next.js. And I think that this is both the correct thing to put and something that caused quite a bit of a stir. And I kind of understand why that is, because this feeds into that paranoia that everyone has that Vercel is stealing React out from under everybody and kind of making Next the only way to use React. And this fear, I understand where it's coming from.
00:54:18 - Ishan Anand
Wait, can I interrupt you while we've got Theo? I know he usually has to jump to...
00:54:22 - Anthony Campolo
to his stream in like five minutes, so I wouldn't...
00:54:25 - Ishan Anand
Yeah. I'm just curious. Does. Are we gonna get. Or is he trying to get Create T3 app into the React beta?
00:54:32 - Anthony Campolo
The new React docs? I wouldn't expect it to get in. I think, you know, if you want to include that, then you should also include things like Redwood. So they don't seem super open to adding additional frameworks.
00:54:45 - Ishan Anand
Well, that was my next question. I was going to go to you, just knowing you were going to be here. But from you and Theo, other frameworks, you know, it's got a few there. Like, why not?
00:54:53 - Anthony Campolo
Looks like we did get Theo up here, but yeah, I mean, I tweeted at Dan. He didn't respond. I'm not expecting anything to come of it.
00:55:01 - Theo Browne
Just wanted to formally say that if the React docs were to add Create T3 app, I'd probably be more upset than interested.
00:55:10 - Ishan Anand
Oh.
00:55:11 - Anthony Campolo
Expand on that.
00:55:12 - Ishan Anand
Yeah.
00:55:13 - Theo Browne
The role of Create T3 App is to have opinions beyond what React does. The role of the React docs is to teach React in the most unopinionated way it can. It's just directly contradicting. The reason that the Next recommendation makes sense is the overlap between Next's opinions and React's opinions, especially as they converge more and more, and how Next has thrown away most of its framework in order to better shape itself around the new ideas of React. Create T3 App's goal is explicitly to ignore the recommendations in order to do the best thing for developers. So it's just like, the goals aren't aligned. It doesn't make sense to me.
00:55:44 - Anthony Campolo
But it also includes things like Remix and Gatsby. So why should it include some frameworks and not others?
00:55:50 - Theo Browne
Because Create T3 App isn't a framework. It's a set of opinions around an existing framework, Next. I would argue against Remix and Gatsby being included, but I get why they did it, just to prevent community outrage over the Next recommendation. I would never be outraged about Create T3 App not being included. In fact, I'd be outraged about the opposite. I think it makes sense for us to not be included. For what it's worth, actually, I'm a little upset about how much people have pushed on them not including Vite. I think it makes sense, given I was the one who opened the PR to switch from Create React App to Vite. I think the decision to go with Next is the right one. I just didn't think they would take such a strong position.
00:56:28 - Anthony Campolo
It's also worth saying that they do mention Vite, but it's not a top-line thing like the frameworks are. You have to kind of dig in a bit to the next page, which is "Add React to an Existing Project," and then if you read in there, you'll see where it recommends Vite. That's a little bit buried.
00:56:49 - Ishan Anand
So Theo's answer, you know, I'll take you at face value, but it reminds me of Groucho Marx: "I'd never join a club that would accept me as a member." But I respect the opinion. So basically you feel like it's not aligned, and that's why it doesn't make sense for T3 App to be there.
00:57:11 - Theo Browne
I feel like it's just an explicit difference in goals that I am wholly disinterested in resolving. Like the role of what we're doing and the role of what the React docs are doing is fundamentally different and that's fine.
00:57:27 - Anthony Campolo
I mean, in my opinion, the role of the React docs should be to educate people on React. If there are important React frameworks that people should know about, I think it makes sense to include all of them instead of some of them. But I see where you're coming from. I think that it would make sense for them to include it if they included your own kind of disclaimers along with it. But yeah, I mean, it's really up to the React team at this point.
00:57:54 - Ishan Anand
Yeah.
00:57:55 - Theo Browne
Still feel like the role of Create T3 App just comes later. So much so that it depends on, like, are we treating the React docs as a reference or are we treating them as the way people get started? Because if the former, yeah, it'd be nice to have a page somewhere that's like things people do when they want to do full-stack, backend-heavy apps with React. Here are some things people use. But even then, eh. If it's the latter, well, this comes back to education materials for the developers. Then we should stay far away from that, because if anything, I've encountered a problem where a lot of very early-career devs are trying to learn how to program via Create T3 App. And I almost wish I could put a disclaimer, it's like, if you've been programming for two years, stay away, please.
00:58:40 - Anthony Campolo
I definitely disagree with that. But this is something that we also linked to, Robin's article, "How to Start a React Project in 2023." And this is where you can get more of this kind of context of what other frameworks are out there. I think he does a really good job of surveying the whole landscape, and he actually does mention Create T3 App in this article. I mean, whether Create T3 App is opinionated or not is kind of a question of how you define the term opinionated. But I think that it can be useful to beginning developers because if you're going to ask them to build a full-stack app, then it makes sense to give them a framework, or whatever you want to call it, to make it simple. So I think there is a lot of value, actually, to giving beginners this kind of tool if you are also going to ask them to build something that would require them to use a tool like that, or to piece together their own stuff to eventually end up at that kind of tool.
00:59:39 - Sabin
Hey, I'm just hopping on here to throw in my 2 cents, so Sabin here. So I kind of get where both of you are coming from. I think there's a misconception, though, as Theo's already kind of said, as to what the role of T3 is. Because the way I see it, Next.js is mentioned in the React docs as one of the frameworks that they suggest to use, and I mean really, that's what T3 uses, is Next.js. So I don't see why they would need to essentially double-mention Next in the docs by re-bringing up T3. Excuse me, just curious about...
01:00:18 - Anthony Campolo
Yeah, that's a good point. It's like a meta-framework.
01:00:22 - Patrick
Go ahead.
01:00:23 - Ishan Anand
It is a good point, but I think there's what happens in theory and what happens in practice. In practice, some people go to it as a reference, and some people go to it to learn, and some people go to it as a map of the ecosystem. And I think that that third place is a really important role. And it's like, if it's not the React docs that tell you here are all the other things that integrate with this, right? Like, you go to any company SaaS product, they've got a page that's like integrations, right? What does that ecosystem around the product look like? I think that's an important role. And if it's not the React docs that fill it, what should fill it? Imagine you don't know anything about React, which is hard for us to imagine because it's so omnipresent. But if I told you about some other framework or some other technology, you'd go, where do I go to learn not just about the details of how to use it, but what are the other things that work with it?
01:01:23 - Sabin
Yeah, I would... I see Theo's hand up, man.
01:01:27 - Ishan Anand
Yeah, I see Theo's hand up.
01:01:28 - Sabin
He is going to say something similar to what I have to say: if I knew nothing about React, I would very, very much so not want to jump into T3. Even for any new developer, I wouldn't say that's a good starting point, for multiple reasons, personal reasons mostly. But yeah,
01:01:50 - Theo Browne
Yeah. I have two thoughts on this. The first is, for education materials, that's not the place where the more thorough "here are the things you'll use with React in four years" belongs. I don't think that necessarily belongs there. And on the other end, I don't necessarily think it's the role of React itself to dictate what it does and doesn't endorse, so to speak. I know that there's been a lot of heat even back in the original React Router days about whether or not the React docs should recommend React Router, and they've taken a pretty hard stance of not picking winners when they can avoid it. And that's actually a big part of why the Next recommendation went over so poorly initially, was people felt like they were picking a winner, but in reality it was the opposite. It's Next picking the new React patterns as the winner and being willing to throw away so much of what they did to more directly align themselves with the direction of React. And I think that recommendation makes a lot of sense for that reason alone. And I'm coming at this from the opposite angle of rather than why shouldn't they recommend these things?
01:02:49 - Theo Browne
It's why should they and all of the things recommended right now have a very obvious reason why they were recommended. And for recommendations that go beyond the scope of the React docs that are like the things you integrate with and stuff like that. I consider that the community's role and the role of my YouTube channel. I don't necessarily think it's the role of the React docs to compete with my YouTube channel. I think it's to onboard people to it.
01:03:13 - Ishan Anand
I agree.
01:03:14 - Anthony Campolo
The community has also, by the way,
01:03:17 - Ishan Anand
I guess you're right, it competes with the community. I still think they can provide ladders or jumping-off points. So imagine you're not a developer, an individual contributor. You are an engineering manager. You do not actually know React. So maybe to make this more concrete, suppose it's some other framework somebody says you need to consider. So what are you going to go do? You're going to go to that website and you're going to say, well, first of all, show me social proof. It's the same thing you ask for any product, right? Like, who else uses this that I trust, right? And then what does that community look like? I'd want to know where the best tutorials are, you know, the other things that integrate with this. So imagine you're that person. How does that person... you could argue it shouldn't be in the docs. The docs are just reference. You know, if I'm on Unix and I hit man, it doesn't tell me all the things that go in and out of pipes when I do man awk.
01:04:14 - Ishan Anand
I just, I get the instructions for just awk. So maybe this is philosophical, but I think if you're looking at productizing the framework as a whole, like the jobs to be done and what can I accomplish with this? Like those higher level questions and when you should and shouldn't use it are relevant. I think there's a good argument for having that in the documentation. But I don't know if like there's no right answer here. I think this is philosophical
01:04:42 - Theo Browne
And that's the... I think that this also signifies the problem that I have of, like, what happens to the one framework that doesn't get mentioned because Dan hasn't checked PRs for a few weeks and didn't merge it? And now there's this one good recommendation that somebody brings up on their team, and their engineering manager, who knows no better than React, has this page on their docs that says all the real things. They go to that page, the new thing isn't on that page, and now you're not allowed to use it because of it. I think it just makes sense for React to say, no, fuck this, that's your problem. And on top of that, it's our role as developers to know how to find, identify, and filter good and bad information. Continuing to push back how long until you have to do that doesn't seem like a big value add to me. I'd almost always rather just lean into forcing developers to learn how to find solutions to their problems earlier. And the role of the React docs is to smooth out the process of seeing code respond on the screen for the first time until you're there.
01:05:40 - Ishan Anand
I think the difference is you're coming at it from a developer. I'm coming at it from the perspective of I have a product-management view, and how do I make my product as consumable to the variety of different personas that are going to evaluate it at what the CPG guys call the moment of truth, right? When you're in the grocery store and you pick up CPG, consumer packaged goods...
01:06:03 - Theo Browne
and they make a React or picking up the product you're building. With React.
01:06:08 - Ishan Anand
When I say pick up, I mean physically. It's at the very top of the awareness funnel, right? They're going to probably Google React, see the React docs, right? This is like, what are the jobs to be done of the documentation? And you could say that's our role as developers, but you get a better conversion rate, you get better... and maybe it doesn't matter for React.
01:06:29 - Theo Browne
Yeah, that's the thing.
01:06:30 - Ishan Anand
But if I would say, like, we should make things as easy for the potential prospect consumer of it as possible.
01:06:39 - Theo Browne
The React docs were written presuming you've already decided to learn React and I think that's a very, very fair presumption for them to make given that if you're not picking React, you know a really good reason for why you're fucking up. It's not the role of the React docs to convince us to use React anymore. We're already convinced it's the role of the React docs to help us understand why while also getting us excited as we learn the paradigms framework. Anything else is overreaching.
01:07:05 - Ishan Anand
Yeah. And as I said, I think it's a philosophical, like, I don't know if there's a right or wrong answer here. Like man, like on Unix takes the opinion you're taking. Like it doesn't talk about its ecosystem. Here's exactly you've decided to use Awk. Here's what it can do. You decide whether it's useful for you or not. But there's another way of looking at it that's. Yeah, go ahead, Scott.
01:07:23 - Scott Steinlage
I was just going to say that I think there's another thing in the room that wants to give an opinion: ChatGPT. I asked ChatGPT, I said,
01:07:35 - Anthony Campolo
ChatGPT, what is the job to be
01:07:37 - Scott Steinlage
done of documentation, and should it mention other frameworks? And it said that the job to be done with documentation is to provide clear, concise, and comprehensive information to help developers understand and use a specific tool, library, or framework effectively. Documentation serves as a reference and a learning resource, enabling developers to achieve their goals with technology. Wow. The primary focus... dang, that's a good answer.
01:07:59 - Anthony Campolo
Good job, ChatGPT.
01:08:00 - Ishan Anand
Well, I want to hear the rest of it.
01:08:02 - Scott Steinlage
While the primary focus of documentation should be on the specific tool, library or framework it covers, mentioning other frameworks can be beneficial in certain situations. Number one, comparison. Providing a comparison between the documented framework and other popular alternatives can help developers make informed decisions about which tool to choose for their projects. This can be especially useful when the documented framework has unique features or benefits compared to its counterparts. 2. There's only three things here, by the way. Integration. If the documented framework is designed to work seamlessly with other frameworks or libraries, mentioning these integrations can be valuable. This information helps developers understand how to combine different technologies to create a comprehensive solution. And then thirdly, number three, migration. In cases where developers might be transitioning from another framework to one being documented, the best practices for migration can be helpful. This can make the transition smoother or more efficient, and it demonstrates the commitment to the framework's maintainers to supporting users who are switching from other tools. In general, mentioning other frameworks can add value to the documentation, but it's important to keep the focus on the primary framework being documented. The goal should be to help developers understand, use and benefit from the specific tool, library or framework in the best way possible.
01:09:16 - Scott Steinlage
Thank you ChatGPT.
01:09:17 - Theo Browne
This has informed my previous stance of I don't really care about ChatGPT for the advice and learning side because it always just sounds like the YouTube comments I delete, like paragraph essays on mediocre advice. It's not even that it's wrong, it's just bland and useless.
01:09:38 - Ishan Anand
It was, Theo. It was trained on all the YouTube comments to your videos. They might have weighted that one pretty heavily. So, you know, I agree actually with Theo on ChatGPT. I'm glad you typed it in. It was amusing to hear what it said. Here's what I think the compromise position is. The crux of the matter is if you take the word documentation literally, then I am wrong, right? If it's documentation, then there's a good, strong argument that it shouldn't be there. It's not reference material, right? If you take the argument that this is a website and it's a product, the same way would be any other type of product, and you take a more expansive view that we call it React docs in name, but it serves more of a purpose than just documentation, then I think that's more aligned to my perspective. That's, I think, the crux. If I was to settle, I think the difference between me and Theo and some of the other folks up here on stage...
01:10:37 - Sabin
I mean, I think there are a lot of different ways to think about this and like you said, I think it is really a philosophical thing. There may not be a right answer, but I think some companies do handle this well, some companies and tools like, I mean, disclaimer. I work at Prisma, but I think Prisma does a really good job with this. Specifically by like in our documentation we have an ecosystem section where it's not like a teaching section at all. It's just pointing out specific tools where, hey, if you know Prisma, if you like Prisma, you might like these tools to add to your tool belt. They're not part of the documentation and they're intentionally not so because at that point it's kind of out of the scope of what it's meant to do.
01:11:21 - Ishan Anand
I think that's a good example, like having the ecosystem there. I think there's two other things. I think Theo mentioned that I like the idea that it's really hard to pick who you're going to include and not. I totally agree that is a very hard, difficult problem. But I don't think the difficulty, well, should be entirely the reason to dissuade you from doing it. What you should say is, hey, here's my prioritized list of things to do and which one gives the most value. Maybe this one's not worth the value. So I could argue, I could understand if that's their argument. And I do think if we ignore the role that the docs play as an onboarding ramp where if we acknowledge that we're and, and say, well, they should only focus on the ones that are aligned to their opinions, it ignores the role that they de facto play in maybe not picking winners, but influencing them, which is an important part of the ecosystem.
01:12:25 - Theo Browne
I have to run so I can get ready for my stream. It's going to be a little later, but I'm having Evan You on today in 3-ish hours to talk all about Vue. So if anybody wants to come and see that, I'll be there soon. Yeah, thank you for having me, as always, awesome at the last minute.
01:12:39 - Scott Steinlage
3-ish hours? What time exactly do you think you'll be having it?
01:12:42 - Theo Browne
4:30pm PT is the goal.
01:12:44 - Scott Steinlage
There you go. 4:30.
01:12:45 - Patrick
Okay.
01:12:45 - Ishan Anand
Yeah, folks, definitely go to Theo's stream. Sorry, go ahead, Scott.
01:12:49 - Scott Steinlage
Nothing, that's what I was saying. Same thing. Yep.
01:12:52 - Theo Browne
Actually, I sent him a list of what I thought were very spicy questions ahead of time and said cross off the ones you don't want to answer and he said all of them sound good. So yeah, this is going to be a good one.
01:13:03 - Scott Steinlage
Nice. Not going to run out today. Sweet.
01:13:12 - Ishan Anand
Okay, thanks for joining, though. Yeah, definitely. If you haven't seen Theo's stream or heard him talk, then I don't know...
01:13:22 - Anthony Campolo
who you are, what you're doing.
01:13:24 - Ishan Anand
Yeah, exactly. You should, you should tune in.
01:13:26 - Scott Steinlage
Yeah. By the way, real quick, I just want to break in there and say, hey, you know what, if you got value from anybody that's been up here on stage and has been speaking, please click on them, follow them if you're not already. And if you aren't, then who are you? But hey, no, for real though, if you got any value from anybody up here, please click on them. And you know what? JavaScript Jam, we wouldn't mind a follow as well. And feel free to request to come up. We love hearing from you folks. We want to get you guys involved here so that you feel like you're participating and getting value out of this as much as possible. Whether it's an opinion, a fact, a question, whatever it is, please request to come up and we'd love to hear from you and bring you up on the stage.
01:14:06 - Anthony Campolo
So looks like we got someone coming up right now actually. But before we go to them, did Sabin have an announcement for Prisma? You alluded to something.
01:14:14 - Scott Steinlage
I did allude to that, yeah. I mean, there's been a lot going on over there. I think the last—
01:14:19 - Anthony Campolo
Hit us up with some what's hot at Prisma right now, Sabin.
01:14:23 - Sabin
Yeah, I mean I don't have any formal announcements or anything, but yeah, we've been doing a lot of cool stuff. I think our shift as a company, specifically over the last month and a half or two months, but formally over the last month and in the foreseeable future, is we're completely focused on serverless and edge right now. All of our engineering efforts, all of our planning efforts, and the content that I'll be creating is all focused on serverless, and the idea is to fix any pain points with Prisma that have to do with serverless. So I'm super excited about that. I've been pushing for that for a while, even when I first started at Prisma. I mean, the way I got into Prisma is because I had pain points with serverless and I was involved in the community. So this is something I'm very hyped about. And for the past two weeks, all I've done is eight hours a day planning with engineering, with the content team, about how we're going to fix these problems and move forward. And yeah, the roadmap's looking good.
01:15:31 - Sabin
We've discovered a ton of stuff that's super exciting and yeah, yeah. And my baby's now crying so I'm going to have to hop. But yeah, I'm super excited. If you have questions about any of this, hit me up, please.
01:15:44 - Scott Steinlage
Nice. Thank you, sir. Yeah, I'll bring Theo up here. It sounds like you want to add something really quick to that.
01:15:54 - Theo Browne
Wanted to come back up for Am I working now?
01:15:57 - Scott Steinlage
Cool.
01:15:57 - Theo Browne
Wanted to come back up for just a sec to thank Sabin and all the work that the Prisma guys are doing. I know I just put out a video that's pretty harsh on the Prisma stuff, but the goal there was both to inform my audience about why their apps are so slow and also to hopefully set up a really crazy shot-and-chaser of, by the way, they fixed it. So yeah, please fix it so I can do an "I was wrong" video.
01:16:20 - Anthony Campolo
Absolutely.
01:16:20 - Sabin
And I think I posted this earlier in response to one of your tweets, but stuff like that — it may not seem like it, but we absolutely appreciate anything like that pointing out problems. We rely on that. So thank you.
01:16:36 - Scott Steinlage
Hello, Sabin Jr. Hey, Sabin Jr., buddy.
01:16:42 - Ishan Anand
He's trying. Yeah, like, I need this work on serverless.
01:16:48 - Scott Steinlage
Nice. Well, they're hard at work, so. Awesome. They're hard at work.
01:16:51 - Ishan Anand
This is a smart direction. Hats off. So, you know, before, I guess, popping back off the stack to what we were talking about earlier, we had Wisdom come up, actually.
01:17:07 - Anthony Campolo
Wisdom.
01:17:08 - Ishan Anand
Oh, wisdom. Definitely share that with us.
01:17:12 - Anthony Campolo
What's up man? How you doing?
01:17:15 - Wisdom
Yeah, I'm fine, sir. Good evening.
01:17:18 - Patrick
Here.
01:17:18 - Wisdom
Where are you? In Nigeria.
01:17:19 - Anthony Campolo
Thanks for joining.
01:17:21 - Wisdom
Yeah, thank you so much. This is nine past nine here in Nigeria. Sorry, I have a question to ask about the space. Is it more front-end developers, or just front-end and back-end development? Because actually I'm a front-end developer, specifically React.
01:17:44 - Anthony Campolo
That's a good question. We tend to hit on a little bit of everything JavaScript-related. I think it maybe leans a bit more front end, but we tend to hit the whole stack.
01:17:56 - Wisdom
Okay, sir. So I want to ask, as an upcoming front-end developer, what all do I need to know to land my first tech job here in Nigeria, or remotely, with React?
01:18:10 - Anthony Campolo
Well, I guess actually in Nigeria, that's a, that's a twist that I can, I don't live in Nigeria so I certainly cannot say what the job market there is like, but I would look at what are the people who are hiring asking for on the job applications.
01:18:26 - Ishan Anand
Okay.
01:18:27 - Wisdom
Okay, sir.
01:18:28 - Scott Steinlage
Okay.
01:18:30 - Wisdom
Is it advisable to learn... because I hear now that React.js will soon go off the market, that Next.js is upcoming now, so is it advisable for me to learn Next.js too? Or just stick to Next?
01:18:46 - Anthony Campolo
Next is a version of React. You can kind of think about it that way. So you should learn React first, and then once you kind of understand React, then look at Next.js and you'll see that it's kind of like an extension of React.
01:19:01 - Theo Browne
Okay.
01:19:01 - Wisdom
All right, so that's all for now.
01:19:02 - Sabin
So
01:19:04 - Ishan Anand
awesome.
01:19:05 - Scott Steinlage
Thanks for joining.
01:19:06 - Ishan Anand
Well, I don't know if I agree with that. Like maybe you just jump to Next.js and you're learning both.
01:19:12 - Theo Browne
Yeah.
01:19:13 - Ishan Anand
So to speak.
01:19:14 - Anthony Campolo
Make that case. I mean, I think that I would recommend people at least learn some React hooks before jumping into Next. But I would say if you're going to go to Next, you should go even higher level and do Create T3 App, which Theo would tell me not to do.
01:19:31 - Ishan Anand
I mean, this leads to the question that got us here, which was how do you create a get-started path, right? That was the thing in the newsletter, which you should check out. You know, the latest issue of our newsletter, there's a section where it talks about, in 2023, what's the best way to create a React app. I totally agree with Anthony. Like yes, you should learn React. That's probably the best answer, given at least our exposure geographically. But then the question is, well, what do you do next? Is it Next.js?
01:20:02 - Nick Taylor
Is it?
01:20:02 - Ishan Anand
Or how do you get started? And, you know, maybe that's a good segue, Anthony, to just running through the options that are in that article and maybe your thoughts on which one you'd recommend.
01:20:16 - Anthony Campolo
Yeah, let me pull that up and take a look. So he leans into React with Vite, and I think this is part of what a lot of people were a little salty about with how the React docs were put out. Because I think there's a good case to make for when you're first learning React. Using React with Vite is kind of like the new Create React App. Or if you just want to spin up a minimal project that uses React, you'd want to do that with Vite. So that's the first thing that he kind of recommends. And then he goes into using React with Next.js, so that being kind of the more built-out framework experience. And then, interestingly enough, he then recommends React with Astro. And this is a cool way to lean into using React in a more pared-down way because it's more of a static site generator-first perspective. But using React because you have Astro, which is basically an SSG that also offers some server-side rendering if you need it, and you can bring in frameworks as you want. So if you want to have a project that's just spitting out pure HTML but then also uses a framework, you can do that with Astro.
01:21:41 - Anthony Campolo
And then after that he gives kind of a whole bunch of different options, like using Parcel instead of Vite, doing a monorepo setup with Turborepo, using Create T3 App, or doing a React Native Expo kind of thing. So he doesn't mention Gatsby or Remix or Redwood or any other kind of React meta-framework, which I think is kind of interesting. But I think for the most part there's a lot of good information here and a lot of good ways to get started.
01:22:14 - Ishan Anand
So do you have a thought on, you know, the topic we were talking about from the Redwood position of whether the React docs should be mentioning third party like re, you know, what is. Is there a Redwood position on this?
01:22:28 - Anthony Campolo
I would prefer that the React docs aim to be more comprehensive in terms of saying here's the frameworks that exist that are fairly legit and built out and have a community and have a team behind them. So I think that not including Redwood or Create T3 App is something that... I would like them to be in there. I don't think they're going to be added, but if I was in control of the docs, I would have them in there. But, you know, it is what it is. I think they have kind of their own idea of what should be mentioned and why. And I think they have a legitimate perspective, and I'm not particularly surprised.
01:23:12 - Scott Steinlage
You know, I'm curious, and I don't know if you'd be willing to share or not, but how about a creator of a framework come up here and maybe give your opinion on your own documents and why, if you would have that in there or not. Ryan, you're down there. If you want to, I'd love to hear it from someone's perspective who's actually...
01:23:39 - Anthony Campolo
Well, it's different with something like Solid, because that's true. You have SolidStart and that's it. That's the only Solid meta-framework. There's not five different Solid meta-frameworks that have to battle it out.
01:23:50 - Scott Steinlage
Absolutely. But I'm sure he has an opinion. Maybe he's not able to share, but we would love to hear you anyway.
01:23:57 - Ishan Anand
He might be listening over the web too, and you can't join through the web. True.
01:24:01 - Scott Steinlage
Or his app might need to be redownloaded because that thing is [unclear].
01:24:07 - Anthony Campolo
[unclear], to make sure he can speak in the space.
01:24:11 - Scott Steinlage
anyway.
01:24:12 - Ishan Anand
But that, to me, is the illustrative question.
01:24:18 - Anthony Campolo
Oh, oh, we got Nicky T. What up, Nick?
01:24:22 - Nick Taylor
Hey, how's it going? How's it going? Hear me okay?
01:24:25 - Anthony Campolo
Yeah, we can hear you. Thanks for joining us.
01:24:27 - Nick Taylor
Yeah, no worries. No worries. I don't create a framework, but as you know, Anthony, I work on the Frameworks team. But getting to your point, you're a framework professional. I don't know, that might be a little over.
01:24:41 - Anthony Campolo
It's in your job.
01:24:42 - Nick Taylor
Yeah, but the thing I was going to say what you were mentioning about like the docs, you know, and like, maybe Redwood's not in there or like other other similar projects. And like, I think part of it is, you know, you're there to learn React, you're not there to learn how to build an app. And like, even if it generates stuff for like Prisma and all that stuff, and that's. It's nothing against any of those projects. It's just like the goal is to learn how React works. It's not how to connect with.
01:25:12 - Anthony Campolo
But then why include Next, Remix, and Gatsby?
01:25:15 - Nick Taylor
Yeah, I definitely understand. I think in the case of Next.js, it's the only example of React Server Components working in a...
01:25:29 - Anthony Campolo
And that's legit. But you're also including other frameworks.
01:25:32 - Nick Taylor
Yeah, no, yeah, I guess maybe it's
01:25:36 - Anthony Campolo
so then it's a question of favoritism. It's like which frameworks do they think that they should include? Because there's like quote unquote the community there and that's where it becomes subjective.
01:25:45 - Nick Taylor
Yeah, I actually didn't realize that they mentioned Remix and Gatsby in there. I thought it was just Next, but.
01:25:51 - Anthony Campolo
And that's the only reason why I felt that it would make sense to include it because I think that it's comparable to something like Remix. I think Gatsby and Next actually have kind of more of a claim to be included in the docs because they've been around for years and years and they do obviously have communities behind them. I think whether the. The Remix community versus the Redwood community is big enough to be warranted to be included is where you get into fuzzy territory.
01:26:22 - Nick Taylor
Yeah, for sure. Sounds like there could be favoritism going on there. I guess maybe it's more like, have a section where here's all the meta-frameworks maybe, because if you want to build something out... But getting back to the docs part of React, though, it's really about learning the fundamentals of React. I mean, you're obviously going to build an application at some point, but I think that was something that was pretty nice about Create React App, or even if you use Vite. It's just like... one of the reasons why I like React, I realized, is... I'm probably saying the obvious, but there's obviously the one-way data flow and stuff. But the thing I've slowly recognized over time is I love the ergonomics of JSX and just learning, like, it's so easy. Like, you know, I'm just going to create a component and another component, and then you can learn all those things about React like, okay, we got state, we got props, we got hooks, and all that, but...
01:27:26 - Nick Taylor
And you can do all that within something minimal like that, where you're not pulling in the whole kitchen sink, which is potentially something like Next.js or Remix or Gatsby, you know, so that's why. I don't know, again, like I said, I didn't realize that they referenced those other frameworks too.
01:27:43 - Anthony Campolo
Yeah, yeah, I think that's all. Yeah, I totally agree with everything you're saying. And that's why mostly I just want it to be like a bullet point in a list like that. That's really all I'm asking for is like, I think what the React docs are doing, not focusing on the frameworks is the way to go for sure. But Ryan's got his hand up.
01:28:00 - Scott Steinlage
Cool.
01:28:02 - Ryan Carniato
Yeah, I mean, they can't win in this situation, which is why it's kind of interesting to me. Because the problem is, I think they would have been fine leaving all the meta-frameworks to the side or, you know, point-form list, but they can't anymore. And that's just because of the way that they're positioning everything, even the learning aspects of React. They don't want you to start it up with Vite, like the old thing where you could just get up and started and use React however you want. They've raised the bar to what being a React app is, or fully using React. And that makes it interesting. And the reason they did it is for a good reason. Don't get me wrong, they did it because of what you guys were just talking about. Nick was just saying, you just go, you write a function, you return some JSX, and you're off and going. But the problem, or the tricky part there, is that function that returns JSX, in their head, is a server component. And that is a huge, huge shift that now suddenly you need something that can actually use RSCs as a baseline.
01:29:19 - Ryan Carniato
They actually want to make statefulness a more advanced topic, like hooks come later. And they don't quite do that in the current docs because RSCs aren't everywhere. But you can tell by the way that they approach the learning at the beginning, to not just talk about JSX or passing props, the core mechanics and the kind of statefulness-interactivity-later mentality. So now you're kind of stuck where you're like, I want to get people started and I'm not going to actually recommend something that is client-side-first. So it's not going to be Vite or Create React App or whatever, even though you could build those experiences with Vite and kind of come in, you know. And from my own personal perspective, I actually very much like the idea of not throwing a framework at you, but their hands are tied a little bit. So it's kind of like, how do we get people started on the server as the baseline, that is what React is, and not point them at something? And then once you pick one, once you pick Next, you're right, everyone just kind of goes, oh, you're showing favoritism.
01:30:31 - Ryan Carniato
I mean, it's funny, as you mentioned, SolidStart, SvelteKit, there's certain understanding there. Even Nuxt, you know, it's the Vue...
01:30:41 - Anthony Campolo
React is the only framework that has this problem, really.
01:30:45 - Ryan Carniato
So, yeah, it's interesting to me because part of me goes, like, if I was in a position, would I try really hard to push not framework and show what a baseline thing is? Would I try and build next app router as React router? But then they threaten alienating partner ecosystem. If they could centralize those pieces, which in many places they are, then they could have enough pieces to teach React and start React on its own and say like, the framework is an extension of it, but the way they've tried to find the line or balance makes the framework very much the core experience. And I honestly have no clue how they're going to handle that from a documentation standpoint, especially if not all frameworks like, say, jump on server components.
01:31:36 - Anthony Campolo
Word, we got someone with their hand up. Jess, want to introduce yourself also to the audience?
01:31:42 - Theo Browne
Sure.
01:31:43 - Jess
My name is Jess. I'm in the Vue ecosystem. I mostly work on the testing side. I built Cypress component testing as a tool and then I left Cypress in June. So I'm a staff engineer right now at some app company, about to join Stencil at Ionic. So that's me. The reason I wanted to join and speak, right before Ryan just laid down all my points for me, was to talk about favoritism and the choices that frameworks have to make and what they recommend. So let's, if you don't mind, can we boil it down to testing? Because I think that's a simpler problem that every framework has. Is that a good analogy?
01:32:29 - Nick Taylor
Yeah.
01:32:29 - Anthony Campolo
Oh, go for it.
01:32:30 - Ishan Anand
Yeah.
01:32:31 - Jess
Yeah. So there's three really hot test runners right now, right? We got individual test runners, Playwright, Cypress, and Vitest. Sorry, Jest.
01:32:44 - Sabin
It's.
01:32:44 - Jess
You're not hot anymore. So I don't know that. Maybe that was too spicy, but I pretty much agree.
01:32:51 - Anthony Campolo
I'm pretty over it.
01:32:53 - Scott Steinlage
Yeah.
01:32:54 - Jess
Something about maintainership. Okay, so we have this problem in testing in which there are choices, and frameworks have to make decisions on how to help users create a production-ready application, like starting with fundamentals. That's cool. We want to teach people how to write Vue code, Solid code, React code, and the frameworks themselves. But there comes a point in which someone's like, all right, cool, I can write templates in my JavaScript. Now what? Like, I know what props are. Now what? How do I bubble up to my manager and say, hey, I did the thing, I built the app. I was trying to come up with an example app. You know, the cart page works now. GG, good game. Ship it, I guess, is the right term. The frameworks, I think, have to play quote-unquote favoritism based on trust, and that the developer users can actually trust the advice of the docs page because the docs page should be the landing page for everything. For how do I begin, for why, how, and how do I do it well, how do I meet my manager's needs and get the job done?
01:34:16 - Jess
So you got to have an opinion that you can trust. Sometimes it's your own, other times it's people that you're networking with. That's just how you build the software well. So I think, for example, SolidStart, to take the analogy of testing away, Ryan has a lot of control over how it gets built and the users can trust the Solid documentation. SvelteKit, same thing, right? Nuxt, similar, but different. The teams are actually separate. Join Theo's space, he's going to talk about Nuxt and Vue and how they're not run by the same team. So when it comes to React, there are more choices. The user base is more diverse, and I don't think there's anything wrong with playing some favoritism if you can trust the maintainership. That's my little bit. It's also why the Vite docs recommend Vitest. They provide information about other things, but they don't have control over if Cypress component testing is going to be maintained in 18 months. They do have control over what Vitest is. That's kind of my take.
01:35:34 - Anthony Campolo
Awesome.
01:35:35 - Ishan Anand
Yeah, I'm just gonna say that's a very interesting opinion — I appreciate it. I have to drop for another meeting. I just want to thank everyone who came to the stage and spoke, and I will see you all next week. I'll leave you in the great hands of Anthony and Scott. Thanks, everyone.
01:35:57 - Anthony Campolo
Yeah, I think if there's anyone who has kind of like, final thoughts on this topic, feel free to let them out and we'll kind of start wrapping it up here. And thank you so much for everyone who joined and spoke. It's been a great panel.
01:36:15 - Nick Taylor
Yeah, I just wanted to say one thing to what Jess brought up, good points about testing. And to Ryan's point, I get why something like Create React App or Vite wouldn't make sense if the paradigm is shifting to SSR, you can't really do RSC with those things. So that I get. I guess there's gotta be some minimal implementation of React Server Components, because getting back to the testing aspect, I mean, I haven't dug into this...
01:36:47 - Anthony Campolo
but you'd think so.
01:36:49 - Patrick
Well.
01:36:50 - Nick Taylor
Yeah, it just seems weird. Unless they're literally saying they're pairing with the Next team to say, hey, we're gonna run all our tests against your implementation, but I don't think that would make sense.
01:37:01 - Scott Steinlage
But.
01:37:02 - Nick Taylor
But like, there's got to be some minimum test harness that would allow you to. Even if it's not like all the bells and whistles, there should be at least enough there to do something, maybe.
01:37:14 - Anthony Campolo
I don't know.
01:37:14 - Nick Taylor
I mean, I also know they don't want to probably create their own framework, because that's a whole other thing, but. Anyways, sorry, go ahead. Jess.
01:37:21 - Jess
Yeah, I just had a really long discussion about this maybe three days ago, about React Server Components and how to test them, and somebody piped in on one of Theo's threads and there's no good answer. Like, literally nobody has a good answer for this. My prediction is going to be that, and this is actually Theo's theory, I'm going to give him credit because we were talking about it offline, and I think it's going to get really Rails-y. I think we're going to get really Rails-y, or Laravel-y, with our testing approaches. There's the divide between server components and client components. That's pretty muddy right now, you know, at least in the examples we see. So I think you're going to see a lot more end-to-end tests, which I'm not happy about. I don't like end-to-end tests anyway. I don't know.
01:38:16 - Anthony Campolo
Do you know anything about this, Ryan?
01:38:20 - Ryan Carniato
No, I mean, I haven't really gotten as far as testing. Still thinking mechanics. I mean, yeah, it's interesting. SSR testing, have we been doing anything special for that in general? I'm just saying, because right now we have components around in the client and on the server, and they run differently. I guess the problem here is that in a server-component environment, you can't just emulate one of those environments and say go. You actually have to have both to catch the interaction, the back and forth between them, which seems tricky, especially if they all have different bundles, different, to put it like, module graphs in theory in a framework. I don't know if that's the case in React, having three different types of export conditions or builds, which seems tricky. You have build for client, build for server, build for server components. Yeah, I have no good answers here.
01:39:25 - Jess
I can give you the current answer for how it used to be. The way with SSR that we currently do it is pretty mock-heavy for when you want to be in the server context. I'm going to talk in Vue terms, we're React here right now, but same problem. So it's very mocked out and most of it's Node-side, and you don't get a lot of coverage, and end-to-end tests are the thing that finally give you the coverage for the different compilation contexts. So I think the push to introduce server components, React Server Components as the first way or the best way to experience React, that's going to make the importance of testing use server and use client components in their proper context, not in mocked contexts, that's going to make that more important. So currently our coverage for any code branches that have, if you know, client-only, any of these branch-logic branches that ask you to be in a different context, any of those little guys, they're currently somewhat covered.
01:40:51 - Jess
But truly they have to be executed when both the server and the client are compiled in their most production-like way. Whether that's staging, you know, dev server, whatever. I think we need more end-to-end tests, and I hate it a little bit. I kind of hate it a lot. But...
01:41:15 - Nick Taylor
I love that you worked at Cypress and you're like I hate tests.
01:41:20 - Jess
I open with that on most podcasts people think I like testing. I really don't.
01:41:32 - Anthony Campolo
All right, Scott.
01:41:33 - Scott Steinlage
Awesome.
01:41:33 - Anthony Campolo
Closes out.
01:41:34 - Scott Steinlage
Yeah. So thank you all so much for joining us today. Greatly appreciate it. And before you leave here, just make sure that you click on people's faces and follow them if you got value from them on the stage here. And if you're already following them, great. If not, hey, do it, because I guarantee you, guess what? You're going to get value from them in other places if you got it here. Also be sure, we would love a follow too on JavaScript Jam. Just click on our little JavaScript Jam logo on the top left, follow us, and get more awesome stuff like this. We do this every Wednesday at 12pm Pacific Standard Time and we talk about web development and everything JavaScript-related as well. So yeah, be here or be square. Not just that, by the way, if we didn't mention it before... well, actually we did, but if you didn't hear it before, we're going to be doing some awesome collaborations with events coming up very soon here, like React Miami. We're going to be there. We're going to be doing a live there. So if you want to join us online, or even on Twitter Spaces or there in person, that would be awesome.
01:42:23 - Scott Steinlage
JavaScript Jam, we will be there. And also we're going to be doing a collaboration with Remix and doing stuff at the after-party. We will be there doing a live with some of the speakers on the panel and several other things. So really excited about more events coming up in the future. Plus, we're going to be doing a giveaway here for React Miami coming up in the near-future episodes on our Wednesday sessions. And we have a new thing that Anthony and I are going to be doing, which is going to be like teach Scott code kind of stuff. It's gonna be really fun. On Thursdays, we're gonna be streaming to our YouTube and we're gonna be streaming to Twitter Live. It's gonna be so much fun. So be sure to join us there and make fun of us. It'll be fun. Or make fun of me. How's that? It's gonna be a great time. Yeah. That's all, folks. So thanks so much. Thank you to everybody who came up here. Let's give everybody who came up and provided value a huge round of applause, some claps and all that good stuff. It's gonna be great.
01:43:19 - Scott Steinlage
Thank you all so much. Appreciate it. Yeah. Some hearts, some love. Yes. Yes. Thank you, everybody. Appreciate it. Ding ding. All right, and with that said, we'll see you in the next one, JavaScript Jam Live every Wednesday, 12pm Pacific Standard Time. All right, y'all, thank you so much. We love y'all and we'll see you in the next one. Peace.