WhoBuilt

Revisiting my React course 3 years later

Jan 19, 2023· 51 min· 17K views·Watch on YouTube

Lee Robinson of Vercel revisits his React 2025 course and explains what he would keep or change about its tools and development patterns.

Why the course was built

Robinson created React 2025 to help frontend developers build full-stack applications, including databases, payments, and deployment. The course followed a real product, Fast Feedback, using Next.js, Firebase, Stripe, and Vercel.

Databases and authentication

Firebase has run the original app for years without maintenance, so Robinson is still happy with it, though he might compare other database options for a new project. He would likely use NextAuth, now called Auth.js, to make server-side authentication easier than managing sessions and cookies around client-side Firebase Auth.

Server rendering and data fetching

Robinson shows how async Server Components can fetch data directly, while client components handle interactive controls. In his rebuilt app, the feedback table is rendered on the server with no extra client-side JavaScript, and loading UI can appear while data streams in. He says mutations and optimistic updates still need a clearer solution in the 2023 App Directory.

Framework and styling choices

Robinson would still choose Next.js for a project that needs a mix of static marketing pages, dashboards, and server-rendered routes in one app. For styling, he favors Tailwind and Tremor for dashboard components, and would avoid runtime CSS-in-JS because it can add client JavaScript and complicate streaming.

What held up over time

Robinson says common tools such as ESLint, Prettier, and TypeScript have become steadier choices as churn in parts of the JavaScript ecosystem has slowed. He would use TypeScript from the start, adding types gradually rather than needing deep expertise upfront.

Takeaways

  • Keep a stable database that is working; reassess options when starting a new project.
  • Prefer server-side auth checks when routes need to protect data before rendering.
  • Use server components for data that does not need browser interactivity.
  • Choose a framework that lets marketing pages and application routes use different rendering strategies.
  • Adopt TypeScript incrementally to gain editor support without mastering every type feature first.

Mentioned in this talk

Search inside this talk

What was claimed 10

Related talks