Inspiration

Ring can tell you when someone is at the door. But sometimes the harder question is:

Should this person actually be here right now?

That problem becomes especially important for families supporting older relatives who live independently. A resident might remember that a plumber is visiting today, but may not know whether someone arriving several hours early is legitimate.

WhosThere was built to add that missing context between a Ring visitor signal and the resident's decision.

What it does

WhosThere checks visitor activity against expected visits and classifies the situation as:

  • EXPECTED: the visitor details and timing match
  • MISMATCH: some details match, but something important does not
  • UNVERIFIED: there is not enough context to confirm the visit

If a visit is uncertain, the resident can tap Ask Angela and send the context to a trusted family member.

The trusted contact can confirm that the visit is expected, mark it as not expected, or call the resident.

WhosThere also includes AccessBridge, an accessibility mode with large text, simple actions, high contrast, and voice read-aloud guidance.

How we built it

WhosThere uses the Ring Developer Platform and Ring Developer Playground for visitor activity.

A deterministic VisitCheck engine compares the visitor context against expected visits stored in Amazon DynamoDB.

The classifier returns EXPECTED, MISMATCH, or UNVERIFIED before any generative AI is used.

Amazon Bedrock with Amazon Nova was added as an optional explanation layer to turn structured results into simpler language. If Bedrock is unavailable, WhosThere falls back to a deterministic explanation so the safety flow continues working.

Trusted-contact decisions are also stored in DynamoDB and returned to the resident.

The frontend is built with Next.js, TypeScript, and Tailwind CSS.W

Challenges we ran into

One challenge was that Ring Playground Motion simulation appeared in Event History as on_demand rather than a production motion_detected event. We preserved the real Playground event instead of pretending it was a production webhook.

We also encountered Amazon Bedrock daily token quota limits. Rather than allowing this to break the experience, WhosThere uses a deterministic fallback explanation.

Other challenges included Ring account-linking behavior, Next.js runtime issues, deployment configuration, and making the experience simple enough for residents who may need additional accessibility support.

Accomplishments that we're proud of

We built WhosThere as a working end-to-end demo rather than just a collection of screens.

The complete flow works from visitor activity through expected-visit checking, deterministic classification, trusted-contact escalation, and the resident receiving the final decision.

We also implemented and tested all three VisitCheck states:

  • EXPECTED
  • MISMATCH
  • UNVERIFIED

Another accomplishment was keeping the safety-critical decision deterministic. Generative AI is only used as an optional explanation layer and never decides whether a visitor should be trusted.

We also built AccessBridge, which turns the same visitor context into a simpler experience with large text, clear actions, and voice read-aloud guidance.

What we learned

The biggest lesson was that a safety product should not pretend to know more than it actually does.

Sometimes the right answer is simply UNVERIFIED.

We also learned that human escalation can be part of the core product rather than a last-resort fallback. When context is uncertain, a trusted family member may be better placed to make the final judgment.

Technically, we learned a lot about Ring Developer Platform behaviour, AWS service integration, DynamoDB state design, and designing fallbacks when an AI service is temporarily unavailable.

What's next for WhosThere

Next, we want to move WhosThere from a hackathon demo toward a real household safety product.

Future versions could include:

  • real Ring hardware deployment
  • calendar and service-provider integrations
  • automatic visitor and company identification when available
  • multiple trusted contacts
  • richer remote notifications
  • caregiver and assisted-living workflows
  • smarter expected-visit creation from bookings or messages

The long-term goal is to move beyond: “Someone is at the door.”

toward: “Here is why they may be here, whether that matches what you expected, and who can help verify it.”

Built With

  • amazon-bedrock
  • amazon-dynamodb
  • amazon-nova
  • aws-iam
  • next.js
  • ring-developer-platform
  • ring-developer-playground
  • tailwind-css
  • typescript
  • vercel
Share this project:

Updates

Submission history