瓶颈从工程转到了产品决策
这一周盘盘猫加的东西特别多:多了好几条产品线,积分经济真的跑起来了,视觉风格也整个换掉了。感觉现在叫平台不算吹了。下面按功能挨个讲。
盘盘猫抛接多个功能模块:手相识别、邀请码、积分币
积分经济,看着简单做起来全是坑
邀请返利
需求一句话就能说完:每个用户有一个唯一的邀请码,邀请人有奖励,被邀请人有欢迎礼。就是最普通的邀请裂变,哪个产品都有的那种。实际做下来是三层:(a) 落地页捕获 URL 参数 ?ref=PPM-XXXX-XXXX;(b) localStorage 做兜底,因为用户很可能先逛一圈再注册,这个码得在整个注册流程里一直活着;(c) 服务端校验,Supabase RPC claim_referral_bonus(),带最大邀请数限制、竞态条件防护和反作弊检测。
一个邀请码怎样穿过 URL 参数、localStorage 兜底、服务端校验三层都不掉
返利金额一开始定的是不对称的,邀请人 10 积分,被邀请人 3 积分。结果用户反馈觉得这是在「薅朋友」,原话是「是在利用朋友赚积分」。改成对称的各 5 积分之后,邀请量反而上去了。所以多给邀请人奖励不一定能促进传播,让双方都觉得公平,效果反而更好。这个跟我原来的直觉正好是反的,我一开始想的是邀请人拿大头才有动力去拉人,结果不是这么回事。
邀请返利改成对称各 5 积分后传播反而变好——不对称多给邀请人反而没人传
PR #59 后来修了一个 bug:link_referral() 会把有效的新用户拒掉,因为它在用户还没有任何使用记录之前就去查 usage_log。新用户哪来的使用记录,等于在防一件当时根本不可能发生的事。典型的过度防御。
用户资料和引导流程
PR #41 是一次大改版。用户资料的字段(姓名、性别、生日、出生时辰、出生地、语言偏好)全部做成可编辑,认证之后有全局引导弹窗,强制把资料补完整。还加了个「一键带入出生资料」的按钮,自动填充八字、占星和 K 线这几个功能的输入表单。
语言优先级这块做得比较细:已登录用户的 localePreference 覆盖浏览器语言,匿名用户走浏览器检测,语言切换器切完还要同步回资料。反正全是状态同步的细节活,不难,就是琐碎,做的时候得一个状态一个状态对。
手相面相,整个项目技术最硬的功能
浏览器里跑机器学习
计算机视觉全在客户端跑,不需要服务端往返。五个 hook 各管一段:
useMediaPipeLoader:WASM 懒加载(大概 3MB 的二进制),模块级缓存,第一次慢,之后秒开useFaceDetector:BlazeFace 模型,在摄像头预览里以 60fps 跑,给用户「摄像头能识别到脸」的实时反馈useFaceLandmarker:478 点面部网格,拍照时跑一次,提取三停、五官、十二宫位的测量数据useHandLandmarker:21 点手部骨架,识别三大主线、辅助线和掌丘位置useCameraCapture:封装getUserMedia调用,8 秒超时,兼容移动端浏览器
实时效果是掌纹上有绿色标记点、面部有一层特征网格。实现上就是在视频画面上叠一层 Canvas,移动端用隔帧渲染,把帧率保在能用的水平。整个功能是在 PR #1 里一次落地的,56 个文件变更,新增 6,881 行代码,前后 15 次 commit,反正就是挺大一坨改动。
PR #35 后来给掌纹检测加了 GPU→CPU 回退:有些设备 WebGL 报告说自己可用,真跑推理的时候就挂了,回退机制检测到失败之后自动切到纯 CPU 模式重试。PR #50 把所有 WASM 和模型文件本地化到应用自己的静态资源目录,因为中国用户访问 cdn.jsdelivr.net 根本不稳。做中国市场的产品,这类东西只能全部自己 host。
多模态 AI 解读
拍下来的图片通过多模态 prompt 发给 claude 或者 gemini。光说一句「看看这个掌纹」只会得到很泛的结果,所以 prompt 分了四层:(a) 先定角色,一位有 30 年经验的中国相术大师;(b) 再注入知识,五官、三停、十二宫位、脸型、掌纹含义、掌丘的解读规则;(c) 要求用多个相术体系交叉验证分析;(d) 最后指定结构化输出,包括段落结构、置信度和可操作的建议。
知识包对不对,靠 30 个领域测试来验证。prompt 模板还会根据性别注入特定知识,女性用户会额外拿到旺夫/克夫分析、柳庄四件的解读,还有女性特有的掌纹特征分析。
这个功能从零到上线只用了四天。浏览器端 ML、多模态大模型、结构化 AI 输出,每一项单拿出来都是近几年才出现的东西,凑在一起居然就能用。我自己试的时候都在想:这玩意儿怎么还挺像回事的?
落地页推倒重来
原来的暖棕金色主题不行了。产品越做越正经,用户是带着事业、感情、健康这些真实问题来找答案的,界面太「温馨」反而显得不庄重,或者说撑不住这种话题。
于是整个推倒重来,做成暗黑奢华风:深黑的底,金色点缀,猫的形象也从可爱吉祥物改成了神秘预言者。改完之后用户反馈里开始出现「值得信赖」和「专业」这种词。产品没变,就换了个色调,用户给的信任就不一样了。
第 19 天的成绩单
数一下这周的产出:7 条产品线、跑起来的积分经济、邀请返利系统、暗黑奢华风落地页,还有浏览器端的掌纹和面相识别,背后大概是 700 次 commit。
感觉工程这边已经不怎么卡我了,想做什么基本都能做出来。真正卡住的是产品决策——下一步做什么、怎么定位、收多少钱。这三个问题,写这篇日记的时候我还没想清楚。
瓶颈从工程转移到产品决策——工程管道被撑宽,产品决策成了新的窄口


