← Back to Blog

我为什么做 Fast168

Dec 27, 2025

最近我又开始了 16:8。
坚持不难,难的是记录。
我试过几款 App:要注册、要社交、要会员,甚至要我先设一堆目标。
我只是想记下“今天第一口”和“最后一口”,然后关掉手机。

所以我做了 Fast168。
打开即用、数据只在本地、中文优先(后面再加英文)。
如果你也在断食,可以直接用:
https://fast168.ryderlab.work/

这是我 build in public 的第一步:做一个自己愿意每天打开的小工具。

主要功能

  • 月历视图:一眼看到本月执行情况,绿/橙/红三种状态点。
  • 当日记录:第一次进食、最后一次进食,自动计算进食窗口和达标状态。
  • 数据反馈:本月记录天数、达标天数、连胜、达标率 + 一句轻量的鼓励。
  • 体重和运动:顺手记体重、运动项目与时长,支持最近记录查看。
  • 数据备份:导出/导入 JSON,避免换设备时丢数据。

主要技术实现

  • Vue 3 + Vite + TypeScript,组件拆分成 CalendarViewDayEditorStatsPanel
  • date-fns 负责日历计算与中文日期格式;跨天进食也能正确计算时长。
  • 本地存储用 localStorage,对历史数据做了兼容与清理,空记录直接删除。
  • 体重趋势是纯 SVG 绘制,计算点位后画折线与渐变面积。
  • PWA(vite-plugin-pwa)保证离线可用,并支持“添加到桌面”。

做这个项目的目标很简单:
把“坚持记录”这件事,做得更轻、更顺手。

欢迎提建议,也欢迎告诉我你在断食里最想被解决的那个小麻烦。