fastzone
Try it on the watch
Fills the watch with 14 made-up fasts and a fast two minutes from its goal. Only on this page; never in a download.
Guide
Source · upload fastzone.min.js to the watch · Open in emulator · All faces
An intermittent fasting timer for your wrist. Start the fast when you finish dinner, or set it back to when you actually stopped eating. The face counts down to your goal, shows which fasting zone you're in, beeps once when you get there, and keeps the stats: this week's goals, your streak, your average, your longest fast and the last 30 fasts.
- Goal: whole hours from 12 to 48, shown the way people say it: 16 →
16:8, 18 →18:6, 20 →20:4, 23 →23:1. Above 23 it's just the hours. The face starts at 16. - One beep, no nagging: the goal beep is the only sound. Zones change silently, and the eating window just counts down.
- The fast is yours to end: reaching the goal doesn't stop the fast. It keeps counting until you mark it over, and you can set that back too.
Zones
| Zone | Hours fasted | Word | Stage |
|---|---|---|---|
| 1 | 0–4 | FEd |
fed |
| 2 | 4–12 | CAtAb |
sugar dropping (catabolic) |
| 3 | 12–16 | FAt |
fat burning |
| 4 | 16–24 | HEtO |
ketosis |
| 5 | 24+ | AUtO |
autophagy |
The zone number sits on the day digits while you fast. Every time you open the face mid-fast, it shows the zone's word for a moment first. The hours are the rough estimates fasting apps use, not measurements.
Buttons
| Button | Eating | Fasting |
|---|---|---|
| A | Start the fast now | Show the zone word again |
| Hold A | Start the fast, set back | End the fast, set back (or not) |
| L | Stats, one page per press, then back to the timer | same |
| Hold L | Settings: goal, then beep | same |
Setting back (hold A): the screen shows -0:00 with S (start) or E (end) on the day digits. Each A goes back 15 more minutes; L confirms. It goes back at most 6 hours, never before your last fast ended, and an end never before its start. Past the furthest it can go, it wraps to -0:00. Ending a fast always goes through this screen, so a stray press can't end it and break your streak. Ending within 15 minutes of the start cancels the fast instead: it isn't recorded and your streak is untouched.
Any button stops the goal beep and does nothing else. Stats, settings and the set-back screen return to the timer after 10 seconds without a press (the set-back screen cancels).
Screen
| Screen | Main digits | Day | LAP |
|---|---|---|---|
| Fresh start, or the eating window is over | rEAdY |
off | |
| Fasting | time to the goal, HH:MM SS |
zone | on |
| Past the goal | time over the goal, counting up | zone | blinking |
| Eating | time left in the eating window (24 h minus the goal) | off | |
| Eating, goal 24 h or more | time since the fast ended | off |
Stats
| Page | Shows |
|---|---|
| Week | days in the last 7 with a fast that hit its goal, e.g. 5 oF 7 |
| Streak | fasts in a row that hit their goal, e.g. Str 12 |
| Average | AUG, then the average fast over the last 7 days (day digits A) |
| Longest | tOP, then your longest fast (day digits t) |
| History | one fast per page, newest first, showing its length as HH:MM; the day digits count back (1–30), A steps older and wraps from the oldest back to the newest, LAP means it hit its goal |
Pages with nothing to show yet read ----. Week counts today and the 6 calendar days before; Average covers the last 7×24 hours.
A fast hits its goal when it lasts at least the goal in effect when it ends. A miss resets the streak to 0.
Settings
Hold L, then A steps the value and L moves on.
- Goal (day digits
G): 12 to 48 hours, wrapping back to 12. Raising it past the time you've fasted sets the beep up again; lowering it below doesn't ring. - Beep (
bEEP, day digits1or0): the goal beep on or off.
Off screen
The fast keeps time from timestamps, so the face is right whenever you come back to it. On another face, the goal is caught on the watch's minute tick, so the beep can come up to 59 s late, and it rings for 5 s instead of 20.
local.json
Forge has no storage yet, so a reboot or a new upload clears the fast in progress, the history, the streak and any settings changed on the watch. To start with your own goal and beep, bake them into a personal build with a local.json (see All faces):
{"fastzone": {"goal": 18, "beep": 1}}
goal is whole hours from 12 to 48 and beep is 1 or 0. A value out of range loads as the default (16, beep on), and a misspelled key fails the build.