惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
H
Help Net Security
V
Visual Studio Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
The Cloudflare Blog
Martin Fowler
Martin Fowler
D
Docker
腾讯CDC
F
Fortinet All Blogs
雷峰网
雷峰网
GbyAI
GbyAI
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
博客园 - 叶小钗

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解
8 年前的老代码 + 20 刀 AI token = 我的第一款独立产品
dombro · 2026-04-27 · via 博客园_首页

大家好,我是 DOM哥。

转眼毕业已经北漂十年了,过得真快啊。

刚工作两年的时候我就萌生了做一个任务管理器的想法。

刚开始做出来的时候它是这样式的:

你别看它丑,但它真能用啊,CRUD不在话下,符合第一性原理🤪

后来在实际工作中,十年间兜兜转转呆过不少团队,每个团队用的任务管理工具迥异。有

  • Tower
  • JIRA
  • Wiki
  • TAPD
  • 飞书文档
  • 钉钉云效

基本上换个团队就要适应一个新的任务管理系统。

实际体验下来,没有一个让我有长期使用的欲望。原因主要有:

  • 太臃肿。功能繁杂,对个人来说 80% 的功能用不到。
  • 太慢。服务在云上,网络的不稳定让我的心情很不稳定。
  • 真实场景实用功能缺失。比如周报不能基于我的任务直接生成么,干嘛还要开晨会,周会,拉进度会。
  • 排期管理令人失望。这些工具往往只有一个日期字段,很难满足我对排期的细节描述。比如对前端来说,一个任务通常开发时间和联调时间是分开的。很多任务实际工时是碎片式的,不是 all in 一整段时间。

最近入职了新公司,我又翻出了自己的这个老项目。这一次,我想不如用我自己的吧。用了一段时间越用越香,我想何不做成一款产品呢。如果放在以前,这几乎不可能实现,但现在有了 AI 加持,开搞!

先上一张产品效果图吧:

线上 demo 链接 https://task-manager.dombro.site?demo=1

或者 本地部署 https://github.com/dom-bro/task-manager-docker

想到即将到来的35岁危机,产品代号就叫 age35

以前只有自己一个人用时,功能就是边用边开发,想到哪写到哪,怎么用怎么写,怎么实用怎么来。但当我开始考虑做成一款对外产品时,就得重新规划整个架构。

这几周忙活下来,我发现真正花时间的并不是技术实现,反而是想清楚"这个产品到底要解决什么问题"。下面就是这几周下来沉淀出的几个核心理念。

产品哲学

归于一处

  • 需求文档
  • 技术方案文档
  • 接口文档
  • 设计稿地址
  • 原型链接

所有和这个任务相关的文档都记到这个小卡片上,点开这个小卡片,就是任务的全部上下文。

实际上,实际开发中上面的文档如果组织合理的话,vibe coding 直接给 AI,你将得到一个非常惊喜的结果。

状态流转一目了然

去伪存真,从模型上来讲,状态是任务最最重要的属性,没有之一。

在团队协作中,leader和项目经理最关心的也是任务状态。

当我想通了这一点后,围绕状态如何全链路打通认真设计了一番。最终确定使用全局状态流管理,其他视图的状态流可以自由组装,而不是随心所欲的造状态。最终实现一份任务数据,处处同步。绝不能容忍去维护重复的任务。

最终实现的效果如下:

我看到的样子

personal_view_board

时间轴

personal_view_timeline

日历

personal_view_calendar

leader看到的是这样式的

group_view_board

项目经理看到的是则样子儿的

project_view_board

当我改动自己的任务时,可以实时同步进度到leader和项目视角。

demo

妈妈再也不用担心我为了对进度赶地铁去开早会了

超实用的排期组件

除了状态,任务另一个最重要的属性就是排期了。一个实用好用的排期组件能让人在繁杂忙乱的工作中有条不紊,有理有据,游刃有余。

直接上成品:

date_picker

功能特色:

  • 区分周末。“正经人谁不双休啊“
  • 区分节假日。“排期时千万跳过节假日。“
  • 区分已被其他任务占用。“如果明天下午已经排给了别的任务,当我点开排期时,我希望心里有数“
  • 可以排半天。“还有按小时排的嘛,别TM卷死了啊“
  • 可以排多段。“没有任务是两段时间不能干完的,如果有,那就再排一段“

可以说,这个组件我自己完成的非常满意。

极致轻 · 快

本地部署不上云

这是一个全栈项目,而我又不想去运维一个服务器(压力太大了🥲),那么不如让用户本地跑吧。

怎么让用户跑起来呢,如果让用户先搭建 pnpm,bun,mongodb 环境恐怕直接劝退,最后 AI 给出了不错的方案:docker一键部署。用户只需要装个 docker 环境就行啦。

  • 数据完全自主

    个人用户数据全在自己电脑的 mongodb 里,团队用户数据全在内网服务器上,一个 bit 也跑不出去。

  • 快到没朋友

    本地起的服务,零延迟

专为国内产研人员打造,拒绝臃肿

拒绝过度设计,回归任务本质,最终我只为任务模型留下了 5 个字段

  • 标题
  • 内容(记录相关的PRD、设计稿、技术方案等所有上下文)
  • 状态
  • 排期
  • 备注

实际体验下来,这5个字段足够用了。

优先个人而非团队

优先保证个人用户体验,从一开始就是为个人提效而生的。

虽然我也在努力寻求转化,但我会一直把这个系统对个人用户永久免费,可以任意使用上面的所有功能。

扩展能力

典型场景如

  • ✅ 一键周报

weekly

可以说这个功能是我开发这个系统的最初动力。

  • ✅ 时间周期任务汇总,这到时候填绩效的时候岂不是很有用哦
  • ✅ 提测自动发送周知消息
  • ✅ gitlab集成一键mr

技术方案

现在有了 AI,搬砖的能力变得次要,指挥搬砖的能力变得很重要。心中有了蓝图,我开始指挥AI大刀阔斧的重构和实现我的产品逻辑。

我的重构思路是这样地:

  • 首先技术栈都升到最新的
  • 然后技术选型优先性能最强的
  • 全栈 TypeScript 化,这样一来前后端能共用数据类型可真是太棒了。
  • 去冗余,对package.json里的依赖严查

好了,现在开始聊天,哦不对,是开始干活!💪

前端升级

前端从 webpack/vue-cli 全面切到 Vite + Vue 3 + Pinia 的vue最新生态,dev 和 build 的体感都倍儿快倍儿爽。

  • 技术栈升级

    ------------------ 🧠 prompt ----------------

    8年前启动的老项目,当时还是vue-cli + vue2 的时代。

    给我把项目的前端技术栈整体重构成最新的vue技术栈,都要 @latest

    vue-cli -> vite

    vue2 -> vue3

    vuex -> pinia

    -------------------- Enter -----------------

  • monorepo改造

    通过 monorepo 我要保证两件事:

    1. 前后端独立子包,代码逻辑不掺杂混在一块。
    2. 前后端类型共享,方便数据结构对齐,这对全栈项目可太爽了。

    ------------------ 🧠 prompt ----------------

    这是个全栈项目,刚开始前端代码和后端代码混在一块,共用 package.json 一大锅依赖,这很不科学

    给我重构成合理的全栈项目架构

    使用 pnpm workspaces 将项目重新组织为 monorepo 结构,前后端要共享数据结构类型

    -------------------- Enter -----------------

后端重做

服务器老栈是 Node + Koa + Mongoose,这在2018年也是非常时髦的组合了。但现在看来,Koa 的中间件链 + Mongoose 的 schema 维护成本,对一个我业余维护的项目来说太重,ODM 抽象的收益已经被它的心智负担抹平了。

DB 层我要放弃 Mongoose,直接用 mongodb 官方驱动,类型走 db/types.ts,避免 ODM 反复维护 schema 的成本。

  • 技术栈升级和选择

    调研了一圈,最终确定用 bun,bun 在我这个项目上有几个实实在在的好处:

    1. 启动快 + 内存小,冷启动比 Node 快 3-4 倍
    2. bun install 快到反人类,比 pnpm 还能再快 2-3 倍
    3. 内置 WebSocket,又可以去掉一个包了 socket.io
    4. All-in-one,runtime、包管理、bundler、test、热重载、.env、fetch、WebSocket,Bun 全部内置。package.json 的 devDependencies 直接掉了一半,docker 镜像也跟着瘦了一圈。省省省太省心了!

    ------------------ 🧠 prompt ----------------

    给我把后端用以下技术栈重写:

    node -> bun

    koa -> hono

    去掉 mongoose

    -------------------- Enter -----------------

在我敲完这几个 Enter 之后,20刀的token额度已用尽😂

去试用吧

我在railway部署了一个线上demo,去看看吧,由于是免费服务器,页面打不打得开看缘分咯

https://task-manager.dombro.site?demo=1

或者

快在本地部署一个吧,享受快如闪电的任务管理⚡️

https://github.com/dom-bro/task-manager-docker