-
-
Nearby: one doorbell, the whole household
-
Ask the cameras nearby when something happens
-
You choose every clip you share
-
A nudge when something’s off
-
Nothing is watched until they agree
-
Your parents’ day, at a glance
-
“We tried to deliver.” Nearby checks.
-
Proof when they say they tried
-
Ask your door
-
Bin day, without the guesswork
-
Alerts that say what happened
-
Every visit, named
-
You decide what Nearby sees
-
Ring, Vercel and ten AWS services
-
Tell your street, without saying who you are
Inspiration
A Ring doorbell records every visit to your door. Three of those visits need someone to act on them:
- Your car gets clipped overnight, the shed is broken into, or someone dumps a mattress at the end of the road. The doorbells opposite almost certainly caught it, but the only way to ask is a post on the local Facebook group, with your address in it.
- Mum lives alone and a carer comes every morning. If the carer doesn’t turn up, or her front door opens at 3am, you want to hear first, and if you’re in a meeting, someone else in the family should.
- A courier marks your parcel “we tried to deliver” while you were sat at home. Your doorbell knows nobody came, but proving it means scrubbing through footage and then writing to the shop yourself.
Nearby answers all three from the doorbell you already have, and never identifies or follows a person to do it.
See every screen and sheet in the app: nearby.cam/gallery
What it does
Nearby is an iPhone app for Ring doorbells. You link it through the Ring Appstore and pick what you want it for: your neighbours and street, family, deliveries, or everything. It’s built for two of the Ring track’s priorities, caretaking and accessibility.
Home sums up your day in one sentence, such as “Your 3 bins are collected tomorrow around 7am; only 1 of 3 bins are out”, and names each visit: parcel, food, post or visitor. Ring still handles doorbell presses so you can answer the door. For everything else, Nearby shows you how to turn off Ring’s motion alerts, so each visit reaches you once.
Neighbours and Street
- After an incident, ask nearby cameras for footage. Each neighbour decides clip by clip, and a link lets people without the app answer from a WhatsApp group.
- See which bins go out, when, and whether your camera saw them out. Amazon Location Service works out when the bin lorry will reach you along real roads.
- Tell your street about a road closure, flooding or a power cut without your name on it.
Family: looking after someone who lives alone, once they’ve agreed
- One card covers up to three people you look after, and the carers, cleaners and dog walkers who visit them: “Mum, out 9:12am, due back 5:45pm”, with the temperature inside.
- You hear when a carer doesn’t arrive or can’t get in, when the front door opens at night, or when the doorbell goes offline. Each alert goes to one family member at a time until someone taps “I’m on it”.
- Doorstep sales alerts stay off until someone agrees to them on their own screen. When an unexpected caller arrives, Amazon Transcribe listens to the first minute for money words like “bank details” or “sign here”, and Nearby keeps the words, never the voice.
- Your relative sees what’s shared and who checked in, and can stop sharing at any time.
Deliveries: proof when a courier gets it wrong
- Every courier claim is checked against your doorbell: “Tried at 4:25pm, nobody came”, or “Came at 9:05am, didn’t ring”.
- Photograph the courier’s card or paste their message, and Nearby checks your camera at that time.
- When a check disagrees with the courier, Nearby saves the doorstep pictures straight away, while Ring still has them, and signs them with AWS KMS. Anyone with the link can confirm at nearby.cam/v that the record hasn’t changed.
- Send the complaint to the seller or the courier in one tap. The seller’s letter cites section 29 of the Consumer Rights Act 2015: goods stay the seller’s risk until they reach you. Replies arrive in the app, including from shops that answer through a help desk such as Zendesk.
- Forward your courier emails, and Nearby checks each parcel against the doorbell when it’s due.
Your data: download a copy of everything Nearby keeps, see how long it keeps each thing, and delete it all in one tap.
Accessibility: every screen works with VoiceOver and larger text, touch targets are at least 44pt, and Apple’s accessibility audit runs on every page in the UI tests.
How I built it
iPhone app: SwiftUI and Swift 6 for iOS 18 and later, with Live Activities, a widget and notifications you can act on. Every screen comes from one small design system, HubKit. Its rules are written down and pinned by Swift Testing unit tests, and UI tests scroll every page and save screenshots for review.
Server: Next.js 16 on Vercel, behind Cloudflare, at nearby.cam.
Ring, called at runtime:
- Account linking through Token Exchange, matching Ring’s nonce with an HMAC compared in constant time.
- Webhooks with the signature checked and repeated or stale events dropped;
device_onlineanddevice_offlinedrive the outage alerts. - Devices, Event History (
ding,motion.human,motion.vehicle), Image Download and Media Clips. Your Ring privacy zones are blacked out on every picture before anything reads it. - “Talk through the door” opens Ring’s own live view.
AWS in eu-west-1: ten services, one job each
- Amazon Bedrock (Nova 2 Lite) names visits from doorbell stills, reads courier messages and card photos, checks whether bins are out, and writes Home’s sentence.
- Amazon Bedrock Guardrails sit in front of every call that sees a camera picture. The guardrail blocks describing or identifying people and making accusations, and masks phone numbers, email addresses and number plates.
- AWS KMS encrypts Ring tokens, bound to each account by encryption context, and signs evidence with ECDSA P-256.
- Amazon S3 holds saved evidence and shared clips, deleted after 30 days.
- Amazon DynamoDB is a single table with a TTL on every record; conditional writes make links single-use and enforce rate limits.
- Amazon Transcribe powers doorstep sales alerts in the EU and deletes each recording once the words are read.
- Amazon SES sends complaints from nearby.cam with DKIM. Each user gets a private reply address, and Nearby accepts only replies that pass DMARC from that shop, that courier or the help desk they use.
- Amazon EventBridge runs every scheduled job: family and carer checks, the evening bin check and Ring token refresh, and a weekly job.
- Amazon Location Service works out bin lorry arrival times along real roads.
- IAM with Vercel OIDC gives the server one least-privilege role, so no AWS access key exists anywhere.
I chose Bedrock over on-device AI because Ring sends pictures to Nearby’s server, not your phone, and alerts have to fire while your phone sits locked in a pocket. Bedrock runs in the EU next to that data, one guardrail covers every picture, and Amazon doesn’t train on what I send.
Privacy by design
I checked each feature against Ring’s Appstore Content Policy, its Program Requirements and UK data protection law.
- Nobody is identified or followed. There’s no face recognition or number-plate reading, and the guardrail stops the AI describing anyone.
- You choose every share. Footage goes out one request at a time, saved evidence stays private until you open the claim, and nothing goes to the police or the public.
- Family sharing starts with consent. When a relative can’t decide for themselves, for example with dementia, a family member can agree in their interest. The privacy page states that legal basis, and Nearby asks again every 3 months.
- You control your camera’s data. Nearby acts on your instructions, keeps most things for 30 days, and deletes everything when you ask, including copies held by Nearby’s providers.
Challenges I ran into
- Linking a private Ring app: Connect in the developer console only makes the app visible. You install it from the Ring app, on an account with a Ring Protect plan. Until I learnt that, no tokens arrived and no error explained why.
- Evidence with a shelf life: Ring keeps pictures for a limited time, so claims opened days later had nothing to show. Nearby now saves and signs the pictures the moment a check finds the courier wrong.
- Who to complain to: a courier’s compensation belongs to the sender, so the complaint goes to the seller, who stays responsible until the parcel reaches you.
- Amazon Bedrock was suspended on 12 Oct pending account verification, and support still hadn’t replied over a week later. Every AI feature had a fallback, so Home switched to a sentence built from plain facts and courier cards can still be typed in. My friction log has the details.
- Five very different pages: I wrote HubKit strict enough that Deliveries, Family, Street and Neighbours read like Home.
Accomplishments that I’m proud of
- Family alerts go to one person at a time until someone takes it, and the relative can see and withdraw consent.
- A courier’s “we tried” becomes a signed record and a sent complaint, and you never scrub through footage.
- Ten AWS services each have one clear job, and the server holds no AWS access keys.
- Neighbour network - the privacy elements behind it too (enabling doorbell feature is really cool)
- With Bedrock suspended for days, every screen still works.
What I learned
- Ring’s Event History filters and pre-signed media links turn a delivery check into a handful of calls. Pictures expire, though, so anything that could become evidence has to be saved when it happens.
- Every alert I added had to replace an existing one, which is why Nearby helps you switch off Ring’s motion alerts.
- A guardrail covers features I haven’t written yet; a prompt only covers the call it’s in.
- AWS AI services (although it was a little frustrating being locked out of Bedrock).
What’s next for Nearby
- A public Ring Appstore listing, so neighbours beyond the private app’s account limit can join.
- Ring sensors once their APIs leave early access, for cold-home and door alerts without a doorbell.
- Bin days looked up from the council by postcode (we're UK specific atm for this)
Built With
- amazon-bedrock
- amazon-dynamodb
- amazon-eventbridge
- amazon-location-service
- amazon-nova
- amazon-ses
- amazon-transcribe
- amazon-web-services
- aws-iam
- aws-kms
- bedrock-guardrails
- cloudflare
- ios
- live-activities
- next.js
- ring
- ring-appstore
- swift
- swift-testing
- swiftui
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.