Hacker News 中文摘要

RSS订阅

Doory – Open-Source Canva

Doory(Doory)是一个在浏览器中运行的完整设计编辑器,可制作海报、社交媒体帖子、故事、幻灯片、请柬、简历、缩略图和名片,从模板或空白页开始,编辑全部内容,并导出为 PNG、JPG、SVG、PDF、MP4 或 GIF。所有功能免费,无需注册账户即可开始,也可在自己的服务器上运行整个程序。

正文

Doory 是一个功能完整的设计编辑器,完全在浏览器中运行。你可以制作海报、社交媒体帖子、故事(Stories)、幻灯片、邀请函、简历、缩略图和名片:从模板或空白页开始,随意编辑所有内容,并导出为 PNG、JPG、SVG、PDF、MP4 或 GIF。每一项功能都免费,无需注册账户即可上手,你还可以把整个程序部署在自己的服务器上。

🎬 实际演示

一段真实的 Doory 操作录制:选择演出海报模板、重命名乐队、修改日期颜色、添加星形并打开导出菜单

💜 为什么选择 Doory

🆓 真正的免费

没有 Pro 套餐,没有锁定模板,没有水印,也没有广告。从抠图到视频导出,编辑器里的每一个工具都向所有人开放。

⚡ 一键开始

打开编辑器即可设计。访客的作品会保存在浏览器中;只有当你想将设计保存到云端时才需要创建账户,而且只需一步就能把原有设计迁移过去。

🏠 由你自行托管

只需一条 docker compose up 命令,就能在你自己的服务器上运行前端应用、API、数据库以及实时协作功能。每一个设计和上传的文件都由你自己掌控。

🛠️ 真正的编辑器

图层、编组、蒙版、滤镜、曲线文字、对齐吸附、标尺、多页设计、动画、音频、演示、评论以及实时协同编辑。

🎨 设计所需的一切

打开了演出海报模板的 Doory 编辑器

编辑一切

点击任何文字、形状或图片即可修改。页面上方的工具栏中,字体、颜色、大小、对齐方式和效果都触手可及。

带有进入、退出和强调动画的“动画”面板

让它动起来

提供 27 种进入和退出动画、12 种强调效果以及 16 种页面切换效果,并可使用内置库中的音乐和音效。你可以直接演示,也可以将其导出为视频。

带有右键菜单的“图层”面板

保持井然有序

每一个对象都是一个图层,你可以重命名、锁定、隐藏、通过拖拽重新排序、编组,或右键点击进行复制、创建副本、删除和排列。

导出菜单:PNG、JPG、PDF、SVG、视频和 GIF

随处导出

支持带透明背景的 PNG、JPG、SVG 和 PDF,以及 MP4、WebM 和动态 GIF,全部在浏览器中完成。需要印刷?还可以导出带出血和裁切标记的印刷级 PDF。

查看完整功能列表

| | | | --- | --- | | 文字 | 标题、曲线文字、文字效果、字体搭配、项目符号和编号列表、开放授权字体库,以及你自己上传的字体 | | 元素 | 形状、线条和箭头、约 25,000 个图标、表情符号和插画、贴纸、二维码 | | 图片 | 上传、裁剪、蒙版和滤镜、一键去除背景(模型在浏览器中运行)、使用 Unsplash 或 Pexels 密钥搜索图库照片 | | 排版 | 可锁定和隐藏的图层、编组、对齐参考线、吸附、标尺、不同页面尺寸的多页设计、智能调整尺寸 | | 动效 | 时间轴上提供 27 种进入和退出动画、12 种强调动画和 16 种页面切换效果 | | 声音 | 内置 24 条音乐循环和 88 种音效(CC0 授权)库,支持上传、录音旁白、剪辑和淡入淡出 | | 演示 | 演示模式,支持演讲者备注、计时、自动播放、激光笔和第二个演示者窗口 | | 协作 | 可分享链接,设置查看、评论或编辑权限(可选密码保护)、置顶评论、版本历史,以及带实时光标的实时协同编辑 | | 品牌 | 品牌工具包,包含你的颜色、字体和徽标,在任何设计中一键调用 | | 导出 | 在浏览器中制作 PNG、JPG、SVG、PDF、MP4、WebM 和动态 GIF,另可导出带出血和裁切标记的印刷级 PDF |

🖼️ 开箱即用的精美模板

十款起始模板:演出海报、婚礼邀请函、活动故事、促销帖子、咖啡馆传单、语录卡片、简历、YouTube 缩略图、融资演示文稿和名片

Doory 内置十款起始模板(如上图图注所示),每一款都配有专属配色,采用开放授权字体且完全可编辑。你可以在管理后台添加自己的模板,并按分类、尺寸和方向浏览所有模板。

模板库

Canva 是一款非常出色的产品。而 Doory 面向的是那些想要同类工具、但希望它免费、开源且完全由自己掌控的人。

| | Doory | Canva | | --- | --- | --- | | 价格 | 完全免费,包含所有功能 | 有免费套餐,也有付费的 Pro 和 Teams 套餐 | | 开源 | ✅ | ❌ | | 可在自己的服务器上运行 | ✅ | ❌ | | 无需账户即可设计 | ✅ | ❌ | | 文件保存在你掌控的基础设施上 | ✅ | ❌ | | 实时协同编辑与评论 | ✅ | ✅ | | 动画、视频和 GIF 导出 | ✅ | ✅ | | 去除背景 | ✅ 在浏览器中完成 | ✅ | | 模板库 | 10 款起始模板,外加你自己添加的任何模板 | 非常庞大的库 |

🚀 三条命令完成自托管

  1. cp .env.example .env —— 设置 DJANGO_SECRET_KEY(用 openssl rand -base64 48 生成)和 POSTGRES_PASSWORD。
  2. docker compose up -d --build
  3. docker compose exec api python manage.py createsuperuser

打开 http://localhost:8080 即可开始设计。web 容器负责提供前端应用,并将 /api 和 /ws 转发给后端,因此浏览器只需要与一个地址通信。

添加初始内容(模板、图标、字体、音频) 新站点初始是空的,运行起来后,你可以按需添加以下内容:

  • docker compose exec api python manage.py seed_gallery —— 模板分类
  • docker compose exec api python manage.py sync_fonts --popular 100 —— 同步热门字体(100 款)
  • docker compose exec api python manage.py seed_templates —— 起始模板(添加 --update 可刷新)
  • docker compose exec api python manage.py seed_elements —— 形状和图形
  • docker compose exec api python manage.py sync_element_packs —— 图标、表情和插画(需下载)
  • docker compose exec api python manage.py sync_models —— 去除背景模型
  • docker compose exec api python manage.py sync_audio —— 音乐和音效

Image 8: React

需要了解的配置项(.env)

Image 9: TypeScript

| 配置项 | 作用 | | --- | --- | | SITE_URL | 站点的公开地址,例如 https://doory.example.com(末尾不要加斜杠) | | DJANGO_ALLOWED_HOSTS | 站点响应的主机名,以逗号分隔 | | SECURE_SSL_REDIRECT, SECURE_COOKIES | 在 HTTPS 后设为 true,使用普通 http:// 时设为 false | | EMAIL_URL, DEFAULT_FROM_EMAIL | SMTP 设置,例如 smtp+tls://user:password@smtp.example.com:587(若不设置,邮件会打印到 API 日志中) | | WEB_PORT, WEB_BIND | 站点发布的位置(默认 0.0.0.0:8080) | | INSTALL_CHROMIUM | 设为 false 可跳过服务端 PDF 导出所需的无头浏览器 | | GOOGLE_CLIENT_ID | 开启“使用 Google 登录” | | UNSPLASH_ACCESS_KEY, PEXELS_API_KEY | 开启图库照片搜索 | | USE_S3 和 AWS_* | 将上传文件存储到兼容 S3 的存储中,而非本地卷 |

本地开发

Image 10: Vite

  • make setup —— 创建虚拟环境、安装依赖并初始化本地数据库
  • make dev-api —— 在 http://localhost:8000 启动 API
  • make dev-web —— 在 http://localhost:5173 启动前端应用(在第二个终端中运行)

make help 会列出其他可用目标(测试、代码检查、内容等)。

Image 11: Fabric.js

❓ 常见问题

Image 12: Yjs

它真的免费吗? 是的。Doory 没有套餐、没有付费墙,也没有广告。所有功能向所有人开放。

Image 13: Django

我需要注册账户吗? 不需要。访客可以立即开始设计,作品会保存在浏览器中。注册账户后,设计会存到云端,你可以分享作品并使用品牌工具包;注册时还能一步把访客设计迁移到账户中。

我可以把它用于商业用途,或为我的用户托管它吗? 可以,只要按照许可证的要求给作者署名:随附保留许可证和 NOTICE 文件,并在运行的应用中显示署名信息。详见 许可证与署名。

Image 14: PostgreSQL

我的设计存储在哪里? 访客的设计及其图片保存在该设备的浏览器中。登录后,设计会存储在运行 Doory 的服务器上;如果你选择自托管,那就是你自己的服务器。上传的文件可以存到本地卷,也可以存到兼容 S3 的存储中。

🧱 技术栈

浏览器端使用 React 19、TypeScript、Vite、Fabric.js、Yjs 和 Zustand;服务器端使用 Django 5、Django REST Framework、Channels 和 PostgreSQL;通过 Docker Compose 配合 nginx、可选的 Redis 以及兼容 S3 的存储运行。

Image 15: Docker

🤝 参与贡献

欢迎提交错误报告、想法和拉取请求。你可以通过 issue 报告 bug 或提出功能建议。如果是安全问题,请改为通过仓库的 Security 标签页私下报告。

如果 Doory 对你有用,点个 ⭐ 能让更多人发现它。

📜 许可证与署名

Doory 根据 Attribution Assurance License 发布。你可以出于任何目的(包括商业用途)使用、修改和再分发它,但必须给作者署名:随附保留许可证和 NOTICE 文件,并在运行的应用中醒目地显示以下署名信息:

Doory by Siam,Doory 的创建者和维护者 —— https://github.com/shaongitbd/doory

第三方软件、字体和内容保留其各自的许可证;详见 THIRD_PARTY.md。

Image 16

评论

讨论整体以质疑为主:多数评论抓住提交历史几乎全由 Claude 生成、仓库仅一个议题与六次提交,认为项目像氛围编码的 AI 产物且缺乏真实使用证据。分歧主轴是「Canva 替代品」是否真有存在必要与如何做出价值——少数人强调 Canva 的真正壁垒是模板与素材知识产权生态,开源软件难以真正替代;少数人则批评 Canva 本身体验糟糕,认为能自助托管的人根本不会选 Canva 类工具,而应使用 Inkscape、Figma 等正常编辑器;还有少数人建议把 API/MCP 优先作为差异化方向,也有人担心未来氛围编码工具泛滥后不知如何挑选。

认为项目几乎全由 Claude 生成、看起来就是氛围编码产物

  • 提交历史显示整个项目由 Claude 撰写,且是从单个提交里一次性生成的,有人表示被这样的提交历史吓到。(较多人)
  • 仓库只有一个议题、六次提交,所谓“为什么选择 Doory”的卖点缺乏证据;界面也有多处破损,观感上正像氛围编码。(较多人)
  • 面对未来大量氛围编码工具,有人连如何挑选都感到困惑。(少数人) > 项目简直是“Claude 出品”。(@Muhammad523)

认为 Canva 的真正壁垒是模板与素材生态,开源版难以真正替代

  • Canva 的优势在于与其产品生态绑定的模板、素材和库存摄影等知识产权;即便能做出功能相同的开源软件,缺少这些资产也无法真正替代 Canva。(少数人)
  • 替代品的真正价值在于高质量内置模板,而目前模板看起来就像直接问 Claude 就能得到,还不足以构成吸引力。(少数人)

认为 Doory 当前界面杂乱且有多处破损,需要优先打磨用户体验

  • 界面在若干位置已经破损,标题栏过于拥挤;应把重要工具按空间优先级排布,并避免把导出、分享等多个并列选项堆在标题栏,可折叠为菜单。(少数人)
  • 添加页面按钮导致尴尬滚动,两处保存状态提示重复,注册引导文案和需要登录才能使用的评论功能也分散注意力;椭圆菜单选项过多,双层标题浪费横向空间,都应整理。(少数人) > 这看起来就是氛围编码出来的,界面有多处破损,值得把这些反馈反复喂给智能体去迭代。(@akst)

认为能自助托管的人不会想要 Canva 替代品,而应使用 Inkscape/Figma 等正常编辑器

  • 不理解为什么有能力自助托管的人会选 Canva 替代品,而不是 Inkscape、Figma 等正常工具;Canva 对齐困难、文字渲染糟糕、内置模板字距难看,是体验很差的编辑器,真正想要的是正常编辑器。(少数人)

认为 Canva 替代品应以 API/MCP 优先,才能从仓库上下文生成并在线编辑

  • 有竞争力的替代品不能只把 API 和 MCP 当附属功能,而应优先设计:理想状态是直接从代码仓库的上下文和素材里,通过氛围编码生成海报或视频,再回到它们的点击式编辑器里修改;现有 Canva 的 API/MCP 方案混乱且不足。(少数人)

有价值的补充

  • 有人把 Canva 比作 1984 年的 The Print Shop:两者本质上都是靠模板和简单排版来满足业余印刷与设计需求的工具,这个类比暗示 Canva 并未脱离早期消费级排版软件的范畴。