Constraint Clock
WEB / IOS / ANDROID

Constraint Clock

Pick a creative or behavioral rule, run a countdown, and reflect on what the constraint taught you.

Try it live
ExpoReact NativeSQLiteZustandTypeScript
AT A GLANCE
Rule Library
Creative + Behavioral
Reflection
Every Session
Local SQLite
Session History
Web + Mobile
Platforms
THE PROBLEM

A plain countdown timer doesn’t teach you anything about focus

Most focus-timer apps are interchangeable — the same countdown with a different skin. None of them ask what specific limitation might actually change how a session goes, or capture what was learned once it’s over.

HOW IT WAS BUILT

Constraint first, timer second

Constraint Clock is built in Expo and React Native around a library of creative and behavioral constraint rules that anchor each countdown session, backed by local SQLite storage and Zustand state.

A short reflection step after every session captures what the constraint actually produced, and session history turns that reflection into a growing, personal record of what works.

INSIDE THE PRODUCT

Core surfaces that define the experience

Selection

Choose a rule, not just a duration

The constraint library surfaces creative and behavioral rules to run a session against, giving each countdown a specific shape instead of open-ended focus.

The constraint is the point, not the clock.

Session

A countdown built for constraint-driven focus

The timer itself is deliberately simple, built to hold the session’s constraint front and center rather than compete with it for attention.

No feature creep on top of the countdown.

Reflection

What did the constraint actually teach you?

A brief reflection log after each session captures the outcome while it’s fresh, building toward a real history instead of a vague sense of "that helped."

Closes the loop the plain timer apps skip.

KEY FEATURES

What makes it work

Constraint Library, Not a Plain Timer

A library of creative and behavioral rules gives every session a specific limitation to work within, rather than treating the timer itself as the whole product.

Reflection Built Into the Loop

A short reflection prompt after each countdown closes the loop between the constraint chosen and what it actually produced, logged rather than left to memory.

Session History as Signal

Local SQLite storage keeps a full session history, letting the practice of running constraints become a body of evidence about which ones genuinely help.

WORKFLOW

How a constraint session runs

Constraint Clock is built around a simple loop repeated across many sessions: choose, run, reflect.

01

Pick a constraint from the library

A creative or behavioral rule is selected to anchor the session, giving the countdown an actual shape to work within.

02

Run the countdown

A focused timer built specifically for constraint-driven sessions runs without distraction, keeping the chosen rule front and center.

03

Reflect and log the result

A short post-session reflection is logged to local history, turning each session into evidence about which constraints actually work.

Explore Constraint Clock