Inspiration

A protective order is only as strong as the proof that it was broken. About 40–50% of protective orders are violated, and in one UK police force about 4 in 5 reported breaches ended with "no further action". Doorbell footage helps, but survivors still have to find the clip, keep it safe, and show a court it's the untouched original.

Ring has already donated about 35,000 doorbells and cameras to survivors through NNEDV. Witness turns what those doorbells see into evidence.

What it does

  • Pulls the doorbell's activity from the Ring Partner API and shows each event with its snapshot.
  • Log as violation: downloads the original video and photo from Ring, untouched, and seals them. Each file gets a SHA-256 fingerprint, goes into a hash-chained log, and gets an independent RFC 3161 timestamp.
  • Watch live: streams the doorbell in real time (WebRTC/WHEP). Capture this moment brings that recording in to seal.
  • Report: one tap makes a PDF for an advocate, lawyer or court, plus an evidence bundle with an offline verify page. The original matches ✅; a copy with even one changed byte fails ❌.
  • Built for safety: shows up as "Daybook", is locked with a PIN, sends no notifications, and keeps data on the device. Pressing Esc twice instantly swaps it for a weather page.

How we built it

Next.js + TypeScript, built with AI coding help (Claude Code) from our own design, with every step reviewed. The Ring calls are server-side only: devices, event history, snapshot and clip downloads, and WHEP live view. The app was tested live against the Ring Developer Playground and has 217 automated tests.

Challenges

The Playground has no webhooks and every event is "on_demand", its tokens last 30 minutes, and footage from before a token was issued is blocked. We logged all of this in our friction log.

Built With

Share this project:

Updates

Submission history