ajcwebdev
Video cover art for A First Look at RedwoodJS with Anthony Campolo and Ryan Carniato

A First Look at RedwoodJS with Anthony Campolo and Ryan Carniato

Published:

Ryan Carniato and Anthony Campolo explore RedwoodJS's journey towards React Server Components, discussing its unique approach as an opinionated full-stack framework and its upcoming v6 release.

Episode Summary

In this engaging discussion between Ryan Carniato and Anthony Campolo, they explore RedwoodJS’s evolution as an opinionated full-stack JavaScript framework. Anthony, who serves as the “Bard of Redwood,” shares insights into how RedwoodJS differentiates itself through its comprehensive approach to full-stack development, inspired by Ruby on Rails but reimagined for the JavaScript ecosystem. The conversation covers RedwoodJS’s transition to Vite, its experimental implementation of React Server Components, and its unique cell pattern for data fetching. They discuss the framework’s tutorial-driven development approach and its structured way of handling authentication and authorization. The discussion also touches on broader industry trends including signal-based reactivity, the emergence of WASM frameworks like Leptos, and the challenges of implementing server-side rendering in modern web frameworks. The conversation concludes with announcements about the upcoming RedwoodConf and a $10,000 build competition.

Chapters

00:00 - Introduction and Background

Anthony Campolo shares his journey from music education to web development and how he became involved with RedwoodJS. He discusses attending Lambda School (now Bloom Tech) through an income share agreement and later dropping out to focus on RedwoodJS. The conversation covers his transition into DevRel and starting the FSJam podcast, exploring how he discovered various frameworks including RedwoodJS, Blitz, and Remix during their initial releases in early 2020.

14:02 - RedwoodJS Overview and Philosophy

An exploration of RedwoodJS’s positioning as a framework for startups and applications. The discussion covers how Tom Preston-Werner and Peter Pistorius developed RedwoodJS while building Chatterbug, their experience with React frontend querying a Ruby on Rails GraphQL backend, and how this led to creating a more integrated solution. They examine the framework’s commitment to being opinionated and how it differs from other meta-frameworks.

30:42 - Architecture and Technical Implementation

A detailed look at RedwoodJS’s technical architecture, including its GraphQL implementation, Prisma integration, and the cell pattern for data fetching. The conversation covers how the framework handles authentication and authorization, its router implementation, and code splitting strategies. They discuss the framework’s approach to managing dependencies and its transition from Webpack to Vite in version 6.

52:15 - Tutorial-Driven Development Approach

An in-depth discussion of RedwoodJS’s unique tutorial-driven development philosophy, where the tutorial was written before the framework was built. They explore how this approach has influenced the framework’s evolution and how it helps new developers understand the framework’s concepts. The conversation includes examining the tutorial’s structure and how it progresses from basic concepts to more advanced features.

1:17:33 - React Server Components Integration

The discussion shifts to RedwoodJS’s experimental implementation of React Server Components. They explore the challenges of implementing server-side rendering, the framework’s render modes, and how it plans to maintain backwards compatibility while embracing new React features. The conversation covers the technical implications of different rendering approaches and the roadmap for full RSC support.

1:45:28 - Performance and Optimization Strategies

An examination of RedwoodJS’s approach to performance optimization, including code splitting, lazy loading, and bundle size management. The discussion covers how the framework handles data fetching, caching strategies, and its integration with modern web APIs. They explore the trade-offs between different optimization techniques and how the framework makes these decisions.

2:14:08 - State Management and Reactivity

A broader discussion about state management approaches, including signals and reactive programming. They examine how different frameworks handle reactivity, the potential standardization of signals, and how RedwoodJS fits into this ecosystem. The conversation includes insights into the future of state management in web development.

2:42:35 - Layouts and Routing Architecture

A detailed exploration of layout patterns in modern web frameworks, examining the philosophical and technical implications of different approaches. The discussion covers nested routing, the relationship between layouts and routes, and how RedwoodJS’s approach differs from other frameworks. They debate the merits of various file system routing strategies and layout implementations.

3:12:23 - Community and Future Direction

The episode concludes with announcements about RedwoodConf, the $10,000 build competition, and the framework’s growing community. They discuss EdgeIO, JavaScript Jam, and the importance of community engagement in open source development. The conversation includes reflections on the week’s JavaScript news and upcoming events in the web development space.