干饭魔法书 · 微信小程序 · 独立产品案例

一日三问,一页作答。

今天吃什么,每天问三遍,却没有正确答案。
干饭魔法书只做一件事——替你把这一顿定下来。

角色:产品定义 · 交互设计 · 落地实现 周期:2026.07 – 2026.09 平台:微信小程序 + 云开发
13个
完整页面
50道
结构化菜谱
30+
云端接口
6级
成长体系
SHOWCASE

换个角度,再看一遍。

滚动屏幕,手机随你转动,好设计经得起立体看。

一屏,只回答一件事 首页不堆功能,今天想吃点什么,这一个问题就够。
翻开,即揭晓 盲盒卡片有真实的翻开动效,把等待做成仪式感。
每一餐,都算数 经验、成就、日历,把做饭记成值得开心的小事。
ROTATE
-32°
继续滚动,看它转起来
01 / THE QUESTION

一个没有正确答案的问题,
每天要问三遍。

它不难,只是无穷无尽。我把这个日常决策拆成四层——前三层关于效率,最后一层关于关系。

PAIN 01

决策疲劳

吃什么每天要重复决定三次,没有正确答案,却要消耗真实的意志力。选择越多,越难定下来。

打开外卖 App 划了十分钟,最后还是点了昨天那家。
PAIN 02

内容不可执行

大多数菜谱产品停在“看”这一层:收藏了、看过了,但没有解决“我现在手里有什么、能不能做”。

收藏了两百道菜,但家里只有鸡蛋和番茄。
PAIN 03

营养盲区

年轻人对“这一顿够不够”缺乏判断依据,搜索得到的往往是广告或相互矛盾的说法。

减脂期晚上特别饿,到底能吃什么?搜出来全是带货。
PAIN 04

双人决策摩擦

两个人一起吃饭时,“随便”和“都行”是最难的题。决策成本翻倍,最后往往演变成“你点吧”。

我提议了三家,她说都不太想吃。

用户缺的从来不是菜谱,而是替他把这一顿定下来的那一下。 真正被消耗的不是时间,而是做决定的意志力—— 所以产品的主线,是抽签式的决策仪式。

02 / THE ANSWER

把“随便”,
变成“就它了”。

把“随便”,
变成“就它了”。

产品不追求菜谱数量,也不做社区。它只承诺一件事: 在你不想再想的时候,给你一张敢替你拍板的菜单—— 并且这张菜单,是真的做得出来的。

一句话:替你做决定的菜单卡 不做:菜谱百科 / 美食社区 / 外卖比价
决策层

把开放问题收敛成 1 个答案。魔法盲盒直接用抽签的方式输出“一荤一素一主食”,把无限选择变成一次点击。

执行层

把菜谱变成能落地的清单。食材逐项勾选、替代建议、一周购物清单,解决“看完还是不知道怎么做”。

情绪层

让这件事被看见。等级、成就、干饭日历,把“我今天给自己做了饭”记录成一件值得开心的小事。

安全层

把边界说清楚。孕期、慢性病等敏感场景主动提示“仅供日常参考,不能替代医生建议”,不让功能越界成医疗建议。

03 / PROTOTYPE

一试,便知。

这台手机不是贴图,是按 50 道真实菜谱数据 1:1 重建的可交互原型——抽签、约束筛选、打卡、经验入账,全部真的能跑。

Play with it

十三屏全部可点,一次走完整个闭环

二级页面直达 · 点一下直接跳到那一屏
推荐动线: 抽一席 → 点「就它了」看步骤 → 打个卡 → 回「我的」看经验入账。决策、执行、留存,三层设计一次看完。
TRY ON WECHAT

真机体验,扫码即达。

这里是按真实数据重建的可交互原型;完整的云同步、反馈闭环、深色模式与成长体系,运行在微信小程序里,长按即可体验。

  • 50 道结构化菜谱 · 营养、步骤与替代建议一次看全
  • 抽签式决策 · 由模式、口味与约束共同决定
  • 行为即激励 · 浏览、收藏、打卡都计入经验
干饭魔法书微信小程序码
长按识别小程序码 微信内长按识别,或用微信扫码进入。
04 / STRUCTURE

四个问题,十二个回答。

页面不是按功能堆的,是按用户的路径铺的——从“不想想”到“做完了”,每个域回答一个问题。

决策域

CORE
我该吃哪一顿?
魔法盲盒抽签式决定一席菜单
约束筛选三重边界 · 随用随开
菜品库50 道家常菜搜着挑
历史推荐收下的每一席都留档

内容域

CONTENT
这一顿怎么做?
首页菜单搜索 / 分类 / 今日推荐
菜谱详情营养 · 步骤 · 替代建议
营养助手一句话变一桌菜
收藏管理想做的菜自动进清单

成长域

RETENTION
为什么还要再来?
个人主页经验 / 等级 / 成就汇总
干饭日历连续天数与营养估算
魔法等级6 级成长 · 2000 封顶
魔法成就4 项成就随行为点亮

系统域

SYSTEM
产品怎么变好?
反馈与共创五状态全程可追踪
偏好档案目标 · 忌口 · 孕周
内容举报菜谱准确性兜底
数据导出与注销合规与隐私承诺
05 / DECISIONS

六个决策,一条主线。

所有功能都从同一个问题出发:这一步,有没有帮用户更快定下来?

01核心差异化

魔法盲盒 · 用一次抽签替用户拍板

把“选择”改成“抽取”——结果固定一荤一素一主食,结构比数量更重要。

02降低专业门槛

营养助手 · 把营养学翻译成这一顿怎么搭

四段式作答:营养亮点 → 这样搭配 → 推荐做法 → 需要留意,并直接挂上可做的菜谱。

03内容供给

菜品库 · 50 道家常菜搜着挑

搜索 + 分类 + 网格浏览,与首页典藏同源同数据——想自己拿主意的时候,这里兜底。

04决策质量

约束筛选 · 给随机装上边界

热量区间、现有厨具、已有食材三个维度,收在魔法屏内默认折叠——先限定范围,再开抽。

05留存设计

成长体系 · 让做饭这件事被看见

经验只来自真实行为:浏览 +2、收藏 +8、收下整席 +12、打卡 +25,2000 封顶。每一餐,都算数。

06闭环设计

共创反馈 · 把用户变成合著者

反馈状态全程可见:未读 → 处理中 → 已回复 → 已采纳 → 已归档;被采纳奖励 60 经验。

06 / IN MOTION

点一下,
就有回应。

下面每个循环播放的动效,都对应小程序里真实存在的交互——仪式感、即时反馈、可追溯的成长,全部藏在几百毫秒的产品语言里。

TONIGHT'S TABLEMENU DRAW
一荤一素一主食,刚刚好 已经为你排好这一席,可以再抽一次 轻触卡片,再抽一席 ↗
MAGIC DRAW
一荤 一素 一主食 ↻ 再抽一席

魔法盲盒 · 翻开即揭晓

抽签不是弹窗开奖,而是一次翻卡的仪式感——翻开的是真实菜谱,按今晚模式现抽现筛。

Lv.2 小灶学徒+25
打卡做饭 +25 XP263 / 2000 XP

成长体系 · 每一餐都算数

打卡、收藏、收下整席都真的加经验——进度条涨上去的那一下,就是回下一次的理由。

问孕期晚餐怎么吃更安心?
✦ 优质蛋白质 · 铁 · 叶酸
· 肉蛋全熟 · 搭配深色蔬菜

营养助手 · 一问就有答案

自由提问,直接返回四段式建议——识别到敏感场景时,免责声明会主动出现在最前面。

一 二 三 四 五 六 日
连续做饭 3 天

干饭日历 · 连续的热气

连续做饭的天数用一格格亮起来的日子来呈现——不催促,不排名,只是替你记得。

— 今晚模式 先选方向,再抽取
减脂模式 高蛋白模式 均衡家常模式 孕期友好模式
口味偏好 · 清淡
按当前模式,从 50 道真实菜谱中筛出这一席

今晚模式 · 先定方向再抽取

随机之所以可信,是前面有真实约束——模式、口味、忌口层层收窄,抽出的每一席都有依据。

番茄土豆炖牛腩
番茄土豆炖牛腩428 kcal · 32g 蛋白质
♥
已收藏 · +8 XP

我的收藏 · 心动一下

点一下收藏,红心跳起、经验入账——想做的菜自动进清单,每个行为都会被即刻奖励。

— 约束筛选 抽卡前的三道边界
热量区间
不限 ≤350 kcal ≤450 kcal
现有厨具
炒锅 电饭煲 空气炸锅
已有食材
番茄 鸡蛋 留空为不限
范围已收窄 · 现在可以开抽了

约束筛选 · 抽卡前的三道边界

热量区间、现有厨具、已有食材,收在魔法屏内默认折叠、随用随开。先划定范围,再让魔法书开抽——「敢替用户拍板」的前提,是约束真实存在。

全部典藏 50 荤菜硬菜 素菜时蔬 汤羹

菜品库 · 不想被安排就自己逛

搜索、分类标签、网格浏览,与首页典藏同一套数据——把「自己拿主意」的权利也留给用户。

2
小灶学徒263 / 2000 XP · 本级进度 21%
Lv1 Lv2 Lv3 Lv4 Lv5 Lv6
翻页新手 → 小灶学徒 → 厨房术士 → 风味掌柜 → 干饭大师 → 食谱贤者

魔法等级 · 每一级都有专属称号

六级成长全部由真实下厨行为点亮:打卡、收藏、收下一席……经验 2000 封顶,不催不逼,只替用户记得。

07 / INTELLIGENCE

随机,
不随便。

抽签只是表面——每一道菜为什么上桌、每一次抽取避开了什么,全都写得明明白白。

可解释抽取 · 每道菜都带着理由上桌

理由不是文案,是真实规则算出来的:贴合饮食目标、命中口味偏好、蛋白质给足、用时够短……不满意哪一道,「换一张」只替换那一道、优先换不同品类,不推翻整席;抽完还有一句话小结,交代这一席的出处。

一荤 清蒸鲈鱼 蛋白质 34g,顶饿
一素 蒜蓉西兰花 15 分钟上桌
一主食 葱花鸡蛋饼 探索位 · 换换口味,对抗「总吃同几道」
按「均衡家常模式」从 50 道菜里抽出这一席,已避开你的忌口。

探索位 · 给惊喜留一个座位

推荐最怕越推越窄。每次抽取,算法都会从当前约束池之外挑一道没吃过的菜顶替其中一席——大多数推荐顺着你的口味,只留一个位置给「没想过但大概率会喜欢」的那道菜。探索菜也要过忌口这一关。

顺着口味的一席 + ✦ 一道探索菜

忌口全链路 · 一次勾选,处处生效

偏好档案里勾掉的过敏原,会在抽取池、探索位、营养助手三处同步过滤——营养助手回答之前,还会主动提示「忌口已生效」。不是打标签,是全产品联动的闸门。

鸡蛋 牛奶 / 乳制品 大豆 麸质 鱼类 甲壳类 坚果 芝麻
抽取池 → 探索位 → 营养助手,三处同步过滤
08 / ARCHITECTURE

看不见的地方,
更要讲究。

页面只管展示,逻辑按域拆成服务,云端一个入口。任何一层挂掉,用户都不应该看到白屏。

展示层WeChat Mini Program
12 个页面 3 个自定义组件 自定义导航栏 Skyline 渲染 4 项 TabBar 750rpx 响应式
逻辑层按领域拆分的 Service
cloudApiService · 云端接口统一入口 cloudSyncService · 同步与降级 storageService · 本地持久化 recipeService · 菜谱检索与排序 nutritionAdvisorService · 营养建议 levelService · 经验与等级
数据层微信云开发 · 单云函数
mealApi recipe.* magic.* advisor.ask weekly.generate fridge.match checkin.* achievement.get feedback.* analytics.*
降级通道保证永远有可用界面
wx.cloud.callFunction 失败 → HTTP 接口兜底 云端不可用 → 本地 Storage 继续工作 反馈提交失败 → 本地缓存待同步 图片加载失败 → 渐变兜底文案
// 所有云端能力收敛成一个 action 命名规范:域.动作
const cloudApiService = {
  drawMagicMenu: (payload) => call("magic.menuDraw", { ...payload }),
  askAdvisor:    (question) => call("advisor.ask", { question }),
  matchFridge:   (ingredients) => call("fridge.match", { ingredients }),
  awardExperience: (type, key) => call("experience.award", { type, key })
};

// 调用层自带降级:云函数 → HTTP 接口,失败也不让用户看到报错
async function call(action, payload) {
  try {
    const res = await wx.cloud.callFunction({ name: "mealApi", data: { action, payload } });
    if (res.result?.ok) return res.result.data;
    throw new Error(res.result?.error?.message);
  } catch (e) {
    return callByHttp(action, payload); // 通道二
  }
}
DATA MODEL

菜谱是一等公民

每道菜谱携带 12 个可检索字段:分类、口味、难度、时长、份数、预算、厨具、适用模式、孕期友好、过敏原、替代建议、四段营养数据。所有推荐算法都建立在这套结构上,而非散落各页面的 if-else。

ANALYTICS

先埋点 再优化

关键行为全部上报:菜谱浏览、搜索词长度与结果数、盲盒抽取、营养提问长度、是否触发免责声明。设计时就预设了“这个功能怎么衡量”。

GOVERNANCE

内容与运营可控

云端配置站点名称、首页问候语、公告、维护模式与最低客户端版本。菜谱后台可增删改,不发版就能调整内容。

从一句生活洞察,到一套能点、能跑的产品——
一个人,一套 AI 协作流程。

09 / HIGHLIGHTS

值得留下的,
和正在做的。

产品亮点、可复用的设计方法,以及下一阶段的演进路线。

✓做对了什么
  • 主线足够收敛。只解决“替你决定这一顿”,没有掉进“什么都想做”的坑。13 个页面全部服务于这条主线。
  • 结构先于界面。菜谱的 20 余个字段让魔法盲盒、约束筛选与菜品库共用同一套筛选内核,功能增加时的成本是线性而非指数。
  • 仪式感是可被记住的差异点。“翻开魔法书”把一个枯燥的筛选动作变成了有记忆点的体验。
  • 把安全边界前置。营养类产品最容易越界,主动声明“不替代医嘱”反而提升了可信度。
✓沉淀下来的方法
  • 约束先于随机。先让用户划定热量、厨具与食材范围,再让随机发生。可信度来自前置条件,而不是算法本身。
  • 行为即激励。经验只从真实下厨行为产生,可解释、可复核,也不设排名与压力——增长不靠催促,靠被看见。
  • 状态可见即信任。反馈从提交到采纳全程可见,被采纳还奖励 60 经验,把用户从使用者变成共创者。
  • 规则与语义分层。关键词规则负责确定性问答,大模型适合承接长尾表达——两级结构兼顾准确与覆盖。
→下一阶段演进路线
P0

菜谱供给规模化
继续扩充结构化菜谱,打通外部菜谱源供给。

P1

菜单分享卡
把今晚这一席变成可转发的图,天然自带传播。

P2

语义化营养对话
接入大模型承接长尾提问,规则引擎转为兜底,准确率与覆盖面同时提升。

P3

家庭协同
由双人投票扩展为多人菜单与分工,切入家庭备餐场景。