Anthony Campolo discusses RedwoodJS, a full-stack framework utilizing GraphQL, React, and serverless functions.
Episode Description
An exploration of RedwoodJS’s origins, features, and community-driven approach to modern full-stack development with GraphQL, React, and serverless deployments.
Episode Summary
This conversation focuses on RedwoodJS, a framework designed to streamline full-stack web development by pairing a serverless-first approach with GraphQL and React. The speakers discuss RedwoodJS’s unique structure, which includes separate directories for both front-end and API code, enabling a “mono repo” experience that feels familiar to developers coming from frameworks like Rails. They also compare RedwoodJS to similar approaches, highlighting Prisma’s role in simplifying database interactions and GraphQL’s ability to unify multiple services into a single endpoint. Key advantages—like robust testing, scaffolding commands, and a friendly developer experience—are emphasized, along with the community’s focus on thorough documentation and tutorials. The discussion closes by noting RedwoodJS’s real-world adoption, its flexible architecture for headless usage, and its forward-looking vision to support multi-client projects on a variety of platforms, including mobile and desktop applications.
Chapters
00:00 - Introduction and Initial Impressions
In the first moments of the conversation, the hosts welcome Anthony Campolo and kick off the new year with questions about RedwoodJS. They share personal thoughts on modern JavaScript frameworks, revealing that, while they have experimented with static site generation tools like Gatsby and Next, they are eager to explore how RedwoodJS extends the idea of “JAMstack” to incorporate a robust backend. This early exchange sets the stage by contrasting RedwoodJS with the simpler static hosting setups the hosts have used in the past.
Anthony then describes RedwoodJS’s core premise: a single project containing both a React-based front end and a GraphQL-powered API, all optimized for serverless functions. Emphasizing developer experience, Anthony explains how RedwoodJS aims to simplify the complexities of full-stack development, particularly for individuals who want to prototype and scale rapidly without managing infrastructure. The conversation hints at topics to come, including Redwood’s Rails-inspired scaffolding, deployment strategies, and the framework’s thriving community.
06:00 - Understanding the Full-Stack Approach
This segment dives deeper into RedwoodJS’s architecture, starting with how it merges a traditional front-end React application and a back-end powered by Prisma, GraphQL, and serverless functions. The group compares these concepts to building custom setups on platforms like Heroku, acknowledging the friction of manually wiring up relational databases and writing controllers from scratch. Redwood’s approach, through a convention-over-configuration model, promises to reduce that friction significantly.
Anthony highlights the advantages of leveraging relational databases via Prisma, praising Prisma’s developer-friendly schema management. The conversation turns to Redwood’s approach to GraphQL: Redwood encourages a clean separation of concerns, where the schema, services, and resolvers each live in clearly designated folders, ensuring clarity for newer developers. The participants see parallels with Rails’ philosophy of scaffolding, which creates standardized structures that accelerate development and lower the barrier to entry.
12:00 - Refining Tech Choices and the Roadmap
The speakers pivot to discuss RedwoodJS’s roadmap and some fundamental design choices that have shaped the framework. Anthony explains Redwood’s preference for Prisma over other database abstraction layers, pointing out how it neatly addresses relational data needs. He also describes how Redwood 1.0 is on the horizon, focusing on hardening its core features and polishing developer workflows.
During this section, they explore how Redwood compares to other frameworks like Blitz. Both Redwood and Blitz rely on Prisma, but Blitz opts out of GraphQL, whereas Redwood fully embraces it. GraphQL remains central to Redwood’s vision of easily connecting a variety of front-end clients—web, mobile, or even desktop—to a single unified API. They also touch on Redwood’s test-driven mindset, which includes built-in utilities for storybook and Jest that guide developers toward testing best practices by default.
18:00 - Front-End Elements and the Concept of Cells
Here, the discussion focuses on Redwood’s front-end tooling. The hosts ask about Redwood’s “Cells,” which Anthony describes as a unique convention for managing data-fetching states in a React component. By bundling queries and rendering logic into a standardized pattern, Redwood helps developers handle loading, error, and success states more elegantly than manually writing boilerplate.
They contrast Redwood’s approach with other React-based data libraries such as React Query. While Redwood uses Apollo for GraphQL under the hood, the Cell abstraction wraps Apollo in a way that streamlines code and fosters clarity. The emphasis remains on simplifying full-stack tasks, reinforcing Redwood’s commitment to a well-defined workflow. This conversation also addresses Redwood’s philosophy of giving developers helpful defaults while still allowing them to reconfigure elements if needed.
24:00 - Serverless Deployments and Simplified Hosting
Delving into infrastructure choices, the group examines how Redwood handles deployments. Anthony points to Netlify and Vercel as primary targets, underscoring Redwood’s drive toward a “serverless by default” approach. By generating a compact set of serverless functions, Redwood can distribute an application around the globe using CDNs, bringing latency down and making scaling more straightforward.
Despite this serverless emphasis, Anthony acknowledges that many Redwood users also stand up a traditional server or use platforms like Render or AWS to host both the frontend and the database. For complex applications with heavier back-end logic, having a single environment might simplify debugging and integration. The ability to choose a hosting model—serverless or more conventional—demonstrates RedwoodJS’s flexibility, letting teams adopt new paradigms at their own pace.
30:00 - Redwood vs. Blitz and Other Comparisons
The conversation dives into broader comparisons between Redwood and other emerging full-stack tools. In evaluating frameworks like Blitz, Next.js, and older server-based paradigms, the participants highlight Redwood’s jamstack orientation as a defining difference. Blitz positions itself as a “full-stack React” solution that doesn’t center on GraphQL, while Redwood stands firmly in the GraphQL ecosystem.
They return to Redwood’s monorepo structure, which orchestrates front-end and back-end code in a single project, reminiscent of Rails applications that unify assets under one umbrella. Anthony notes that each framework’s origin story and guiding philosophies shape how it handles data fetching, routing, and serverless support. They suggest that prospective developers evaluate Redwood based on their own comfort with JAMstack, GraphQL, and the prospect of using a single toolset to manage a complete application lifecycle.
36:00 - Philosophy, Documentation, and the Human Element
In this chapter, the hosts explore Redwood’s documentation, community, and overarching philosophy. Anthony explains that Redwood’s guiding principles owe much to Tom Preston-Werner’s background in creating Jekyll and GitHub Pages, emphasizing readme-driven development and top-notch tutorials. This dedication to docs not only benefits newcomers but also enriches collaboration among team members who need clear guidelines and consistent workflows.
They also note Redwood’s pragmatic stance: while the framework is “serverless-first,” it doesn’t enforce a single deployment style. Users can decide where and how to run their back end, reflecting a respect for real-world constraints. The discussion touches on Redwood’s sense of community, illustrating how a culture of helpfulness and thorough communication can foster trust for early adopters who need to see that their projects will be well supported.
42:00 - Serverless Challenges and the “Lambdalith”
Moving into deeper technical territory, the group acknowledges that serverless platforms come with inherent trade-offs. Anthony points out a known issue: pushing large amounts of application logic into a single Lambda function—sometimes jokingly called a “lambdalith”—can cause size or performance constraints not originally anticipated for function-as-a-service providers.
Despite these limitations, Redwood still treats serverless as the primary path, certain that providers will evolve to handle more complex use cases. The conversation underscores Redwood’s flexible design, allowing teams to start serverless but migrate or supplement with more traditional hosting when needed. They remain confident that Redwood’s integrated approach to routing, schema generation, and one-stop scaffolding will continue to smooth over typical frustrations seen in multi-service architectures.
48:00 - Testing, Storybook, and Scaffolding Tools
Here, the focus shifts to Redwood’s developer experience enhancements, such as out-of-the-box testing with Jest and Storybook. Anthony highlights Redwood’s approach to generating test files for each new component, encouraging developers to adopt best practices without wrestling with complex setups. This goes hand in hand with Redwood’s scaffold commands, which offer a Rails-like way of spinning up boilerplate for models, components, and services.
The hosts recognize that these time-saving features reduce friction, especially for solo developers and smaller teams. They also see how Redwood’s clear patterns guide new programmers, reducing the learning curve by bundling recommended practices into the framework. By offering a consistent structure for everything from migrations to UI mocks, Redwood empowers users to spend more time building features and less time searching for the right library or configuration.
54:00 - Production Stories and Looking Ahead
In the final stretch, Anthony mentions several real-world RedwoodJS applications running in production, including those handling donation portals and background processing jobs. Hearing about tangible use cases reassures developers that Redwood is more than a theoretical exercise; it’s actively powering growing startups. The speakers reflect on the ease of scaling and how Redwood’s community has addressed pain points around data modeling, routing, and authentication.
They conclude by reiterating Redwood’s forward-thinking plans, particularly around support for mobile and desktop clients that can communicate through a unified GraphQL API. With Redwood’s foundation nearly complete, future updates will hone existing features—like testing, scaffolding, and improved front-end tooling—while keeping an eye on multi-platform expansions. The conversation ends on an encouraging note, inviting curious listeners to explore Redwood’s documentation, try a tutorial, and share their experiences with the community.