RedwoodJS 全栈框架技术调研
面向中小团队的约定优于配置 React 全栈框架
RedwoodJS 以 GraphQL、Prisma 和一体化 Monorepo 结构为核心,为 React 团队提供开箱即用的全栈开发体验。
RedwoodJS 全栈框架技术调研
RedwoodJS 是由 GitHub 联合创始人 Tom Preston-Werner 主导开发的全栈 React 应用框架。它通过约定优于配置、GraphQL 优先 API、Prisma 类型安全数据层和一体化 Monorepo 结构,为创业公司和中小型团队提供开箱即用的全栈开发体验。2026 年,RedwoodJS v8 引入基于 Cloudflare Workers 的 RedwoodSDK,标志着其向边缘优先架构的战略演进。
一、 基本信息
| 维度 | 关键指标 / 描述 |
|---|---|
| 技术方向 | 全栈元框架 / GraphQL 优先 / 约定优于配置 / Monorepo / Serverless / 边缘计算 |
| 官方网站 | https://docs.rwsdk.com/ |
| GitHub 仓库 | redwoodjs/redwood |
| 生态成熟度 | 中型 (全栈一体化定位清晰,社区规模小于 Next.js/Remix) |
| 运行要求 | Node.js 18+ / 推荐 20+ / 默认使用 Yarn 或 pnpm 作为包管理器 |
二、 版本历史与 2026 年现状
| 版本 | 发布日期 | 关键里程碑 |
|---|---|---|
| RedwoodJS v8 | 2026 年 (RC 阶段) | 引入 RedwoodSDK、Fastify 默认服务端、Background Jobs、多租户 dbAuth、RSC + Streaming SSR 实验性支持。 |
| RedwoodJS v7 | 2024–2025 | 当前稳定主线,基于 Prisma + Express/Fastify 传统架构。 |
| RedwoodJS v6 | 2024 | 引入 Serverless 部署优化、Realtime 订阅增强。 |
| RedwoodJS v1 | 2020 | 首个正式版本,确立 GraphQL + Prisma + React 的全栈一体化定位。 |
2026 年核心趋势
- 双架构并存:v8 同时保留传统 Node.js 架构(Prisma + Fastify)和新一代 RedwoodSDK(Cloudflare Workers + Hono + Drizzle)。
- 向边缘计算演进:RedwoodSDK 将运行时从 Node.js 迁移到 Cloudflare Workers,实现全球低延迟和 RSC + Streaming SSR。
- 全栈能力补全:认证、数据库、后台任务、实时功能、文件上传、多租户在 v8 中更加完整。
- 社区定位清晰:不追求最大市场份额,而是专注"开箱即用的全栈方案",适合不愿自行组装技术栈的团队。
三、 技术定位与简介
RedwoodJS 的核心理念是:让开发者用一套约定和工具链,快速构建完整的全栈应用。与 Next.js 的"灵活但需自行配置"不同,RedwoodJS 更像一个"全栈产品":
- 前端:React + Vite 构建。
- 后端:GraphQL API 服务层。
- 数据层:Prisma ORM 提供类型安全的数据库操作。
- 认证:内置 dbAuth 及多种第三方认证集成。
- 部署:支持 Serverless 函数、传统 Node.js 服务器及 Cloudflare Workers(RWSDK)。
RedwoodJS 尤其适合创业公司 MVP、内部工具、GraphQL 优先团队和需要快速交付的中小型全栈应用。它通过代码生成器(yarn rw generate)和约定式目录结构,大幅减少样板代码和配置争论。
四、 快速上手安装说明
1. 初始化项目
RedwoodJS 官方 CLI 使用 yarn 作为默认包管理器,但 v8 开始也支持 pnpm:
# 使用官方 CLI 创建项目
npx create-redwood-app@latest ./my-redwood-app
cd my-redwood-app
yarn install2. 标准 Monorepo 目录结构
my-redwood-app/
├── api/ # 后端 API 服务
│ ├── src/
│ │ ├── functions/ # Serverless 函数入口
│ │ ├── graphql/ # GraphQL SDL 类型定义
│ │ ├── services/ # 业务逻辑服务层
│ │ ├── lib/ # 后端工具与配置
│ │ └── db.ts # Prisma 客户端实例
│ ├── prisma/
│ │ └── schema.prisma # Prisma 数据模型
│ └── server.config.js # 服务端配置
├── web/ # 前端 React 应用
│ ├── src/
│ │ ├── components/ # 可复用组件
│ │ ├── pages/ # 约定式路由页面
│ │ ├── layouts/ # 页面布局
│ │ ├── cells/ # 声明式数据获取单元
│ │ ├── App.tsx # 应用根组件
│ │ └── Routes.tsx # 自动生成的路由配置
│ ├── index.html
│ └── vite.config.ts
├── scripts/ # 数据库种子、迁移脚本等
├── redwood.toml # Redwood 项目全局配置
├── package.json
└── graphql.config.js # GraphQL 工具配置3. 核心开发命令
yarn rw dev # 同时启动前端和后端开发服务器
yarn rw build # 构建前后端生产包
yarn rw test # 运行 Vitest 测试
yarn rw prisma migrate dev # 执行 Prisma 数据库迁移
yarn rw generate page home # 生成页面、组件、Cell、SDL 等
yarn rw setup auth db-auth # 设置 dbAuth 认证4. redwood.toml 基础配置
[web]
title = "My Redwood App"
port = 8910
apiUrl = "/api"
[api]
port = 8911
[browser]
open = true五、 核心特性
1. 全栈一体化 Monorepo
RedwoodJS 将前端、后端、数据库模型、脚本全部放在同一个仓库中,前后端共享类型定义。GraphQL schema 自动生成 TypeScript 类型,开发者无需手动同步前后端接口契约。
2. Cells 声明式数据获取
Cell 是 RedwoodJS 最具创新性的模式。一个 Cell 组件通过导出 QUERY、Loading、Empty、Failure、Success 五个命名导出,让框架自动根据 GraphQL 查询状态渲染对应 UI:
// web/src/components/PostsCell/PostsCell.tsx
import { MetaTags } from '@redwoodjs/web'
export const QUERY = gql`
query PostsQuery {
posts {
id
title
body
}
}
`
export const Loading = () => <div>Loading posts...</div>
export const Empty = () => <div>No posts yet</div>
export const Failure = ({ error }: { error: Error }) => (
<div>Error loading posts: {error.message}</div>
)
export const Success = ({ posts }: { posts: Post[] }) => (
<ul>
{posts.map((post) => (
<li key={post.id}>{post.title}</li>
))}
</ul>
)// 页面中直接使用 Cell
export default function HomePage() {
return (
<>
<MetaTags title="Home" />
<PostsCell />
</>
)
}3. Services 业务逻辑层
Services 是 RedwoodJS 中业务逻辑的标准位置,位于 api/src/services/。它们被 GraphQL resolver 自动调用,也可被其他服务或测试直接导入。这种分层让数据库操作与 HTTP 层解耦:
// api/src/services/posts/posts.ts
import { db } from 'src/lib/db'
export const posts = () => {
return db.post.findMany()
}
export const createPost = ({ input }: { input: CreatePostInput }) => {
return db.post.create({ data: input })
}4. GraphQL SDL 自动生成
RedwoodJS 通过 api/src/graphql/*.sdl.ts 文件定义 GraphQL 类型和 resolver,框架自动合并 schema 并生成类型:
// api/src/graphql/posts.sdl.ts
export const schema = gql`
type Post {
id: Int!
title: String!
body: String!
createdAt: DateTime!
}
type Query {
posts: [Post!]! @requireAuth
}
input CreatePostInput {
title: String!
body: String!
}
type Mutation {
createPost(input: CreatePostInput!): Post! @requireAuth
}
`5. 约定式路由
RedwoodJS 的目录结构即路由配置:
web/src/pages/HomePage/HomePage.tsx→/web/src/pages/AboutPage/AboutPage.tsx→/aboutweb/src/pages/Post/PostPage/PostPage.tsx→/post/{id}(动态路由)
路由文件 Routes.tsx 由 Redwood CLI 自动生成,无需手动维护。
6. 内置认证系统 (Redwood Auth)
RedwoodJS 提供 dbAuth(内置自托管认证)和多种第三方集成:Auth0、Clerk、Firebase Auth、Netlify GoTrue、Supabase Auth、SuperTokens。v8 新增多租户 dbAuth 支持,适合 B2B SaaS 场景。
7. 代码生成器 (Redwood CLI)
通过 yarn rw generate 快速生成页面、Cell、组件、SDL、Service、布局等,极大减少样板代码:
yarn rw generate page post
yarn rw generate cell PostPosts
yarn rw generate sdl Post
yarn rw generate service Post8. Realtime 与后台任务 (v8)
- Realtime:内置 GraphQL 订阅支持,适合实时协作、通知推送。
- Background Jobs:v8 新增后台任务系统,无需额外引入消息队列。
9. RedwoodSDK (v8 新架构)
RedwoodSDK 是 v8 引入的边缘优先架构:
- 基于 Cloudflare Workers 运行。
- 使用 Hono.js 作为 HTTP 框架。
- 使用 Drizzle ORM 替代 Prisma。
- 支持 RSC + Streaming SSR。
- 部署到 Cloudflare 全球边缘网络,实现低延迟。
六、 适用场景
1. 黄金适用场景
- 创业公司 MVP 与全栈产品:认证、数据库、API、前端全部内置,数天内构建完整应用。
- 内部工具与管理后台:Cells + GraphQL 快速构建数据驱动的 CRUD 界面。
- GraphQL 优先项目:如果团队已选择 GraphQL 作为 API 层,RedwoodJS 提供了最佳实践集成。
- 多租户 SaaS 应用:v8 的 dbAuth 多租户支持适合 B2B 场景。
- 需要实时协作的应用:内置 GraphQL 订阅和后台任务,适合聊天、通知、协作工具。
2. 局限适用场景
- 超大规模微服务架构:RedwoodJS 的一体化设计适合单体或模块化单体,拆分微服务时灵活性不足。
- 非 GraphQL 团队:如果团队偏好 REST 或 Server Actions,GraphQL 的额外复杂度会成为负担。
- 追求极致边缘性能:传统 Prisma + Node.js 架构在 Serverless 冷启动方面不如 Drizzle + Hono 组合。虽然有 RWSDK,但生态和成熟度仍在演进。
七、 技术亮点
1. 全栈一体化开发体验
RedwoodJS 将前端、后端、数据库、认证、部署工具整合为一个完整的开发体验。开发者无需在项目初期花费大量时间选择技术栈和配置工具链,可以专注于业务逻辑。
2. Cells 声明式数据状态机
Cell 模式将数据获取的 loading/error/empty/success 四种状态显式化,消除了手动编写条件分支的样板代码。这种模式强制团队思考数据生命周期,提升 UI 的健壮性。
3. Prisma → GraphQL → 前端类型安全链路
从 Prisma schema 到 GraphQL SDL 到 Service 层到 Cell 组件,数据类型在整个链路中保持强类型。修改数据库模型后,类型会自动重新生成,大幅减少接口不匹配导致的运行时错误。
4. 约定优于配置
目录结构即配置,路由、GraphQL schema、Services 自动发现。新员工可以快速理解项目结构,减少团队配置争论。
5. RedwoodSDK 边缘优先战略
RedwoodSDK 代表 RedwoodJS 的未来方向:从传统 Node.js 服务器向 Cloudflare Workers 边缘架构迁移。配合 Drizzle ORM 和 Hono.js,RWSDK 在冷启动和全球延迟方面具有显著优势。
八、 核心概念与架构
1. Monorepo 三层架构
RedwoodJS 项目天然分为三个关注点:
- Web 层:React 前端,负责 UI 渲染与用户交互。
- API 层:GraphQL 服务端,负责 HTTP 入口、鉴权和 resolver 分发。
- Service 层:业务逻辑核心,负责数据库操作与领域规则。
digraph Redwood_Architecture {
rankdir=TB
node [shape=box, style="rounded,filled", fillcolor="#fef3c7"]
Web [label="Web (React + Vite)"]
API [label="API (GraphQL + Fastify)"]
Services [label="Services (Business Logic)"]
DB [label="Database (Prisma ORM)"]
Web -> API [label="GraphQL Query/Mutation"]
API -> Services [label="resolver calls"]
Services -> DB [label="Prisma Client"]
}2. Cell 数据生命周期
Cell 通过命名约定将异步数据获取的四种状态映射到不同组件:
digraph Cell_Lifecycle {
rankdir=LR
node [shape=box, style="rounded,filled", fillcolor="#e0f2fe"]
Query [label="QUERY 发起 GraphQL"]
Loading [label="Loading 组件"]
Failure [label="Failure 组件"]
Empty [label="Empty 组件"]
Success [label="Success 组件"]
Query -> Loading
Loading -> Failure [label="出错"]
Loading -> Empty [label="数据为空"]
Loading -> Success [label="成功返回"]
}3. SDL 与 Service 解耦
- SDL(Schema Definition Language):定义 GraphQL 类型、查询、变更和输入类型,位于
api/src/graphql/。 - Service:实现具体业务逻辑,位于
api/src/services/。 - 这种解耦让 API 契约与业务逻辑独立演进,便于测试和维护。
4. 认证上下文传递
RedwoodJS 通过 context 将当前用户信息注入 GraphQL resolver 和 Service 层。Service 函数可以通过 requireAuth() 或 hasRole() 进行权限校验:
// api/src/services/posts/posts.ts
import { requireAuth } from 'src/lib/auth'
export const posts = () => {
requireAuth() // 未登录用户无法访问
return db.post.findMany()
}5. RedwoodSDK 边缘架构 (v8)
RWSDK 采用 Cloudflare Workers + Hono + Drizzle 的新组合,运行在全球边缘节点上。与传统架构相比:
- 无 Node.js 运行时依赖,冷启动极低。
- 数据库通过 D1 或 Neon 等边缘友好数据库连接。
- 支持 RSC + Streaming SSR,渲染模型更接近 Next.js App Router。
九、 技术局限与边界
-
社区规模相对较小: GitHub 18,000+ Stars,与 Next.js(133,000+)和 Remix/React Router(56,000+)相比社区规模较小。第三方教程、招聘人才和生态系统相对有限。
-
GraphQL 的额外复杂度: GraphQL 带来了类型安全、灵活查询等优势,但也增加了学习成本、N+1 查询风险、缓存策略复杂度。对于简单 CRUD 应用,GraphQL 可能是过度设计。
-
Prisma 的 Serverless/Edge 局限: Prisma 在 Serverless 环境中的冷启动和连接池管理一直是痛点。虽然 v8 的 RWSDK 使用 Drizzle 替代 Prisma,但传统架构仍受此限制。
-
双架构迁移成本: v8 同时维护传统架构和 RWSDK。现有项目迁移到 RWSDK 需要重新评估数据库连接、部署方式和依赖库兼容性。
-
不适合微服务拆分: RedwoodJS 的一体化设计适合单体或模块化单体。当业务增长需要拆分为独立微服务时,RedwoodJS 的约定可能成为约束。
-
v8 尚未稳定: 截至 2026 年,v8 仍处于 RC 阶段,生产环境建议选择 v7 稳定主线,或仅在实验性项目中尝试 RWSDK。
十、 生态地图
RedwoodJS 围绕 GraphQL、Prisma、React 和 Serverless 构建了一整套生态:
digraph Redwood_Ecosystem {
rankdir=TB
node [shape=box, style="rounded,filled", fillcolor="#fff7ed"]
Redwood [label="RedwoodJS Core", fillcolor="#fed7aa"]
Redwood -> Frontend [label="前端"]
Redwood -> Backend [label="后端"]
Redwood -> Data [label="数据层"]
Redwood -> Auth [label="认证"]
Redwood -> Deploy [label="部署"]
Redwood -> DevTools [label="工具"]
Frontend -> React [label="React"]
Frontend -> Vite [label="Vite"]
Frontend -> Tailwind [label="Tailwind CSS"]
Backend -> GraphQL [label="GraphQL"]
Backend -> Fastify [label="Fastify (v8)"]
Backend -> Hono [label="Hono.js (RWSDK)"]
Data -> Prisma [label="Prisma (传统)"]
Data -> Drizzle [label="Drizzle (RWSDK)"]
Data -> Postgres [label="PostgreSQL"]
Auth -> dbAuth [label="dbAuth"]
Auth -> Clerk [label="Clerk"]
Auth -> Auth0 [label="Auth0"]
Auth -> Supabase [label="Supabase Auth"]
Deploy -> Cloudflare [label="Cloudflare Workers"]
Deploy -> Netlify [label="Netlify"]
Deploy -> Vercel [label="Vercel"]
Deploy -> AWS [label="AWS Lambda"]
DevTools -> Generator [label="Redwood CLI 生成器"]
DevTools -> Vitest [label="Vitest"]
DevTools -> Playwright [label="Playwright"]
}十一、 生态集成
| 领域 | 推荐方案 | 集成说明 |
|---|---|---|
| 前端 UI | React + Tailwind CSS | Redwood 前端基于 React,Tailwind 是社区最常用的样式方案。 |
| UI 组件库 | shadcn/ui / Ant Design / MUI | 可在 Redwood 前端中自由集成。 |
| 后端 API | GraphQL (内置) | Redwood 原生 GraphQL 服务层,无需额外配置。 |
| ORM / 数据层 | Prisma (v7) / Drizzle (v8 RWSDK) | Prisma 是传统架构默认;RWSDK 使用 Drizzle 以获得更好的边缘性能。 |
| 数据库 | PostgreSQL | 生产环境首选;开发测试可用 SQLite。 |
| 认证 | dbAuth / Clerk / Auth0 | dbAuth 是自托管首选;Clerk 适合快速上线;Auth0 适合企业级。 |
| 部署 | Netlify / Cloudflare (RWSDK) / Vercel / AWS Lambda | 传统架构推荐 Netlify/Vercel;RWSDK 推荐 Cloudflare Workers。 |
| 测试 | Vitest + Playwright | Redwood 内置 Vitest;E2E 使用 Playwright。 |
| 表单处理 | React Hook Form | 与 Redwood 表单组件深度集成。 |
| 实时功能 | GraphQL Subscriptions (内置) | 内置实时订阅能力,无需额外引入 WebSocket 库。 |
| 后台任务 | Redwood Background Jobs (v8) | v8 新增后台任务系统,替代外部队列。 |
| 文件存储 | AWS S3 / Cloudflare R2 | 通过 Service 层调用对象存储 SDK。 |
十二、 开发与工程化
1. TypeScript 全栈配置
RedwoodJS 默认使用 TypeScript 覆盖前后端。GraphQL 类型通过 yarn rw g types 自动生成,确保前后端类型一致。
2. Redwood CLI 生成器
Redwood CLI 是开发体验的核心。通过生成器可以快速创建标准结构的页面、Cell、组件、SDL、Service 等:
yarn rw generate page home / # 生成首页
yarn rw generate cell Posts # 生成 PostsCell
yarn rw generate component Header # 生成基础组件
yarn rw generate sdl Post # 生成 GraphQL SDL
yarn rw generate service Post # 生成 Service 层3. 数据库迁移与 Prisma
Prisma schema 是 Redwood 数据层的单一真相源:
yarn rw prisma migrate dev --name add_post
yarn rw prisma generate # 重新生成 Prisma Client 类型
yarn rw prisma studio # 打开 Prisma 可视化数据库管理工具4. 测试工程化
RedwoodJS 默认集成 Vitest 和 React Testing Library。测试文件与源码并列存放:
web/src/components/Post/Post.test.tsx
api/src/services/posts/posts.test.ts5. 代码组织规范
Redwood 的约定式目录结构强制项目保持一致的代码边界:
- 页面 (pages):只负责路由装配和布局挂载。
- Cells:负责数据获取与状态分发。
- Components:负责纯 UI 展示。
- Layouts:负责页面级布局。
- Services:负责业务逻辑与数据库访问。
- GraphQL:负责 API 契约定义。
十三、 性能与安全
1. 避免 GraphQL N+1 查询
GraphQL resolver 容易出现 N+1 查询问题。RedwoodJS 的 Prisma 可以通过 include 或 dataloader 模式批量加载:
// api/src/services/posts/posts.ts
import { db } from 'src/lib/db'
export const posts = () => {
// 使用 include 一次性加载关联数据
return db.post.findMany({ include: { author: true } })
}2. Prisma 连接池管理
在 Serverless 环境中,Prisma 连接池容易耗尽。建议使用连接池中间件(如 Prisma Accelerate 或 PlanetScale 的连接池)或迁移到 RWSDK 的 Drizzle + D1。
3. Service 层鉴权
每个 Service 函数都应明确校验权限,避免 GraphQL resolver 绕过鉴权:
import { requireAuth } from 'src/lib/auth'
export const deletePost = ({ id }: { id: number }) => {
requireAuth({ role: 'admin' }) // 仅管理员可删除
return db.post.delete({ where: { id } })
}4. dbAuth 安全实践
- 密码必须使用 bcrypt 等强哈希算法存储。
- Session Cookie 设置
HttpOnly、Secure、SameSite。 - 防止 CSRF 攻击,Redwood 的 dbAuth 内置 CSRF Token 校验。
5. 输入校验与 SQL 注入防御
RedwoodJS 通过 Prisma 的参数化查询天然防御 SQL 注入。但对于自定义验证,应使用 Zod 或 Joi 在 Service 层校验输入。
6. 文件上传安全
限制上传文件类型、大小,并将文件存储在对象存储(S3/R2)而非本地文件系统。上传后返回的 URL 应做签名和过期控制。
十四、 技术对比
| 特性维度 | RedwoodJS v8/v7 | Next.js 16/15 | Remix / React Router v8 | TanStack Start |
|---|---|---|---|---|
| 核心定位 | 全栈一体化方案 | 灵活全栈元框架 | Web 标准全栈框架 | 类型安全全栈框架 |
| API 层 | GraphQL (内置) | REST/Server Actions/Route Handlers | REST/loader+action | Server Functions |
| ORM 默认 | Prisma (v7) / Drizzle (v8) | 无默认,Drizzle/Prisma 可选 | 无默认 | 无默认 |
| 数据获取模式 | Cells + GraphQL | RSC + Suspense | loader + action | loader + Server Functions |
| 架构模式 | Monorepo 约定式 | App Router 约定式 | 嵌套路由 + 文件约定 | 类型安全路由 + 配置 |
| 部署平台 | Netlify/Cloudflare/Vercel/AWS | Vercel 优先 | 多平台中立 | 多平台中立 |
| 学习曲线 | 中等(需 GraphQL 基础) | 陡峭(RSC/缓存心智) | 中等(Web 标准) | 中等(类型安全) |
| 社区规模 | 中型 | 最大 | 大 | 快速增长 |
| 最适场景 | 创业公司 MVP、内部工具、GraphQL 优先 | 大型电商、企业官网、SEO 敏感 | 复杂交互控制台、渐进增强 | 类型安全企业应用、Vite 迁移 |
十五、 最佳实践
-
严格遵守 Cell 状态分离: 每个 Cell 必须提供
Loading、Failure、Empty、Success四个导出,避免在组件中手动管理异步状态分支。 -
业务逻辑集中在 Services 层: 数据库操作、权限校验、复杂计算应放在
api/src/services/中,而不是 GraphQL resolver 或前端组件中。 -
GraphQL SDL 作为 API 契约: SDL 只定义类型和入口,不实现业务逻辑。保持 SDL 与 Service 的职责分离。
-
Prisma 数据模型即单一真相源: 数据库设计从
schema.prisma开始,通过迁移同步到数据库,并自动生成 GraphQL 和前端的类型。 -
使用 Redwood CLI 生成器: 避免手写样板文件。通过
yarn rw generate保持项目结构一致,减少人为错误。 -
Service 层必须显式鉴权: 不要依赖 GraphQL 层的
@requireAuth作为唯一防线。关键 Service 函数内部应再次校验权限,防止被测试代码或其他入口误用。 -
测试覆盖 Service 层: 单元测试优先覆盖 Service 层业务逻辑,而非仅测试 UI 组件。Service 层是纯函数与数据库操作的边界,测试价值最高。
-
谨慎处理 GraphQL N+1: 使用 Prisma
include、DataLoader 或批量 resolver 避免 N+1 查询,尤其在高并发列表接口中。 -
传统架构 vs RWSDK 选择:
- 现有项目或需要稳定生产环境:选择 v7 传统架构。
- 新项目、追求边缘性能、能接受 RC 风险:尝试 v8 RWSDK。
-
部署前进行全栈验证: 同时运行前端构建、后端构建和数据库迁移验证,确保 GraphQL schema 与前端类型一致。
十六、 学习与社区资源
1. 官方核心资源
- RedwoodJS 官方文档:https://docs.rwsdk.com/docs/introduction
- RedwoodJS 官方教程:https://docs.rwsdk.com/docs/tutorial/ — 从零构建完整全栈应用。
- RedwoodJS 博客:https://docs.rwsdk.com/blog
- RedwoodJS GitHub:https://github.com/redwoodjs/redwood
- RedwoodJS Discord:活跃的社区交流与技术答疑。
2. 视频与教程
- RedwoodJS 官方 YouTube:https://www.youtube.com/redwoodjs
- Build a Twitter Clone with RedwoodJS:经典实战项目教程。
- Redwood 101 系列:入门概念与最佳实践讲解。
3. 社区与会议
- RedwoodJS Community Forum:官方论坛,适合深度讨论架构问题。
- Reddit r/redwoodjs:社区讨论与经验分享。
- Twitter/X @redwoodjs:官方动态与版本发布。
- RedwoodJS Conference:年度社区大会,聚焦全栈开发实践。
4. 推荐书籍
- 《The RedwoodJS Book》— 官方社区出版的系统入门书籍。
- 《Fullstack GraphQL》— 适合深入理解 Redwood 的 GraphQL 数据层。