-
-
App icon. The crescent is a switch and the handle sits at the on position. The same mark is the onboarding control and the progress bar.
-
Home at 11pm. Five states, each routed to the technique for that mechanism, and a line at the bottom that tells you to skip the app.
-
Cognitive shuffle. 478 spoken prompts; the app tracks the recent set so nothing loops back inside a session.
-
4-7-8 breathing, counted for you. Optional vibration on the cues so the phone can stay face down under the duvet.
-
The 3am screen. After twenty minutes awake it says get out of bed and put the phone down. It is the only screen that closes the app.
-
Settings prints the three numbers the reminder server is told. No account, no ads, no location permission.
-
Every technique carries an evidence label: well studied, one controlled study, traditional practice. Including the headline one.
Inspiration
Lying awake with a head that will not stop, and every sleep app answering with a sound library or a sleep score. I wanted the drills themselves — the ones behind "how to fall asleep fast" — spoken, with the counting done for me, and nothing to read at 1am.
What it does
Nine guided techniques: cognitive shuffle (478 prompts, and it remembers what it just said so nothing loops), the military method, 4-7-8, soft exhale, resonance breathing, counting breaths, body scan, a yoga-nidra style deep rest, and paradoxical intention. Each one carries a label saying how well it is studied. A voice guides you, optional vibration cues let the phone stay face down, the screen goes dark by itself, and everything runs offline. After twenty minutes awake, one screen tells you to get out of bed and put the phone down. Eight of the nine are free up to fifteen minutes with every voice and background; Sleep Plus sells length and Deep Rest. Nothing is sold between 2am and 5am.
How we built it
Flutter and Dart, Android first. RevenueCat powers Sleep Plus — a prepaid three-month pass that ends on its own, and a year plan with a seven-day trial — and the free trial is how judges get in. OneSignal sends one bedtime reminder in the user's own timezone from three tags, and the phone decides whether it should. The voice clips and the ambient beds are generated by scripts in the repo. The whole product is one object, a switch: it is the icon, the thing you drag in onboarding, the session progress mark, and the animation that plays once in the morning. Three hundred commits since 1 August.
Challenges we ran into
Google Play will not let any API create a first production release on an app that has never been published, and nothing reports review status — six days of a 404 store page with no signal at all. One AudioPlayer per voice clip exhausted Android's codecs, only on real devices. Haptic ramps on phones without amplitude control play as a five-hertz buzz, so the app refuses to ramp instead of shipping that. OneSignal's free plan silently drops the entire tag write on a fourth tag, so the reminder is designed around exactly three.
Accomplishments that we're proud of
Nothing is sold between 2am and 5am, and a test fails the build if that changes. The free tier is the whole app up to fifteen minutes, and a pricing-dominance test fails the build if the prepaid pass ever costs more than the year over its span. Every technique has an evidence label, including the headline one — "tested in one study". No account, no ads, no location permission: the weather behind the drill comes from a rounded IP lookup, and Settings prints the three numbers the reminder server is told.
What we learned
The paywall is a length, not a gate — ship the free path first and sell the minutes. A notification is the one piece of copy that arrives uninvited, so it is held to a stricter evidence standard than the app itself. And read the rules before optimising the queue: three stores count, not one.
What's next for Sleep Switch
A day-five reminder before the trial ends, as a local notification. The four ambient beds regenerated so every sound in the app has a known origin. iOS. And a real first-week retention number once there are users to read it from.

Log in or sign up for Devpost to join the conversation.