给女友做了个电子手帐项目,狠狠感动她了....

最近给女友 vibecoding 了一个小项目,作为恋爱纪念日的一个小惊喜,一本只给我们俩看的电子手账。文字、照片、实况、视频、语音、信都往里贴,页面做成奶油纸加拍立得的手账风,主要按手机屏幕做的。整本上了锁,进门要密码,搜索引擎也挡掉了,打算哪天当个惊喜送给她。

想给对象做点什么的,可以直接拿去改

仓库:github.com/zhangzhiwei...

体验地址:app.amazingzz.xyz

放出几个内测码~(如被使用了,评论私信我~)

RUXWLMS3

UXRXL9Y6

5G4TZX2U

M2U7MBRU

2X8S982G

截图里的照片是 Picsum 图库的,文字和语音都是演示数据。

里面有什么

手账。分两种页。普通页就是一段文字配几张照片或视频,再贴个心情贴纸。另一种是 3:4 的自由拼贴页,文字、图片、贴纸随便拖随便缩放,还能拿画笔直接在纸上涂。翻页像翻书,左右滑、方向键都行。

相册。一面拍立得墙。我花心思最多的是 iPhone 实况照片:同名的 HEIC 和 MOV 一起传,会自动配成一张实况,.livp 也会自动拆开,墙上长按就动起来。HEIC 自动转 JPG,按 EXIF 里的拍摄时间归到对应日期。每张底下那行手写字就是描述,随时能改,也能打标签筛选。

她能回你。本子不是单向的。每页末尾有个虚线小章,她点一下,就盖成一枚「她看过啦 · 日期」的红印章。下面还有个回话框,能发文字、表情和图片,GIF 表情包也会动。后台有个「她的痕迹」,她回过哪句、盖过哪页,按时间排好了都能翻。

彩蛋。这个我自己最喜欢。可以提前埋一个惊喜,设好揭晓日期和一个单独的密码。日子没到之前,这个彩蛋在接口层面就不存在,不是前端藏起来,F12 也翻不到。到了那天她输对密码,先是封面,然后是你挑的照片墙,最后是一封长信。她还能在每张照片上手绘留言,你在后台预览时能看到她画了什么。

剩下一些零碎的:

  • 语录墙,便利贴样式,能现场录语音,显示成微信那种语音气泡
  • 信箱,可以写定时信,到日子才拆得开
  • 大事记时间轴,能配一首歌,歌词跟着 LRC 一行行走
  • 放映室,专门放纪念视频,也可以定首映日期
  • 每个栏目、每一页都能单独设「公开」或「仅她可见」,给朋友看一部分,剩下的是悄悄话
  • 半夜 11 点以后打开首页,会有月亮和小星星眨眼;纪念日会自动算出 100 天、520 天、1314 天这些日子
  • 首页的大拍立得点一下会翻到背面,背面写着一句话
  • 深色模式是暖棕色的纸,不是纯黑

iPhone 快捷指令 。留了个 /api/quick 接口,用单独的 token 鉴权,跟后台口令分开,泄露了换掉就行。微信里她说了句好玩的,跑一下快捷指令就存进语录墙;相册里多选几张照片,也能一步发成一篇手账。大视频(最大 2G)走预签名直传,配了 OSS 的话文件从手机直接到 OSS,不经过服务器。快捷指令怎么配,仓库 docs 里有一步步的说明。

技术栈

Next.js 16 + React 19 + Tailwind 4,数据就一个 SQLite 文件(better-sqlite3),图片用 sharp,音视频靠 ffmpeg。媒体默认存在本地 data/media,也可以接阿里云 OSS。字体用霞鹜文楷,全部自托管,国内打开不慢。

备份很简单,把 data/ 文件夹拷走就行。

跑起来

需要 Node 20+,最好装上 ffmpeg。

bash 复制代码
git clone https://github.com/zhangzhiwei0905/our-little-planet.git
cd our-little-planet
npm install
cp .env.example .env.local   # 用 openssl rand -hex 32 生成一个 AUTH_SECRET 填进去
npm run seed                 # 灌一本示例手账
npm run dev                  # http://localhost:3000

默认读者密码 0520,作者后台口令 write-for-her,上线前记得改。部署的话一台轻量服务器够用,pm2 起服务,Nginx 反代加 HTTPS,README 里有 Nginx 配置样例和本机构建、远程替换的部署脚本,小内存机器不用在线上 build。

还做了个演示模式:数据全跑在内存里,几分钟自动重置一次,访客上传的东西会被换成内置样例,谁进来都改不坏。想给朋友看效果又怕被乱写,可以开这个。

最后

MIT 协议。有 bug 或者想法欢迎提 issue 和 PR,觉得有点意思的话点个 star 我就很开心了。也欢迎拿去给你在乎的人做一本。

相关推荐
分布式存储与RustFS1 小时前
你的网站备份只存一块盘?把 1Panel 的备份目标换成 RustFS
运维·开源·备份·对象存储·1panel·s3·rustfs
智塑未来2 小时前
MOSS-Image 和 Seedream 怎么选?开源与闭源文生图模型的长文本渲染、布局控制、设计盲评与使用方式对比
开源
Erishen2 小时前
进程内 ABAC 决策引擎:为了砍掉每次授权的一跳网络,我把判定塞进了站点自己的进程
架构·开源·agent
ClouGence3 小时前
SQL 效率天花板!开源 CloudDM,自带一站式 AI SQL 助手
数据库·sql·开源
miofly3 小时前
Gemini 4 Carbon发布:安全基准领先,幻觉率升至11%
开源·github
SelectDB技术团队3 小时前
ClickHouse 支持存算分离吗?Doris 社区版原生存算分离怎么落地
数据库·clickhouse·云原生·开源·apache doris·技术选型·存算分层
分布式存储与RustFS4 小时前
十分钟在自己机器上跑通一个 S3 兼容对象存储(RustFS + Docker)
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
元岳数字人小元4 小时前
告别云端依赖,数字人本地部署筑牢项目安全底座
人工智能·安全·架构·开源·人机交互·交互
小杨互联网4 小时前
Kenney / Blender CC0 小资源离线镜像汇总
开源·blender·游戏素材·kenney·cc0·离线包