Inspiration

Home security shouldn't cost $30 a month just to keep your own footage. Ring and Nest work great — until you stop paying and your recordings disappear. We wanted to build something where you own everything: the hardware, the footage, the data. No subscription. No middleman. That was the starting point.

What it does

SentriHome turns a Raspberry Pi and a cheap camera into a real security system. When motion is detected, it records a clip, saves it to the cloud, and pushes an instant alert to your phone — in under a second. The app shows a full-screen "Was it you?" prompt. Say yes and a cooldown kicks in. Say no and you're one tap from calling 911. You also get a live camera stream and a browsable archive of every recorded clip, all from an Android app you build yourself.

How we built it

Four moving parts that all had to talk to each other: a Raspberry Pi running the camera and motion detection, an ESP32 handling local Wi-Fi setup, a Node.js backend on the cloud storing clips in S3 and routing alerts, and an Android app in Jetpack Compose tying it all together. Alerts are delivered over Server-Sent Events so they arrive instantly instead of waiting on a poll. The app connects once and listens — the moment the Pi sees motion, your phone knows.

Challenges we ran into

Integration was the hardest part. Every layer worked fine in isolation and broke the moment it had to talk to the next one. OAuth deep links that Chrome silently dropped. SSE streams that ngrok killed after 30 seconds of silence. Memory leaks from HLS segments accumulating in S3 with no cleanup. Merge conflicts from two branches that had diverged so far they barely recognised each other. There were a few nights where we genuinely considered scrapping the whole thing and starting over. We didn't.

Accomplishments that we're proud of

Honestly? That it works. Not in a demo-only, happy-path kind of way — it actually works. You trigger motion on the Pi, your phone lights up with an alert in under a second, you tap a button, and the system responds. Watching that full loop complete for the first time — hardware to cloud to phone — was the moment that made all of it worth it.

What we learned

SSE is criminally underused for real-time mobile alerts. WebSockets get all the attention but for one-way push, SSE is simpler, needs no library, and works through any proxy. We also learned that edge provisioning — getting a phone to configure a device it's never met before over a temporary Wi-Fi hotspot — is deceptively hard and deserves way more respect than it gets.

What's next for NAIS_SentriHome

Door and window sensors feeding into the same alert pipeline. An AI layer that can tell the difference between a person and a cat before it wakes you up at 3am. And a smart curtain opener — so the system can physically block visibility into the home the moment an alert fires. The hardware foundation is already there. The rest is software.

Built With

Share this project:

Updates