最近把自己的简历重写了一遍,没用 Notion 也没套模板,当成一个正经前端工程在做。聊几个我觉得有点意思的设计,顺便求 Star 和拍砖。
一句话介绍:Vite + React 写网站,Remotion 写"简历视频",同一份 zod 校验过的双语数据驱动两端。
几个自己比较得意的点:
Monorepo 里两个 source-only 包。@resume/data 和 @resume/ui 都没有 build 步骤,exports 直接指向 src/*.ts,Vite / Vitest / Remotion 的 webpack / tsc 全部直接吃 TS 源码,少一层产物,少一类玄学。
简历数据单一事实源。基于 JSON Resume schema 扩展,zod 校验,所有字符串都是 LocalizedString { zh, en },网站 section 、Remotion composition 、CLI 渲染脚本全都读同一份 resume.ts,改一行全部同步。
视频三级降级,按用户偏好/网络自动挑:
prefers-reduced-motion → 静态 postersaveData / 慢网 → 预渲染 mp4@remotion/player,进入视口才挂载,离开自动暂停回首帧Remotion 双入口。CLI/Studio 用 index.ts 注册 root,网页端只 import exports.ts(纯组件 + zod schema + 默认值 + 元信息),两边复用 composition 但互不污染。
CI 渲染按内容哈希缓存。apps/remotion/src + packages/data/src 哈希没变就跳过 render,首次部署 5–8 分钟,之后 1–2 分钟。
技术栈:pnpm + Turborepo / React 18 / Remotion 4 / Tailwind(自写 cyberpunk preset)/ react-i18next / @antfu/eslint-config 。
任何拍砖都欢迎,尤其想听听别人是怎么处理 Remotion 网页端复用和视频降级这块的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.