Designing an alarm that requires a real sign of waking up
A mobile product experiment exploring whether physical posture detection can reduce unconscious snoozing while remaining safe and accessible — prototyped in Flutter and documented as a build-in-public series.
- Role
- Independent — concept, design & engineering
- Platforms
- Android
- Key result
- Concept → prototype — Documented in public
- observation symbol
- observation
- open question symbol
- open question
- decision symbol
- decision
- rejected symbol
- rejected
- progression symbol
- progression
- result symbol
- result
Observation
People silence alarms without ever actually waking up.
Stupid Alarm is a behavioural product experiment: an alarm designed to stop only once you show a genuine sign of waking — such as sitting up — rather than one you can silence half-asleep. It's deliberately the most exploratory of my projects, and it's documented as a build-in-public series.
Problem
People silence alarms without actually waking — a reflex, not a decision. Standard alarms optimise for being dismissible, which is exactly the failure. The design problem is detecting a real 'awake' signal reliably, without asking users to do anything unsafe or inaccessible the moment they wake.
Context · This is an independent experiment, not a shipped product. The point is to explore a behavioural hypothesis in public — including the parts that don't work yet — rather than to claim a finished feature.
Ownership
A solo experiment — everything here is individual work, and the sensor detection is explicitly still exploratory rather than proven.
What I owned
Personally executed
- Framing the problem and the product hypothesis
- Prototyping the core interaction in Flutter
- Exploring sensor-based sit-up / posture detection and its trade-offs
- Documenting the build publicly
Constraints
- Whatever the alarm requires must be safe to do seconds after waking.
- It must not exclude people who can't reliably sit up on demand.
- Sensor detection has to run within reasonable battery limits.
- Sensor data used for detection should stay on-device.
Questions
- What's a reliable physical signal of 'awake' that most people can perform safely?
- How do we tell a genuine sit-up from the phone simply being picked up or lying on a table?
- What's the fallback when detection can't work — and how do we keep it safe, not just strict?
- How strict can dismissal be before it becomes unsafe or inaccessible?
Decisions
Promising, but prone to false positives from simply handling the phone.
Detection must degrade gracefully — never trap someone in a ringing alarm.
Required from the start, not an optional extra.
Treat this as a labelled experiment (Concept / Prototype), not a finished feature.
- Why
- Honesty is the point of building in public.
- Rejected
- Presenting the concept as a completed product.
- Trade-off
- Less impressive as a claim.
- Outcome
- The build story is the value while validation is still pending.
Require an accessible alternative to the physical action from the start.
- Why
- Not every user can safely sit up on demand the moment they wake.
- Rejected
- A physical action as the only dismissal path.
- Trade-off
- The 'strict' concept can't be the only path.
- Outcome
- The product stays usable and safe for everyone.
System
- Core alarm interaction prototyped in Flutter.
- Exploration of device motion sensors (e.g. accelerometer) for posture detection.
- Detection framed as a rule strict enough to require a real signal but tolerant of table/handling false positives — still exploratory.
- Alarm firessound + wake prompt
- Read motion sensorson-device only
- Evaluate posture signallooking for a genuine sit-up pattern
- Guard false positivesphone-on-table / pick-up rejected
- Dismiss or fall backaccessible confirmation path if detection can't run
This flow is a concept under exploration — sensor detection is not claimed as complete.
Content needed — Visual walkthrough
Prototype screenshots and a short muted demo clip → public/images/projects/stupid-alarm/. Add the YouTube dev-series URLs to `links.youtube` and `siteConfig` when ready.
Results
- A working prototype and a public build story that turns the engineering into something people can follow.
- No effectiveness claims — whether posture detection actually reduces snoozing still needs validation.
Accessibility
- The product must not assume every user can safely sit up the moment they wake.
- An accessible alternative to the physical action is a first-class requirement, not an afterthought.
- Safety comes before strictness: the alarm should never trap someone who genuinely can't perform the action.
Reflection
- Behavioural products live or die on edge cases — the hard part is a detection rule strict enough to work but safe and accessible.
- Building in public is a forcing function for honesty about what does and doesn't work yet.
- Tighten detection thresholds to cut false positives.
- Design and test the accessible alternative properly, not as a token fallback.
- Add the accessible alternative to sitting up.
- Run a small user-testing round to see whether the concept holds up outside my own bedroom.
- Continue the build-in-public series as it develops.
Content needed — User-testing plan
Define how effectiveness will be measured (e.g. snooze rate before/after) once detection is stable — currently unvalidated.