Slogan: 每天一件小事,勇敢尝试,记录你的 Yes 时刻。
受到电影《Yes Man》启发,这是一个帮助你走出舒适区、勇敢尝试新事物的个人日记应用。每天推荐一件新鲜小事,也可以记录你自己的「Yes 时刻」——那些你本可以说 No,但最终选择了 Yes 的瞬间。
- 每日挑战推荐:从 50+ 条预置小事中随机抽取(社交/美食/探索/创意/健康/学习)
- 自定义 Yes 时刻:记录你自己完成的挑战,如"今天学了 Neo4j"
- 公开 / 私密双模式:每条记录可选择公开展示或放入密码保护的私密空间
- 时间线回顾:按月分组查看所有公开的 Yes 时刻
- 数据统计:近 12 个月完成数柱状图、分类占比饼图、连续打卡天数
- 分享海报:竖版电影票根 / 方形社交媒体卡片两种样式,一键下载 PNG
- 框架: Next.js 14 (App Router)
- 语言: TypeScript
- 样式: Tailwind CSS
- 动画: Framer Motion
- 数据库: Turso (Serverless SQLite)
- 部署: Vercel
npm install复制模板文件:
cp .env.example .env.local编辑 .env.local,填入你的 Turso 数据库凭据和私密密码:
TURSO_DATABASE_URL=libsql://your-db.turso.io
TURSO_AUTH_TOKEN=your-token-here
PRIVATE_ACCESS_PASSWORD=your-secret-passwordTurso 数据库获取方式:
- 注册 Turso
- 创建数据库:
turso db create yesman- 获取 URL:
turso db show yesman- 获取 Token:
turso db tokens create yesman
首次运行需要创建表结构。在项目根目录执行:
npx tsx scripts/init-db.ts如果没有 tsx,先安装:npm install -g tsx
或者你可以直接启动应用后,调用一次自动初始化接口(可选)。
npm run dev- 将代码推送到 GitHub
- 在 Vercel Dashboard 点击 Add New Project
- 导入 GitHub 仓库
- 在 Environment Variables 中添加:
TURSO_DATABASE_URLTURSO_AUTH_TOKENPRIVATE_ACCESS_PASSWORD
- 点击 Deploy
项目已配置 .github/workflows/deploy.yml,需要在 GitHub 仓库的 Settings → Secrets and variables → Actions 中添加:
TURSO_DATABASE_URLTURSO_AUTH_TOKENPRIVATE_ACCESS_PASSWORDVERCEL_TOKEN— 通过vercel tokens create获取VERCEL_ORG_ID— 通过vercel link后查看.vercel/project.jsonVERCEL_PROJECT_ID— 同上
每次 git push 到 main 分支会自动部署到生产环境。
| 命令 | 说明 |
|---|---|
npm run dev |
本地开发 |
npm run build |
构建生产版本 |
npm run lint |
ESLint 检查 |
npm run typecheck |
TypeScript 类型检查 |
yes-man/
├── app/
│ ├── page.tsx # 首页:挑战推荐 + 记录表单
│ ├── timeline/page.tsx # 公开时间线
│ ├── stats/page.tsx # 统计页
│ ├── private/page.tsx # 私密空间
│ ├── share/[id]/page.tsx # 分享海报页
│ └── api/ # API 路由
├── components/
│ ├── challenge/ # 挑战卡片
│ ├── moments/ # 记录表单 + 列表
│ ├── stats/ # 统计图表
│ ├── share/ # 海报组件
│ └── layout/ # 导航栏 / 页脚
├── lib/
│ ├── db.ts # Turso 客户端
│ ├── actions.ts # 数据库操作
│ ├── stats.ts # 统计查询
│ ├── constants.ts # 类型 / 常量
│ └── utils.ts # 工具函数
├── data/
│ └── challenges.ts # 50+ 预置挑战
└── .github/workflows/ # 自动部署
MIT