注册
web

我开源了一个基于 Tiptap 实现一个功能丰富的协同编辑器 🚀🚀🚀

一个基于 TiptapNext.js 构建的现代化协同文档编辑器,集成了丰富的编辑能力与多人实时协作功能,支持插件扩展、主题切换与持久化存储。适合团队写作、教育笔记、在线文档平台等场景。



无论你是想学习或者想参与开发,你都可以添加我微信 yunmz777,我拉你进交流群中进行学习交流,我们还有很多其他不同的开源项目。



近期开始准备出一个 前端工程化实战 类的课程,如果你对前端技术迷茫,那么学习前端工程化是最好的一个进阶方案,以下是相关的实战内容大纲:



20250519222445


如果你感兴趣想参与的,可以添加我微信进行更详细的了解。


🚀 功能特性



  • 📄 富文本编辑:标题、列表、表格、代码块、数学公式、图片、拖拽等
  • 👥 实时协作:使用 Yjs + @hocuspocus/provider 实现高效协同
  • 🧩 插件丰富:基于 Tiptap Pro 多种增强功能(如表情、详情组件等)
  • 🧰 完善工具链:支持 Prettier、ESLint、Husky、Vitest 等开发工具

📦 技术栈


前端技术栈


技术说明
Next.js构建基础框架,支持 SSR / SSG
Tiptap富文本编辑器,基于 ProseMirror
Yjs协同编辑核心,CRDT 数据结构
@hocuspocusYjs 的服务端与客户端 Provider
React 19UI 框架,支持 Suspense 等新特性
Tailwind CSS原子化 CSS,集成动画、表单样式等
Socket.io协同通信通道
Prettier/ESLint代码风格统一
Vitest/Playwright单元测试与端到端测试支持

20250519183256


后端技术栈


分类技术 / 工具说明
应用框架NestJS现代化 Node.js 框架,支持模块化、依赖注入、装饰器和类型安全等特性
HTTP 服务Fastify高性能 Web 服务引擎,替代 Express,默认集成于 NestJS 中
协同编辑服务@hocuspocus/server, yjs提供文档协同编辑的 WebSocket 服务与 CRDT 算法实现
数据库 ORMPrisma类型安全的数据库访问工具,自动生成 Schema、支持迁移与种子数据
数据验证class-validator, class-transformer请求数据验证与自动转换,配合 DTO 使用
用户鉴权@nestjs/passport, passport, JWT, GitHub支持本地登录、JWT 认证与 GitHub OAuth 登录
缓存与状态ioredis用于缓存数据、实现限流、协同会话管理或 Pub/Sub 消息推送
对象存储minio私有化部署的 S3 兼容存储服务,支持图片与附件上传
图像处理sharp图像压缩、格式转换、缩略图等操作
日志系统winston, winston-daily-rotate-file支持多种格式、日志分级、自动归档的日志方案
服务监控@nestjs/terminus, prom-client提供 /health 健康检查和 /metrics Prometheus 指标暴露接口
监控平台Prometheus, Grafana采集与可视化服务运行指标(已内置 Docker 部署配置)
接口文档@nestjs/swagger基于代码注解自动生成 Swagger UI 文档
安全中间件@fastify/helmet, @fastify/rate-limit添加 HTTP 安全头部、限制请求频率、防止暴力攻击等安全保护
文件上传@fastify/multipart, @webundsoehne/nest-fastify-file-upload支持文件流式上传,集成 Fastify 与 NestJS 的多文件上传处理

20250519183049


🚀 快速开始


1. 克隆仓库


git clone https://github.com/xun082/DocFlow.git
cd DocFlow

安装依赖


建议使用 pnpm:


pnpm install

启动本地开发环境


pnpm dev

如何部署


确保已安装以下环境:



  • Docker
  • 推荐:Linux/macOS 或启用 WSL 的 Windows 环境

1️⃣ 构建镜像


docker build -t doc-flow .

2️⃣ 启动容器


docker run -p 6001:6001 doc-flow

启动完成之后访问地址:


http://localhost:6001

🔧 常用脚本


脚本命令作用说明
pnpm dev启动开发服务器
pnpm build构建生产环境代码
pnpm start启动生产环境服务(端口 6001)
pnpm lint自动修复所有 ESLint 报错
pnpm format使用 Prettier 格式化代码
pnpm type-check运行 TypeScript 类型检查
pnpm test启动测试(如配置)

🧰 开发规范



  • 使用 Prettier 和 ESLint 保证代码风格统一
  • 配置了 Husky + lint-staged 进行 Git 提交前检查
  • 使用 Commitizen + cz-git 管理提交信息格式(支持语义化发布)

初始化 Git 提交规范:


pnpm commit

📌 未来规划(Roadmap)


项目目前已具备基础协作编辑能力,未来将持续完善并拓展更多功能,进一步提升产品的实用性与专业性:


✅ 近期目标




  • 完善现有功能体验



    • 优化协同冲突解决策略
    • 更细粒度的权限管理(只读 / 可评论 / 可编辑)
    • 增强拖拽体验与文档结构导航(大纲视图)



  • 增强文档组件系统



    • 重构基础组件体系:标题、表格、代码块等更智能、模块化
    • 增加工具栏、快捷键提示和 Markdown 快速输入支持



  • 丰富文档类型与节点支持



    • 支持更多 自定义 Tiptap 节点,如:

      • 引用评论块(Comment Block)
      • 自定义警告框 / 提示框(Tip/Warning)
      • UML/流程图嵌入(如支持 Mermaid)
      • 数据展示组件(如 TableChart、Kanban)





🚀 中期目标




  • 引入音视频实时会议能力



    • 集成 LiveKitDaily 实现嵌入式音视频会议
    • 支持多人语音 / 视频通话,结合文档协同,提升远程会议效率
    • 集成会议内共享笔记区、AI 摘要、会议录制等功能



  • 集成 AI 能力



    • 智能语法纠错、改写建议
    • 语义搜索与问答(支持上下文理解)
    • AI 总结 / 摘要生成



  • 多平台同步支持



    • PWA 支持,适配移动端和桌面离线编辑
    • 跨设备自动同步与版本恢复



🧠 长期方向




  • 插件生态系统建设



    • 引入用户可安装的第三方插件体系
    • 提供插件开发文档与市场入口



  • 文档协作平台化



    • 支持文档团队空间、多人组织结构
    • 文档看板与团队活动看板集成



  • 权限与审计系统



    • 支持操作日志记录、文档编辑历史审查
    • 审批流、编辑建议、协同讨论区等功能



License


本项目采用 MIT 开源协议发布,但包含部分 Tiptap Pro 模板代码除外


Tiptap Pro 模板版权归 Tiptap GmbH 所有,并根据 Tiptap Pro 授权协议进行授权。

详见:tiptap.dev/pro/license


如需使用本项目中涉及 Tiptap Pro 的部分,必须拥有有效的 Tiptap Pro 订阅授权。


📬 联系方式


有更多的问题或者想参与开源,可以添加我微信 yunmz777,我们这还有很多开源项目:


20250519222610


作者:Moment
来源:juejin.cn/post/7505969919029542949

0 个评论

要回复文章请先登录注册