- 难度
- 较难
- 适合
- 进阶
- 主要语言
- TypeScript
- GitHub
- ★ 54.6k
- 许可证
- AGPL-3.0
- 快照日期
- 2026年8月9日
先判断要不要学
这个项目值得拆什么?
Twenty 是面向 AI 时代的开源 CRM,把联系人、公司、机会、自定义对象与工作流放在 TypeScript/Nx monorepo 中。NestJS、PostgreSQL、Redis/BullMQ 支撑服务端,React、Jotai、Linaria 与 Lingui 支撑前端。它适合研究“可配置业务对象”如何贯穿 schema、API、表格和权限。
- 01
不只有固定 CRM 表,可学元数据驱动的可扩展对象系统。
- 02
前后端技术栈在 README 中明确列出,便于按层阅读。
- 03
处理多租户、背景任务、国际化和大量表格交互,产品工程参考价值高。
可以学什么
不只是看代码,而是找到产品的骨架
- 学产品结构
- 学数据库
- 学用户登录
- 学界面
- 学 Agent 工作流
- 学完整项目组织
元数据驱动对象
选一个自定义字段,跟踪它从 metadata 到数据库、API、表格和编辑器的表达。
packages/twenty-server/src/engine · packages/twenty-front/src/modules前台请求与背景任务分工
区分即时 CRM 操作与 BullMQ 后台处理,理解可重试任务边界。
packages/twenty-server/src · packages/twenty-server/src/engine/core-modules表格型产品交互
观察列配置、选择、批量操作、过滤和视图如何共享对象契约。
packages/twenty-front/src/modules/object-record · packages/twenty-front/src/modules/views三段学习路径
从理解、修改到做出你的版本
0130 分钟先跑通
建立 CRM 对象地图
- 读 README Stack
- 选 company/person/opportunity 之一
- 在 front/server 中各定位一次
完成标志:一张对象从 metadata 到 UI 的图。
022 小时动手改
设计一个自定义字段切片
- 定义字段类型与校验
- 对照 API 输入输出
- 找到表格和编辑器组件
- 列出迁移、索引和权限影响
完成标志:一份跨层改动清单。
031 天做变体
实现简化可配置 CRM 原型
- 仅支持两种对象和三种字段
- 实现元数据驱动表格
- 加入租户边界和背景导入任务
- 测试迁移、批量操作和跨租户访问
完成标志:一个能解释 metadata 价值与成本的小型 CRM。
评分解释
每一分都要说清楚为什么
可复刻性11 / 25
大型引擎与多服务不利整体复刻。
文档与代码清晰度16 / 20
技术栈清晰,但代码面积大。
新手学习价值10 / 20
适合进阶工程学习。
产品完整度15 / 15
CRM 与工作流能力成熟。
vibe coding 代表性6 / 10
适合学小步改成熟仓库。
活跃度5 / 5
活跃发布和社区。
新颖性5 / 5
元数据驱动 CRM 有高学习价值。