Inspiration
When a parent lives alone, the worry is not a burglar. It is the morning they do not get up. A doorbell already sees every morning, but a camera app that buzzes for every movement is noise you learn to ignore. We wanted the opposite: an app that stays quiet on ordinary days and speaks up only when an ordinary day did not happen.
What it does
Quiet Days learns the rhythm of a front door: when the person who lives there usually first shows life, weekdays and weekends apart. On an ordinary day it says nothing, and the family page reads "All as usual". When the morning stays quiet past the usual time, it says so plainly: "No movement at Mum's front door yet today. It usually shows life by 9:20 am." Then two choices: see the door now through the Ring camera, or "I checked, all fine", which settles the day. In the evening, one line sums it up: first seen, visitors, busier or quieter than usual. No video is kept.
How we built it
- Ring webhooks (v1.1) arrive at our server, each checked against its X-Signature (HMAC SHA256 of the raw body) before anything is read. Motion and doorbell presses become door events.
- The rhythm is learned from up to 21 days with robust statistics (the median first event, and the median distance from it), with a margin before anything is called late, and a cap so the expected time never runs past 2 pm.
- Ring's Partner API is called server to server for the device, its status, and a snapshot on request.
- Cloudflare Workers with one Durable Object per home. Tested end to end: unit tests for the signature check, the payload reader and the rhythm, and headless play-throughs of the family page, including a forged webhook being refused, an expired Ring token, and a quiet morning asking for a check.
The demo, honestly
The Ring Developer Playground gives a pretend doorbell with no history, and a rhythm needs weeks of mornings. So a demo home is given 21 ordinary days, sent as signed Ring webhooks through the same route a real doorbell uses, and a demo clock lets you jump to the moment a quiet morning becomes worth a check. The doorbell card uses Ring's real API with a Playground token.
Challenges we ran into
Saying nothing is the hard part. The product only works if it is quiet enough to trust and quick enough to matter, so the margin before "worth a check" is learned from the person's own spread of mornings, never a fixed hour.
What's next
A real Ring app listing (the account linking and identity check), a weekly note for the family, and a second door for homes with a back door camera.
Built With
- cloudflare-workers
- durable-objects
- playwright
- ring-api
- ring-webhooks
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.