Playing
Playing day to day
The dashboard, the clock and everything that moves it โ cage up, dice, hidden timer, freeze, adjust, undo, the emergency key, the retroactive log, photo check-ins and sharing.
On this page
The Dashboard is the play surface. Everything on it either shows the clock or moves it; every rule and every editor lives on Settings instead. Each card carries a โ that jumps to its own settings section.
The timer
The ring is the session. Its state is one of:
| State | Meaning |
|---|---|
| UNLOCKED | No active lock. The Cage up card is showing. |
| LOCKED | Clock running. Time remaining counts down in the ring. |
| FROZEN | Clock held. Remaining does not move until you unfreeze or the freeze expires. |
| TIME SERVED | Remaining reached zero. Unlock is clean. |
The facts row under the ring shows started, ends, elapsed, adjustments and frozen time. The math behind it is one line, and it is computed from the log every time the page loads:
end = started + sentence + ฮฃ adjustments + ฮฃ frozen time
Nothing stores "time remaining". Refreshing, closing the tab, or the server restarting cannot change it.
Cage up
Days, hours, minutes. Minimum one minute. Lock earns 20 XP. The more fold holds:
- Dice โ a min hours and max hours. The sentence is rolled somewhere in that range and the roll is noted on the lock event.
- Hidden timer โ you only ever see elapsed time. The remaining time, the end time and the sentence are hidden on every page, including stats and the recap card, until the lock ends. Once it is over, the sentence is history and is shown again.
- Note โ private prose attached to the session. Never on a share card unless you ask (Photos).
- Started earlier โ the lock actually began before now. See the retroactive log. A backdated lock may not overlap the previous one.
The Clock card
- Quick ยฑ buttons โ add or remove 15 min, 1 h, 6 h, 24 h by default
(
Settings โ Clock). Adding time is red, removing is green. - Freeze โ for N minutes, or indefinitely (until you say otherwise). A timed freeze thaws itself at its expiry, stamped at that expiry โ not at whatever moment the scheduler noticed.
- Fine adjust โ any number of minutes, add or remove, with a reason that goes in the log, and a when for adjustments that happened earlier.
Every adjustment is an event you can read on the Log page. There is no way to change the clock without leaving a record.
The Session card
- Note โ a timestamped line in the log (+2 XP).
- Undo โ reverts the newest event of this session. See Undo.
- Unlock โ when time is served, one tap: Clean run, +50 XP.
- Emergency key โ the same button before time is served. It asks you to confirm, ends the session, and marks it early. No XP, no penalty, no lecture. If the clock was frozen it is unfrozen first so the record is consistent.
Early is allowed
The emergency key is a feature. See Consent, safety, and the emergency key.
The actions row
Directly under the timer: ๐ธ photo check-in ยท ๐พ Handler ยท ๐ก wheel ยท ๐ training. Each module puts a badge on its button when it wants you โ due, overdue, 3 open, ready. A lit button is the game asking. The cards below the row are each module's summary; their pages are where you play them.
Photo check-in
๐ธ opens the camera or photo picker and submits the moment you pick. The picture is the entry: event kind photo (+5 XP), filed in the gallery, attached to whichever lock was on at that time. The fold under the button takes a caption and a when for a photo taken earlier.
Limits: JPEG/PNG/WebP up to 40 MB. iPhone HEIC is refused with a clear message โ set the camera to Most Compatible or convert first (Troubleshooting).
The retroactive log
Every write in Latch takes an optional when โ the collapsed โฑ not now? fold under each form, one local-time field. Leave it empty for right now. Fill it in for something that already happened: a lock that started before you opened the app, a task you finished at lunch, a reflection you wrote on paper last night.
The rules, enforced on the server:
- The future is refused.
- Clock events cannot precede the lock they land in. An adjustment, freeze or unfreeze dated before the active lock started is refused, naming the boundary.
- A backdated lock may not overlap the previous lock. Sessions partition time.
- An unfreeze may not precede its freeze, and a freeze is refused if the clock was already frozen at that time.
- Training cannot complete before it was assigned.
- Notes, photos and Handler entries attach to the lock that was on then โ possibly an older, closed one. A training completion inside a closed session pays its reward to nothing.
Anything recorded more than two minutes after its own time carries a โถ logged later badge in the log, permanently, with the time it was actually recorded. The record stays honest about when you told it.
Undo
Undo never deletes. It appends an undo event and strikes the target through; the struck row stays in the log, and the clock, XP and every stat stop counting it. Only the newest event of the active session is a candidate, and the button names it.
- Window: 15 minutes by default (
Settings โ Clock; 0 = no limit). Stamped exports quote the clock as it was, so a late undo would make old photos wrong โ hence the window. - Undoable: time added/removed, notes, spins, freezes, reflections, check-ins, mantras, affirmations, headspace sessions, a missed-reflection penalty.
- Refused, with the reason on the button: the lock itself (use the emergency key), an unlock, an unfreeze (freeze history goes as a pair โ voiding an unfreeze would hand back every second since the freeze), training assigned/done/failed (they carry side effects โ assign again instead), a photo check-in (the gallery is append-only too), and a spin whose effect was a freeze or a task (undo those first).
Share
Stamped photos and recap cards carry a ๐ค share button. On a phone over HTTPS it opens the share sheet with the JPEG; anywhere else it downloads. The file is re-encoded on the way out, so EXIF and GPS never travel with it. What is on the image is decided by your stamp tokens (Customise โ Stamps).
The Log
/timeline is every event, newest first, with chips to filter by module. Each row shows its
kind, its effect on the clock, who did it (you, the system, a module, the API), any XP, and the
logged later badge if it was backdated. Voided rows are struck through and kept.
Calendar
A month at a glance. Each day carries one dot per activity, in that activity's own colour โ so the colours tell you what you did, not merely how much. Hover a dot for the name and the count.
A dot drawn as a hollow ring instead of a filled circle was logged
later. That distinction is deliberate and it matters: Latch lets you log for
a day that has already passed, which can repair a streak โ that is what the feature is for. But if a
repaired day looked identical to a lived one, the retroactive log would become a way to quietly
rewrite your own history. The Log marks the same entries with โถ logged later.
Below the grid, Where things stand gives each activity its headline numbers: how long since the last one, how many days you have done it, the current streak, time spent, and this week against its target. These are the same figures the stat tokens print, from the same code โ a tile and a share card can never disagree about your streak.
A stat with nothing to say is left out rather than shown as a zero. "Never" is not 0s, and an
activity with no streak shows none at all โ see Activities.
Where the rules live
Nothing on the dashboard edits a rule. Prompts, wheel segments, the training library, the Handler's cadence, quick buttons, stamp layouts โ all of it is on Settings, one page, one section per module. See Customise your experience.
This page also ships inside the app, at /guide โ so your own instance always serves the guide for the version you are running, with the internet unplugged. Get Latch ยท Something wrong here? Tell me.