Introduction
RedwoodJS is a full-stack web framework co-founded by Tom Preston-Werner (GitHub co-founder) that wires together React, GraphQL, and Prisma into a single cohesive developer experience. It follows a cells-and-services architecture that separates data fetching from presentation, and includes generators, auth integration, and deploy targets out of the box.
What RedwoodJS Does
- Scaffolds full-stack CRUD features with a single CLI generator command
- Connects a React frontend to a GraphQL API backed by Prisma and any SQL database
- Provides Cells, a declarative data-fetching pattern that handles loading, empty, error, and success states
- Includes built-in authentication adapters for Supabase, Auth0, Clerk, and others
- Supports prerendering, server-side rendering, and streaming via React Server Components
Architecture Overview
A Redwood project is a monorepo with two workspaces: web (React + Apollo Client) and api (GraphQL + Prisma). The web side uses Cells to declare GraphQL queries alongside the component that renders the result. The API side maps SDL type definitions to service functions that call Prisma. A built-in CLI generates boilerplate for pages, layouts, cells, services, and database migrations.
Self-Hosting & Configuration
- Create a project with
npx create-redwood-appand choose TypeScript or JavaScript - Define your data model in
api/db/schema.prismaand runyarn rw prisma migrate dev - Generate pages, cells, and services with
yarn rw generatecommands - Configure auth, deployment target, and environment variables in
redwood.toml - Deploy to Vercel, Netlify, AWS Lambda, Render, or self-hosted Node.js servers
Key Features
- Cells pattern separates data lifecycle states from rendering logic cleanly
- Full-stack generators produce pages, GraphQL types, services, and tests together
- Prisma integration with automatic migration management via CLI
- Multiple auth provider adapters with role-based access control built in
- Storybook integration for isolated component development
Comparison with Similar Tools
- Next.js — React meta-framework with SSR/SSG focus, no built-in GraphQL layer or ORM
- Remix — Web-standards-first with loaders and actions, no opinionated ORM or GraphQL integration
- Blitz.js — Similar full-stack vision built on Next.js with zero-API pattern, smaller community
- Meteor — Older full-stack platform with real-time data, uses its own build system and pub/sub
- SvelteKit — Svelte-based full-stack framework, different component model, no GraphQL layer
FAQ
Q: Does RedwoodJS require GraphQL? A: GraphQL is the default API layer. Redwood also supports building custom REST endpoints, but the generators and Cells pattern are designed around GraphQL.
Q: What databases does RedwoodJS support? A: Any database supported by Prisma: PostgreSQL, MySQL, SQLite, SQL Server, CockroachDB, and MongoDB (preview).
Q: Is RedwoodJS ready for production? A: Yes. RedwoodJS reached v1.0 in 2022 and has been used in production applications. The framework continues active development toward v8+.
Q: Can I use RedwoodJS without the full-stack setup? A: The framework is designed as a cohesive full-stack solution. Using only the web or API side independently is possible but loses the integrated developer experience.