Chatto 现已开源

定位与目标

  • 被定位为 Slack/Teams/Mattermost 的替代方案,带有类似 Discord 的感觉。
  • 目标是易用、可自托管,并且不做“open-core”阉割;在自托管时可使用全部功能。
  • 聚焦于单租户、按社区划分的服务器,而不是大型联邦式超大实例。

UX、性能与设计

  • 多位测试者称其相较于 Slack、Matrix 客户端及其他一些产品要快得多、响应更灵敏。
  • 设计和 UX 被认为是开源聊天应用中少见的精致。
  • 也有人批评它在视觉上与 Slack/Discord 十分相似,并质疑它是否真正解决了噪音/复杂性问题。

架构与部署

  • 后端使用 Go,前端使用 Svelte;以紧凑的自包含二进制形式发布。
  • 使用 NATS 和 JetStream 处理消息与持久化;一些开发者对 NATS 在大规模场景下的表现给出了积极反馈。
  • 语音/视频使用 LiveKit。
  • 据称自托管很直接;提供了 S3 兼容存储及其他组件的示例。
  • 资源占用:全新实例仅需几十 MB;据报告,每增加一个已连接用户约需 ~10MB 内存,同时仍有优化空间。

许可与商业模式

  • 后端采用 AGPL;前端采用 Apache 2.0。
  • 设计理由:AGPL 可抑制专有托管克隆,同时让 UI 保持可定制并对企业友好。
  • 计划推出商业化的“Chatto Cloud”托管服务,但自托管不受限制。

客户端:PWA、桌面、移动端

  • 当前重点是一级体验的 PWA,包括推送通知以及移动端语音/视频。
  • 目前还没有官方原生应用;社区有一个 Tauri 包装器,被认为已适合桌面但还不适合移动端。
  • 目前 iOS 推送通过 PWA/Web Push 实现;计划未来提供带 APNS/FCM 的原生应用,但短期内不会推出。

安全、隐私与加密

  • 聊天内容在静态存储时加密;核心消息并未进行端到端加密。
  • 有人认为在可控的自托管环境中缺少 E2EE 可以接受;也有人希望群聊具备 E2EE。
  • 按用户的密钥以及账户删除语义引发了关于法律留存和企业用途软删除的疑问。

互操作性与网络效应

  • 不支持联邦或 Matrix/XMPP 兼容;这是为了保持系统简单且更适合商业用途的刻意选择。
  • 有人认为这会因 Slack/Discord 强大的网络效应而损害采用;也有人表示私有社区并不需要联邦。
  • 正在探索 Chatto 服务器之间轻量级的身份联邦。

AI 辅助开发争议

  • 据称该项目使用了“agentic coding”/AI 辅助。
  • 一些人对单人开发者的生产力表示惊叹;另一些人则基于伦理和环境理由强烈反对,并表示会避开该项目。
  • 反驳意见提到开源权重模型、历史上的知识产权复用,以及个人生产力提升;争议仍未解决。

对比与替代方案

  • 经常与 Mattermost、Matrix、Zulip、Rocket.Chat、Fluxer 和 Discord 相比较。
  • 提到的优势包括:比 Mattermost 更容易部署、比许多 Matrix 客户端更精致且更快、许可更清晰、内置 SSO 而无需企业版加价。
  • 不足/不明确之处:聊天没有 E2EE;除了 Slack 导入工具外没有迁移/互操作能力;缺少原生移动端;没有清晰的功能对比表。

采用顾虑与愿望清单

  • 希望增加:原生移动/桌面应用、Slack 迁移与持续同步、公开只读房间、导入/导出、可直接加入的语音房间、自动更新、资源规模建议,以及更好的新服务器引导。
  • 一些用户表示,一旦有原生客户端和更顺畅的上手体验,就准备从 Slack/Mattermost 迁移出来。