我为什么做这个
市面上的 To-Do 应用不少,从 Todoist、TickTick 到 Notion、飞书,功能越来越重。
但我发现自己真正需要的其实很简单:能分项目管理任务、有个日期视图、支持标签过滤、详情能写点 Markdown------仅此而已。
问题在于:轻量的工具功能不够,功能全的工具又太重。
于是我开始写蜗牛待办(Snail TodoList)。目标很明确:足够强大但保持轻量,数据还可以自己掌控。
名字里的"蜗牛"不是自嘲慢,而是想表达一种节奏------持续推进,不急不躁。适合那些有长期目标、需要稳定记录和回顾的人。





它能解决什么
场景一:个人日常
你有几个并行的事情:工作任务、副业项目、学习计划、生活琐事。你需要按项目分组,快速看到"今天要做什么"和"这周还剩什么",偶尔给任务打个标签方便后续筛选。
Snail TodoList 刚好够用。
场景二:轻量团队协作
如果你和两三个人一起推进一个小项目,不需要 Jira 那种重型工具,只想有个地方记录任务、分配负责人、看看进度------这个工具也能胜任。Supabase 的 Realtime 能力让多人协作时数据同步不成问题。
Snail TodoList 刚好支持。
和市面工具的差异
我不打算把 Snail TodoList 做成替代所有工具的大而全系统。它更像一个工程化的 ToDo:
- 轻量但够用:围绕任务推进的必需能力做深(时间视图、标签、富文本、统计),但不追求复杂流程与过度协作。
- 数据可控、可自部署:你可以选择把数据掌握在自己手里,而不是被某个平台的封闭生态绑定。
- 边界也很明确:如果你需要大型团队的多层权限、审批流、复杂看板/甘特图,这个项目目前不是那个方向。
功能亮点
任务管理
- 新增、编辑、完成、放弃、恢复,覆盖任务全生命周期
- 支持项目分组,拖拽排序
- 任务详情支持富文本(Markdown、图片、代码块)
时间视图
- "今天"和"最近 7 天"快速入口
- 逾期任务筛选,不让事情悄悄溜走
标签体系
- 标签增删、过滤、跨项目复用
- 适合按主题或优先级组织任务
打卡与统计
- 内置打卡日历
- 连续天数统计、总次数概览
- 适合习惯养成或周期性任务追踪
技术实现与架构
前端
- React 18 + TypeScript:类型安全,开发体验好
- Vite:启动快,HMR 丝滑
- shadcn/ui + Radix UI + Tailwind CSS:组件质量高,样式可控,不依赖重型 UI 库
数据层
- Supabase:PostgreSQL + Auth + Storage + Realtime 一站式解决
- 选择 Supabase 而非 Firebase,主要是因为 PostgreSQL 更熟悉,SQL 能力更强,且有自建选项
状态管理
- TanStack Query:服务端状态管理,缓存、重试、乐观更新都有
- Zustand:客户端状态,轻量且直观
- React Context:Auth、Project 等全局上下文
富文本编辑器
- Milkdown:基于 ProseMirror 的 Markdown 编辑器,插件化设计,支持图片上传、代码块、GFM 语法
桌面端
- Tauri:Rust 内核,打包体积小,性能好。目前已集成,但构建链路仍在完善中
Roadmap:Tauri 桌面客户端
我正在把 Snail TodoList 做成 Tauri 桌面应用,但生产构建在某些环境下还有问题,努力定位问题中...
如果你对 Tauri 打包、跨平台构建有经验,非常欢迎一起排查。相关讨论可以在 Issues 里进行。
如何参与贡献
这个项目还在早期,有很多可以改进的地方。以下是一些适合入手的方向:
- Tauri 构建问题排查:帮助定位跨平台打包的问题
- UI/交互优化:动画、过渡、响应式细节
- 移动端体验:触控交互、手势支持
- 国际化:目前只有中文,欢迎添加多语言支持
- 文档完善:数据库 Schema 说明、部署指南补充
- 测试覆盖:单元测试、E2E 测试
- 性能优化:大量任务时的渲染性能
- 新功能建议:在 Issue 里提,我们一起讨论
贡献流程:Fork → 新建分支 → 提交 PR → 等待 Review
最后
如果你也在找一个够用就好的任务管理工具,或者对 React + Supabase + Tauri 这套技术栈感兴趣,欢迎试用和反馈。
Star 是最好的鼓励,Issue 和 PR 更是欢迎。
愿你在蜗牛般的步调中,也能持续推进每一个目标 🐌