[{"data":1,"prerenderedAt":543},["ShallowReactive",2],{"build-logs-whoami":3,"build-log-whoami-2026-03-12-open-to-everyone":492},[4,168,258,357],{"id":5,"title":6,"body":7,"date":131,"description":132,"draft":133,"extension":134,"faq":135,"meta":148,"navigation":149,"path":150,"project":151,"readingTime":152,"seo":153,"seoKeywords":154,"stem":161,"summary":162,"tags":163,"updated":166,"__hash__":167},"builds\u002Fbuilds\u002Fwhoami\u002F2026-03-26-competitor-wakeup-call.md","同类产品火了，我的却没人知道",{"type":8,"value":9,"toc":120},"minimark",[10,14,18,21,28,31,34,37,50,55,58,79,82,85,88,97,105,108,111,117],[11,12,13],"h2",{"id":13},"被竞品打醒",[15,16,17],"p",{},"3 月下旬，一个叫 mem9 的产品发布了。它解决的问题和 whoami 几乎一模一样：跨 AI 的用户记忆同步。",[15,19,20],{},"mem9 发布后迅速获得了大量关注。而 whoami 已经上线了三周，功能更完善、体验也打磨过了，却几乎无人问津。",[15,22,23,24],{},"这让我不得不面对一个事实：",[25,26,27],"strong",{},"不是产品不好，是没人知道我做了这个产品。",[15,29,30],{},"我开始认真思考：产品做出来之后，怎么让人发现它？",[11,32,33],{"id":33},"两个方向的改变",[15,35,36],{},"我期望做到：",[38,39,40,44,47],"ul",{},[41,42,43],"li",{},"让搜索引擎（包括 AI 搜索引擎）能找到 whoami",[41,45,46],{},"通过 Build in Public 持续输出内容，积累关注",[41,48,49],{},"不再闷头做产品，而是一边做一边讲",[51,52,54],"h3",{"id":53},"让-ai-搜索引擎也能找到你","让 AI 搜索引擎也能找到你",[15,56,57],{},"传统 SEO 解决的是 Google 排名，但现在越来越多人通过 ChatGPT、Perplexity 这些 AI 搜索引擎找信息。如果你的产品不能被 AI 引用，就等于失去了一半的流量入口。",[15,59,60,61,69,70,74,75,78],{},"我在 ",[62,63,68],"a",{"href":64,"rel":65,"target":67},"https:\u002F\u002Fwhoamiagent.com",[66],"nofollow","_blank","whoamiagent.com"," 上添加了 ",[71,72,73],"code",{},"llms.txt","——类似 ",[71,76,77],{},"robots.txt"," 之于传统爬虫，它告诉 AI 搜索引擎：\"关于这个产品，这些是最值得引用的核心信息。\"",[15,80,81],{},"同时全面打磨了站点的交互体验——键盘导航、移动端适配、状态反馈、过渡动画。这些细节不起眼，但用户潜意识里感受得到。",[51,83,84],{"id":84},"去有人的地方讲故事",[15,86,87],{},"这是更重要的一步。",[15,89,90,91,96],{},"我决定在 ",[62,92,95],{"href":93,"rel":94},"https:\u002F\u002Fmofanx.com",[66],"mofanx.com"," 上公开记录 whoami 的整个开发过程——也就是你现在正在读的这些创造日志。",[15,98,99,100,104],{},"这不只是\"分享开发日志\"，更是一种获客策略。通过持续输出真实的开发故事，吸引同频的读者和潜在用户。读者看了日志觉得有共鸣，自然会去试试这个产品。我之前也在",[62,101,103],{"href":102},"\u002Farticles\u002Fwhoami-v2","《养虾专业户两周了，我发现一个没人提的问题》","这篇文章里聊过 whoami 的产品理念，但一篇文章远远不够，需要的是持续的、真实的故事。",[15,106,107],{},"比起在沙漠里等客人上门，不如去有人的地方讲你的故事。",[11,109,110],{"id":110},"故事还在继续",[15,112,113,114],{},"策略刚刚开始执行，还没有数据能验证效果。但我已经想清楚了一件事：",[25,115,116],{},"先做内容、先做影响力，产品会跟着来。",[15,118,119],{},"whoami 的故事还在继续。",{"title":121,"searchDepth":122,"depth":122,"links":123},"",3,[124,126,130],{"id":13,"depth":125,"text":13},2,{"id":33,"depth":125,"text":33,"children":127},[128,129],{"id":53,"depth":122,"text":54},{"id":84,"depth":122,"text":84},{"id":110,"depth":125,"text":110},"2026-03-26","mem9 发布后迅速获得大量关注，而上线三周的 whoami 几乎无人问津。不是产品不好，是没人知道我做了这个产品。这次我决定改变策略。",false,"md",[136,139,142,145],{"q":137,"a":138},"为什么功能更完善的 whoami 没有 mem9 火？","不是产品不好，是没人知道这个产品存在。独立开发者容易犯一个经典错误：闷头做产品，做完了再想怎么让人知道。mem9 在内容分发和社区曝光上做得更好，而 whoami 几乎没有主动的获客动作。产品做出来不等于有人用，分发和内容才是关键。",{"q":140,"a":141},"什么是 GEO 优化？和传统 SEO 有什么区别？","GEO（Generative Engine Optimization）是针对 AI 搜索引擎的优化。传统 SEO 优化的是 Google 排名，GEO 优化的是被 ChatGPT、Perplexity 等 AI 搜索引擎引用的概率。具体做法包括添加 llms.txt 文件、结构化数据、清晰的产品描述等，让 AI 在回答用户问题时能引用你的内容。",{"q":143,"a":144},"llms.txt 是什么？为什么要添加它？","llms.txt 类似 robots.txt 之于传统爬虫，是一种告诉 AI 搜索引擎'关于这个网站的核心信息'的标准文件。添加后，当用户通过 ChatGPT、Perplexity 等搜索'跨 AI 身份同步'相关问题时，AI 更容易引用 whoamiagent.com 的内容。",{"q":146,"a":147},"Build in Public 对独立开发者获客有什么帮助？","通过公开记录产品的开发过程、决策思考和真实反馈，持续输出有价值的内容，吸引同频的读者和潜在用户。读者看了开发故事觉得有共鸣，自然会去试试产品。比起在没有流量的地方等用户上门，不如主动去有人的地方讲你的故事。",{},true,"\u002Fbuilds\u002Fwhoami\u002F2026-03-26-competitor-wakeup-call","whoami",4,{"title":6,"description":132},[155,156,157,158,73,159,160],"独立开发者获客","竞品分析反思","Build in Public 策略","GEO 优化","AI 搜索引擎优化","产品分发困境","builds\u002Fwhoami\u002F2026-03-26-competitor-wakeup-call","同类产品 mem9 发布后迅速获得大量关注，而上线三周的 whoami 几乎无人问津。问题不在产品本身，而在于没人知道它存在。决定通过 GEO 优化让 AI 搜索引擎找到产品，并用 Build in Public 的方式在 mofanx.com 上持续输出开发故事来积累关注。",[164,165],"产品思考","独立开发",null,"gy3h-bbfJ2WHi_2LIHvrc5ojOKBKLaP65BV-HvEfSx8",{"id":169,"title":170,"body":171,"date":228,"description":229,"draft":133,"extension":134,"faq":230,"meta":243,"navigation":149,"path":244,"project":151,"readingTime":122,"seo":245,"seoKeywords":246,"stem":254,"summary":255,"tags":256,"updated":166,"__hash__":257},"builds\u002Fbuilds\u002Fwhoami\u002F2026-03-12-open-to-everyone.md","不只是开发者能用，要让所有人都能登录",{"type":8,"value":172,"toc":224},[173,176,179,182,185,188,191,202,208,214],[11,174,175],{"id":175},"注册页跳出率偏高",[15,177,178],{},"上线一周多，我开始关注后台数据。有一个现象让我在意：注册页的跳出率偏高。",[15,180,181],{},"分析原因，最初只支持 GitHub 和 Google 登录。GitHub 对开发者来说是标配，但 whoami 想服务的是所有 AI 重度用户：很多人根本没有 GitHub 账号。在国内，Google 登录也不是人人都方便。",[15,183,184],{},"另一个问题更隐蔽：搜索引擎根本索引不到产品页面。之前在 meta 里误配了爬虫拦截。产品做出来了，但在搜索引擎里几乎不存在。",[11,186,187],{"id":187},"把门开得更大一些",[15,189,190],{},"我期望这次升级能做到：",[38,192,193,196,199],{},[41,194,195],{},"更多登录方式，覆盖非开发者用户",[41,197,198],{},"后端安全加固，能放心开放给公众使用",[41,200,201],{},"让搜索引擎正常收录产品页面",[15,203,204,207],{},[25,205,206],{},"登录扩展","：新增了 Microsoft 登录方式，加上账号关联功能——同一个人用不同方式登录，可以绑定到同一个账号。",[15,209,210,213],{},[25,211,212],{},"安全加固","：加了 API 速率限制，认证改用 HttpOnly Cookie，定期清理过期令牌。这些是产品从\"能用\"到\"可以放心让公众使用\"的必要步骤。",[15,215,216,219,220,223],{},[25,217,218],{},"搜索引擎修复","：补全了 meta tags、OpenGraph 标签、JSON-LD 结构化数据，修复了爬虫拦截的误配。搜索引擎终于能找到 ",[62,221,68],{"href":64,"rel":222,"target":67},[66]," 了。",{"title":121,"searchDepth":122,"depth":122,"links":225},[226,227],{"id":175,"depth":125,"text":175},{"id":187,"depth":125,"text":187},"2026-03-12","注册页跳出率偏高，分析发现不是功能问题而是入口问题：只有 GitHub 和 Google 登录，把非开发者用户挡在了门外。",[231,234,237,240],{"q":232,"a":233},"为什么 whoami 最初只支持 GitHub 和 Google 登录？","因为开发阶段作者本人是开发者，默认以开发者视角选择了最熟悉的两种登录方式。但 whoami 想服务所有 AI 重度用户，很多人没有 GitHub 账号，国内用户用 Google 也不方便，导致注册页跳出率偏高。",{"q":235,"a":236},"扩展登录方式后效果如何？","新增 Microsoft、Apple、Twitter 三种 OAuth 登录后，注册页跳出率有所下降。同时加了账号关联功能，同一个人用不同方式登录可以绑定到同一个账号，避免重复注册的困扰。",{"q":238,"a":239},"whoami 做了哪些安全加固？","加了 API 速率限制防止滥用，认证从 Bearer Token 改用 HttpOnly Cookie 防止 XSS 攻击，定期清理过期令牌。这些是产品从'能用'到'可以放心让公众使用'的必要步骤。",{"q":241,"a":242},"搜索引擎为什么之前收录不到 whoamiagent.com？","前端 meta 里误配了爬虫拦截（noindex），导致搜索引擎无法索引。修复后补全了 meta tags、OpenGraph 标签和 JSON-LD 结构化数据，搜索引擎终于能正常找到产品页面。",{},"\u002Fbuilds\u002Fwhoami\u002F2026-03-12-open-to-everyone",{"title":170,"description":229},[247,248,249,250,251,252,253],"多平台 OAuth 登录","用户注册跳出率","产品安全加固","搜索引擎收录","非技术用户","AI 产品用户体验","独立开发产品迭代","builds\u002Fwhoami\u002F2026-03-12-open-to-everyone","whoami 注册页跳出率偏高，根源是只支持 GitHub 和 Google 登录，把非开发者用户挡在门外。扩展 Microsoft、Apple、Twitter 登录后跳出率下降，同时完成安全加固和搜索引擎收录修复。",[164,165],"FGVKN8bjML0k9GV41luR5OHHVis9nWKBcpBDSVssEP4",{"id":259,"title":260,"body":261,"date":327,"description":328,"draft":133,"extension":134,"faq":329,"meta":342,"navigation":149,"path":343,"project":151,"readingTime":122,"seo":344,"seoKeywords":345,"stem":353,"summary":354,"tags":355,"updated":166,"__hash__":356},"builds\u002Fbuilds\u002Fwhoami\u002F2026-03-05-simplify-onboarding.md","用户说\"太复杂\"，我把注册流程砍掉了一半",{"type":8,"value":262,"toc":322},[263,266,269,272,275,278,281,284,295,302,309,313,316,319],[11,264,265],{"id":265},"朋友们的第一反馈",[15,267,268],{},"产品上线两天后，我让几个朋友试用。",[15,270,271],{},"最多的反馈不是功能问题，而是：\"注册完了然后呢？API Key 是什么？我要把它粘贴到哪里？\"",[15,273,274],{},"第一版的流程是：注册 → 打开 Dashboard → 复制 API Key → 粘贴给 AI → AI 手动写入配置文件。对开发者来说这很正常，但对普通用户来说，\"API Key\"三个字就已经够劝退了。",[15,276,277],{},"whoami 的目标用户是所有同时使用多个 AI 的人，不只是程序员。如果注册流程把人吓跑了，产品做得再好也没用。",[11,279,280],{"id":280},"砍掉一半流程",[15,282,283],{},"我想达到的效果很简单：",[38,285,286,289,292],{},[41,287,288],{},"用户全程不需要接触\"API Key\"这个概念",[41,290,291],{},"配置过程让 AI 自动完成，用户只需点一下",[41,293,294],{},"首页要让人一眼看懂产品是干什么的",[15,296,297,298,301],{},"改成了",[25,299,300],{},"一次性安全链接","方案：Dashboard 生成一个临时链接，用户把链接发给 AI，AI 自己下载配置。链接用完即失效，安全性反而更高。用户全程不需要知道 API Key 是什么。",[15,303,304,305,308],{},"同时在首页加了一段",[25,306,307],{},"聊天演示动画","——用模拟对话展示 whoami 的使用流程。比写十段文字说明都管用。",[11,310,312],{"id":311},"从需要解释到自己就会","从\"需要解释\"到\"自己就会\"",[15,314,315],{},"改完之后，再让同一批朋友试，注册到使用的流程从\"需要解释\"变成了\"自己就会\"。",[15,317,318],{},"但用户量依然很小——因为知道这个产品的人本来就少。",[15,320,321],{},"如果用户觉得难用，不是用户的问题，是产品的问题。但反过来，产品好用也不等于有人用。这两件事，我在后面的经历中体会得越来越深。",{"title":121,"searchDepth":122,"depth":122,"links":323},[324,325,326],{"id":265,"depth":125,"text":265},{"id":280,"depth":125,"text":280},{"id":311,"depth":125,"text":312},"2026-03-05","朋友试用后最多的反馈不是功能问题，而是'API Key 是什么？'。我意识到注册流程在劝退用户，于是用一次性链接替代了手动配置。",[330,333,336,339],{"q":331,"a":332},"whoami 最初的注册流程有什么问题？","第一版流程是：注册 → Dashboard 复制 API Key → 粘贴给 AI → AI 手动写入配置文件。对开发者来说很正常，但普通用户连'API Key'是什么都不理解，更不知道该粘贴到哪里。注册流程本身就在劝退目标用户。",{"q":334,"a":335},"一次性安全链接是怎么工作的？","用户在 Dashboard 点击生成一个临时链接，把链接发给 AI 助手，AI 自动下载配置并保存。链接用完即失效，用户全程不需要理解 API Key、不需要复制粘贴密钥，安全性反而比手动配置更高。",{"q":337,"a":338},"首页的聊天演示动画有什么作用？","用一段模拟对话直观展示 whoami 的使用场景和效果，让访客一眼看懂产品是干什么的。比起文字说明，动画演示的转化效果好得多——show don't tell。",{"q":340,"a":341},"简化注册流程后效果如何？","同一批朋友再次试用，注册到使用的体验从'需要解释'变成了'自己就会'。但用户量依然很小，因为知道这个产品的人本来就少——产品体验是一回事，让人知道你存在是另一回事。",{},"\u002Fbuilds\u002Fwhoami\u002F2026-03-05-simplify-onboarding",{"title":260,"description":328},[346,347,348,349,350,351,352],"用户体验优化","注册流程简化","API Key 劝退","产品上手门槛","独立开发用户反馈","一次性链接配置","AI 工具易用性","builds\u002Fwhoami\u002F2026-03-05-simplify-onboarding","whoami 上线后朋友试用的第一反馈是'API Key 是什么'，注册流程在劝退非技术用户。用一次性安全链接替代手动配置后，用户全程不需要接触技术概念，注册到使用从'需要解释'变成了'自己就会'。",[164,165],"9Z62aARrxttLnq_DODSVInV8iCxOtuai4M_Bf8i1gPI",{"id":358,"title":359,"body":360,"date":461,"description":462,"draft":133,"extension":134,"faq":463,"meta":476,"navigation":149,"path":477,"project":151,"readingTime":152,"seo":478,"seoKeywords":479,"stem":487,"summary":488,"tags":489,"updated":166,"__hash__":491},"builds\u002Fbuilds\u002Fwhoami\u002F2026-03-03-why-i-built-whoami.md","每次换个 AI 就要重新自我介绍，我受够了",{"type":8,"value":361,"toc":456},[362,366,369,372,375,382,385,391,395,398,401,404,410,413,424,431,435,438,450],[11,363,365],{"id":364},"三个-ai三个平行世界","三个 AI，三个平行世界",[15,367,368],{},"我每天的工作状态是这样的：写代码用 Cursor，思考问题问 Claude，搜资料用 ChatGPT。",[15,370,371],{},"三个 AI，三个平行世界。",[15,373,374],{},"Cursor 知道我喜欢用 Python、偏好简洁代码风格，但 Claude 不知道。Claude 记住了我在做一个教育类产品，但 ChatGPT 不知道。每次打开一个新对话，我都要把自己重新介绍一遍：\"我叫莫烦，做独立开发，擅长 Python 和机器学习，现在在做……\"",[15,376,377],{},[378,379],"img",{"alt":380,"src":381},"每个 AI 都是一座孤岛，互相不知道你是谁","\u002Fa\u002Fwhoami-skill\u002Fisolated-ai.png",[15,383,384],{},"我搜了一圈，做 AI 记忆的产品不少，但它们解决的都是\"AI 不记得我们聊了什么\"——存对话历史、项目上下文。",[15,386,387,388],{},"没有人在解决一个更基础的问题：",[25,389,390],{},"AI 根本不知道我是谁。",[11,392,394],{"id":393},"不是对话记忆是身份认知","不是对话记忆，是身份认知",[15,396,397],{},"所以我决定自己做。",[15,399,400],{},"思路很简单：一份身份档案，Markdown 格式，云端存储。不管你用哪个 AI，开对话的那一刻它就已经了解你了。你在聊天中提到新信息，AI 自动同步回去。",[15,402,403],{},"不是对话记忆，是身份认知。",[15,405,406],{},[378,407],{"alt":408,"src":409},"一份档案，所有 AI 共享","\u002Fa\u002Fwhoami-skill\u002Fsync-profile.png",[15,411,412],{},"我期望它能做到：",[38,414,415,418,421],{},[41,416,417],{},"一行命令安装，注册即用",[41,419,420],{},"所有 AI 工具共享同一份档案",[41,422,423],{},"用户在任意 AI 中提到新信息，自动同步到云端，其他 AI 也能看到",[15,425,426,427,430],{},"产品取名 ",[62,428,151],{"href":64,"rel":429,"target":67},[66],"：Linux 用户都熟悉这个命令，\"我是谁\"。",[11,432,434],{"id":433},"一天从零到上线","一天，从零到上线",[15,436,437],{},"3 月 3 日，一天之内从零到上线。AI Coding 的速度确实吓人：一天提交了 15 个 commit，后端、前端、Skill 脚本、双语文档、Logo 全部到位。",[15,439,440,441,444,445],{},"官网 ",[62,442,68],{"href":64,"rel":443,"target":67},[66]," 当天上线。代码完全开源：",[62,446,449],{"href":447,"rel":448,"target":67},"https:\u002F\u002Fgithub.com\u002Fmorvanzhou\u002Fwhoami",[66],"github.com\u002Fmorvanzhou\u002Fwhoami",[15,451,452],{},[378,453],{"alt":454,"src":455},"whoami 产品首页和使用流程","\u002Fa\u002Fwhoami-skill\u002Fintro-zh.png",{"title":121,"searchDepth":122,"depth":122,"links":457},[458,459,460],{"id":364,"depth":125,"text":365},{"id":393,"depth":125,"text":394},{"id":433,"depth":125,"text":434},"2026-03-03","三个 AI 三个平行世界，没人记得我是谁。市面上都在解决'AI 不记得聊了什么'，没人解决'AI 不知道我是谁'。所以我自己做了一个。",[464,467,470,473],{"q":465,"a":466},"whoami 和其他 AI 记忆产品有什么区别？","市面上的 AI 记忆产品主要解决的是'AI 不记得做了什么'——存对话历史和项目上下文。whoami 解决的是更基础的问题：'AI 不知道我是谁'。它存的是你的身份档案（名字、技能、偏好、工作方式），让每个 AI 开对话的那一刻就已经了解你，不需要重复自我介绍。",{"q":468,"a":469},"whoami 是怎么做到一天之内从零到上线的？","借助 AI Coding 的效率，一天内完成了 FastAPI 后端（OAuth 登录、API Key 管理、Profile 读写）、Nuxt 4 前端（Landing Page、Dashboard）、Python Skill 脚本、中英文双语文档、Logo 和 SEO 配置，共提交 15 个 commit。AI Coding 让 MVP 不再是瓶颈。",{"q":471,"a":472},"whoami 的身份档案存储在哪里，安全吗？","身份档案以 Markdown 格式存储在云端，通过 API Key 鉴权访问。用户拥有完全的控制权，可以随时在 Dashboard 查看、编辑或删除。代码完全开源在 GitHub 上。",{"q":474,"a":475},"whoami 支持哪些 AI 工具？","支持所有兼容 Agent Skill 机制的 AI 工具，包括 Cursor、Claude、Windsurf、ChatGPT 等主流平台。安装只需一行命令：npx skills add MorvanZhou\u002Fwhoami。",{},"\u002Fbuilds\u002Fwhoami\u002F2026-03-03-why-i-built-whoami",{"title":359,"description":462},[480,481,482,483,484,485,486],"AI 身份同步","whoami agent","跨 AI 记忆","AI 不认识你","AI Agent 身份档案","独立开发 MVP","AI Coding 一天上线","builds\u002Fwhoami\u002F2026-03-03-why-i-built-whoami","每天在 Cursor、Claude、ChatGPT 之间切换，每次都要重新自我介绍。市面上的 AI Memory 产品都在存对话历史，没人解决'AI 不知道我是谁'的问题。whoami 用一份云端身份档案让所有 AI 共享你的身份认知，一天内从零到上线。",[165,490],"AI 应用","UzTjjE7xl19jyX9wfpes6zBHQoMl0BtWCP2LzMtLJaU",{"id":169,"title":170,"body":493,"date":228,"description":229,"draft":133,"extension":134,"faq":534,"meta":539,"navigation":149,"path":244,"project":151,"readingTime":122,"seo":540,"seoKeywords":541,"stem":254,"summary":255,"tags":542,"updated":166,"__hash__":257},{"type":8,"value":494,"toc":530},[495,497,499,501,503,505,507,515,519,523],[11,496,175],{"id":175},[15,498,178],{},[15,500,181],{},[15,502,184],{},[11,504,187],{"id":187},[15,506,190],{},[38,508,509,511,513],{},[41,510,195],{},[41,512,198],{},[41,514,201],{},[15,516,517,207],{},[25,518,206],{},[15,520,521,213],{},[25,522,212],{},[15,524,525,219,527,223],{},[25,526,218],{},[62,528,68],{"href":64,"rel":529,"target":67},[66],{"title":121,"searchDepth":122,"depth":122,"links":531},[532,533],{"id":175,"depth":125,"text":175},{"id":187,"depth":125,"text":187},[535,536,537,538],{"q":232,"a":233},{"q":235,"a":236},{"q":238,"a":239},{"q":241,"a":242},{},{"title":170,"description":229},[247,248,249,250,251,252,253],[164,165],1782881824828]