Top
Best
New

Posted by mpweiher 2 days ago

We saved $500k per year by rolling our own "S3"(engineering.nanit.com)
320 points | 249 comments
Havoc 1 day ago|
Tbh I feel this in one of those that would be significantly cleaner without serverless in first place.

Sticking something with 2 second lifespan on disk to shoehorn it into aws serverless paradigm created problems and cost out of thin air here

Good solution moving at least partially to a in memory solution though

tcdent 1 day ago||
Yeah, so now you're basically running a heavy instance in order to get the network throughput and the RAM, but not really using that much CPU when you could probably handle the encode with the available headroom. Although the article lists TLS handshakes as being a significant source of CPU usage, I must be missing something because I don't see how that is anywhere near the top of the constraints of a system like this.

Regardless, I enjoyed the article and I appreciate that people are still finding ways to build systems tailored to their workflows.

ahoka 1 day ago|||
TLS being a bottleneck when doing image processing is very-very weird.
mannyv 4 hours ago||
They should terminate TLS at the LB and use normal connection inside...unless they have some HIPAA privacy-like regulation going on.
inlined 1 day ago|||
Maybe they’re not using keepalives in their clients causing thousands of handshakes per second?
ruperthair 1 day ago||
Yes, they mention this as a 'fix' for connection-related memory usage:

> Disable keep-alive: close the connection immediately after each upload completes.

Very odd idea.

kevin_thibedeau 1 day ago||
Possibly missing session resumption support compounding the problem.
elevation 1 day ago||
The scalable in-memory solution took quite a bit of testing to get right. Building this on the early side of the business when the requirements are not well known can be a giant budget and time tar pit. Plus without customers it’s hard to confidently test at scale.

Using S3 for an MVP and marking this component as “done” seems like the right solution, regardless of the serverless paradigm.

halJordan 10 hours ago||
Agreed, but the first design principle is "eliminate complexity at the design level." MVPs and what they represent (a failure to design) are an albatross
ixtli 1 day ago||
They didn’t actually do what the headline claims. They made a memory cache which sits in front of S3 for the happy path. Cool but not nearly rolling your own S3
jrochkind1 1 day ago||
True, but, if i'm following, the memory cache has to clone S3 API for existing clients that can't be easily altered. Regardless of what you title it, it's an interesting project report!
ramraj07 1 day ago||
I also didnt get why the cache had to be memory and not local name storage..
jonasdegendt 1 day ago||
Out of curiosity, why?

My first thought is, why bother with local storage if your turnaround on video chunks is 2 seconds? What's disk going to add besides a little bit more resiliency in that 2 second time frame? This at the cost of having slower pod startups given you have to mount the PVC, and a small performance hit of writing to a filesystem instead of memory.

All moot anyway given that the cameras/proxy allegedly has retries built-in, but interested to hear your thoughts.

ghm2180 1 day ago|||
> What's disk going to add besides a little bit more resiliency

Resiliency is the point. How would you protect against machine's loss/crash?

ramraj07 1 day ago|||
reduced cost? you can have same storage in nvme (and for this purpose, sufficient performance) at a tenth or hundredth the cost of the same storage in memory in AWS.
varenc 1 day ago||
In HN style, I'm going to diverge from the content and rant about the company:

Nanit needs this storage because they run cloud based baby cameras. Every Nanit user is uploading video and audio of their home/baby live to Nanit without any E2EE. It's a hot mic sending anything you say near it to the cloud.

Their hardware essentially requires a subscription to use, even though it costs $200/camera. You must spend an additional $200 on a Nanit floor stand if you want sleep tracking. This is purely a software limitation since there's plenty of other ways to get an overhead camera mount. (I'm curious how they even detect if you're using the stand since it's just a USB-C cable. Maybe etags?)

Of course Nanit is a popular and successful product that many parents swear by. It just pains me to see cloud based in-home audio/video storage being so normalized. Self-hosted video isn't that hard but no one makes a baby-monitor centric solution. I'm sure the cloud based video storage model will continue to be popular because it's easy, but also because it helps justifies a recurring subscription.

edit: just noticed an irony in my comment. I'm ranting about Nanit locking users into their 3rd party cloud video storage, and the article is about Nanit's engineering team moving off a 3rd party (S3) and self-hosting their own storage. Props to them for getting off S3.

sbrother 1 day ago||
As a happy customer, I picked nanit because it actually worked. We didn’t even use the “smart” features, but “you can turn on the app from anywhere you happen to be and expect the video feed to work” is unfortunately a bar that no competitor I tried could meet. The others were mostly made by non-software companies with outsourced apps that worked maybe 50% of the time.

I wish we could have local-first and e2ee consumer software for this sort of thing, but given the choice of that or actually usable software, I am going to pick the latter.

varenc 1 day ago|||
I self host my "baby monitor" with UniFi Protect on UCG-Max and a G6 Instant wireless camera. It's more work to setup, but pretty easy for a techie. It has the "turn on the app anywhere and it works" feature, and with a 2TB SSD I get a month+ of video storage. Because storage is local, it doesn't need to compress the video and I get a super clear 4K image. And I use Homebridge to expose the camera over Apple HomeKit which is a convenient and a more user friendly way to access it. And HomeKit also gives you out-of-home access with a hub. I love my setup, but I couldn't in good conscience recommend it to a non-techie friend, especially if they're sleep deprived from their infant.

But I do miss the lack of any baby-specific features like sleep tracking. It has support for crying detection, but that's it.

theanonymousone 1 day ago|||
This is indeed far more of a "HN Style" comment.
rhinoceraptor 1 day ago|||
It calls back the classic, "you can already build such a system quite trivially": https://news.ycombinator.com/item?id=9224
varenc 1 day ago|||
Hah never thought I'd be compared to that legendary comment! It hits home for me because I worked at Dropbox for years. I did at least qualify that I couldn't in good conscience recommend my setup to non-techies :)

If you don't want a baby camera system that's also a part-time hobby...Nanit does seem like the best option. I just lament that the best option requires giving up so much.

rhinoceraptor 23 hours ago||
Don't worry, I also use Ubiquiti, and self-host Home Assistant on my TrueNAS :)

I have a little server rack cobbled together out of wood under my basement stairs, with a UDM Pro, 24 port POE switch, and an ancient Dell 2U poweredge for TrueNAS.

jen20 1 day ago|||
You really can trivially do UniFi protect. Barely even have to know networking. I have it along with vtech monitors, works flawlessly.
brabel 1 day ago|||
Not enough “anyone can set it up trivially“.
Ringz 1 day ago||
He missed the opportunity to mention the reverse proxy, firewall with geo blocking, VPS and WireGuard, Grafana and Loki setup.
anonzzzies 1 day ago|||
You joke but wireguard and, very easily, tailscale, solves most crap you normally need to fix. Close everything with ufw and put tailscale, and then you trivially have access from any device / desktop.
lukan 1 day ago||
"and you trivially have access from any device / desktop"

My definition of "trivial" seems to be different.

anonzzzies 1 day ago||
Ah yes, provided it has a web interface, but I kind of assumed that. I just go to http://house-porch/ etc and get streaming vid/sound.
varenc 1 day ago|||
I just rely on UniFi and HomeKit for out of home access! But you're so right I could also access remotely via my Wireguard server or Tailscale running on my ubiquiti console... Wish I could hook up baby events like "poop diaper" to Grafana.
me-vs-cat 7 hours ago||||
Regarding out-of-home access, I'll drop a note about connecting your phone to your home network with a VPN. Now you're always connecting the same way for this and everything else.

It's not perfect because wifi networks might block the VPN, but for the one wifi network I use the most, Wireguard on port 53 works splendidly, for now.

sbrother 1 day ago||||
Ok that’s really cool; I didn’t know you could set up Apple’s smart home thingy to forward a live feed to the cloud.
varenc 1 day ago|||
It's pretty cool! But homebridge is another service to run in a Docker container.. so even less user friendly. But it's definitely the primary way everyone that's not me accesses the baby camera. The out-of-home access requires a "HomeKit Hub" which can just be an Apple TV that's always plugged in. And HomeKit also has "HomeKit Secure Video" feature which is cloud based video storage, but with E2EE. But don't recommend their video storage really.
brabel 1 day ago||||
I have a smarthome setup I built myself using Lua and a Raspberry Pi. Anything it can do locally can be securely exposed on the internet via a service like netbird , which I use for free and is literally a command to get running, or tail-scale which I believe is harder to use. I don’t have video but I think that would work in that scenario as well.
skt5 1 day ago||||
I used to use the docker + homebridge route but it became tedious to maintain. Instead, I connected it via the Google Home integration (requires an Insights plan) and then use my existing Starling Home hub to access it via HomeKit. This seems to be more reliable and less work than before.
spockz 1 day ago||||
Alternatively you can setup a vpn with rules that automatically enable vpn when you try to connect to specific addresses. Works with Tailscale and on-demand VPN for me. This will work with any IP webcam.
close04 1 day ago|||
I have a bunch of cameras from various vendors, some with open FW, some with their original FW, all cut off from the internet. They used to be connected to Frigate but due to performance issues I offloaded the work to Scrypted on a RPi and an AppleTV and the setup works great. It was easy to set up and it's easier to use than any other app, assuming you are into the Apple Home ecosystem.

It's not really self hosted since it relies on Apple but it's the least evil at this point. Giving unencrypted video and audio to some company (if what OP says is right) would be way beyond my risk tolerance point.

ChicagoBoy11 1 day ago||||
I unfortunately did spring for a Nanit, but am keen to stop paying the subscription... any pointers of a resource you'd encourage me to look at to try to the same thing you did?
varenc 1 day ago||
Definitely! For self-hosted as a product I think Ubiquiti's Unifi Protect is easiest. (but there's free software options like Frigate)

You just need a console (NVR) and the a camera. Here's what I use:

- https://store.ui.com/us/en/category/cloud-gateways-compact/c...

- and a wireless camera: https://store.ui.com/us/en/products/uvc-g6-ins

and the camera has a standard 1/4" female thread mount, so also a stand to hold the camera. And in the UniFi protect setting enable "Hallway Mode" to rotate it 90 degrees to get the length of baby.

ChicagoBoy11 1 day ago||
Thank you so much!
matt-p 1 day ago||||
You've still had to buy a proprietary system, it just happens to run locally? Not really much better is it.
eqvinox 1 day ago||
Sure, not perfect, but quite a bit better. Getting from A to Z involves a few letters inbetween...
metmac 1 day ago|||
I came here to say, this is exactly what I do also.

Unifi accidentally made a fantastic baby monitor.

The recent APIs they’ve built makes me hopeful that I could run an AI model against the footage eventually and build those Ai features for myself.

varenc 1 day ago||
I've been exploring this! Have tried Frigate and SCrypted. With their API it's easy to connect the camera to anything. Haven't got any useful AI models running. What I'd love is sleep tracking.
vachina 1 day ago||||
What competitor have you actually tried? My girlfriend’s parents have a few cheap TPlink solar powered CCTV and they work flawlessly since setup. I used to jerryrig an Android phone for Alfred and that too worked well.

My impression is live feed is a solved problem.

sbrother 1 day ago|||
I tried a high end Philips one and a Nest camera. Both were way less reliable than the Nanit. Possibly because they didn’t play nicely with my mesh WiFi at home. But regardless I just wanted to vouch for Nanit’s software, whatever they are doing with their networking and UX is really good.
jaas 1 day ago|||
Their networking is awful in my experience. The WiFi chip is cheap crap, extremely sensitive, cuts out a lot, and doesn’t support WPA3.

I had to set up a dedicated Nanit-only AP in my house in order to stabilize the connection. It would not work any other way, tried many different configurations, even other APs.

ycombinete 1 day ago|||
Beware of Philips in general: https://www.youtube.com/watch?v=WE58YisgFeQ

They've mostly sold off bits of themselves, and/or licensed their name to other producers. It's highly unlikely that Philips actually made that camera.

sandGorgon 1 day ago|||
i have a tplink as well and can vouch for it. it has iphone and android apps and can show live feed. mine costed 30$ and free live video.
jrochkind1 1 day ago||||
> you can turn on the app from anywhere you happen to be and expect the video feed to work

if i'm understanding "anywhere you happen to be" right: Real question -- I'm not a parent. What is your use case for wanting to monitor your baby remotely from a different location than your baby? Obviously someone is with them at the house or location with the baby! You don't trust em? Or just like seeing/hearing your baby when you are out?

I see why a baby monitor in general is helpful so you can be in another room in the house and still keep an eye/ear on baby, but obv someone has to actually be in the location with the baby! (and the monitor at least needs to be on the wifi, right? So the monitor is in a place you have network access to, yes?)

sbrother 1 day ago|||
It's a reasonable question! I'm past the baby monitor stage now, but when we used our Nanit from a different network it was for things like:

* Doing garage or yard work where Wifi coverage was spotty. May seem like an edge case but remember that when baby is sleeping is exactly when you want to be doing things like yard work.

* Hanging out across the street cooking out with the neighbors while baby sleeps

* Having a couple drinks at the hotel bar on vacation after baby goes to sleep. You're only ~30 seconds from your room if baby wakes up, but it's nice to not have to sit in a dark room for the whole evening after 7pm.

varenc 1 day ago|||
It's true! my recent real use case:

- I'm at a small party 1 block away. Baby is sleeping in the bedroom with mama but I'm trying to protect her sleep. I listen to baby with an airpod in my ear at the party. If baby shows signs of waking I come back and either bottle him or help mama feed him.

Also just because I'm out of the house and miss my baby and want to stare at him...

bialpio 1 day ago||||
I have 2 free-roaming rabbits in one room of the house, we've been using Eufy camera to access live feed and found no issues with it, definitely would buy again. And the SD card recording allows us to seek a couple days into the past - it is pretty fun to watch the rabbits scramble to the automatic feeder at the set time.
gambiting 1 day ago||||
My £15 TP-Link camera that we use as a baby monitor works 100% of the time. I can use it completely locally too with nothing sent to their servers at all, or use it through the internet if I want to. Got 4+ years of continuous use and counting, with zero issues.
vlovich123 1 day ago||||
The vtech camera is working well enough for me for what it’s worth. But any such app solution generally implies transfer through the company’s servers.
hippo22 1 day ago|||
It seems possible to establish a p2p connection with the camera where the company servers act as a broker.
sbrother 1 day ago|||
Yeah that’s fair, we had one of those too which absolutely did everything it advertised. The nanit is a different product that doubles as a home camera that lets you monitor your home while you’re away. Its software/networking is impressively reliable.
huflungdung 1 day ago|||
[dead]
chrismorgan 1 day ago|||
> Every Nanit user is uploading video and audio of their home/baby live to Nanit without any E2EE. It's a hot mic sending anything you say near it to the cloud.

Your way of phrasing it makes it sound like it would be fine to upload the video if it were end-to-end-encrypted. I think this is worth clarifying (since many don’t really understand the E2EE trade-off): E2EE is for smart clients that do all the processing, plus dumb servers that are only used for blind routing and storage. In this instance, it sounds like Nanit aren’t doing any routing or (persistent) storage: the sole purpose of the upload is offloading processing to the cloud. Given that, you can have transport encryption (typically TLS), but end-to-end encryption is not possible.

If you wanted the same functionality with end-to-end encryption, you’d need to do the video analysis locally, and upload the results, instead of uploading the entire video. This would presumably require more powerful hardware, or some way of offloading that to a nominated computer or phone.

johnisgood 1 day ago|||
Exactly. There is no video analysis if the video is encrypted and they cannot decrypt it. If there is E2EE and you expect them to do the video analysis, they need to be able to decrypt the video. Alternatively, you do it locally, but then why bother uploading anything at all, encrypted or not? So ultimately E2EE would not help here at all.
varenc 1 day ago||||
It's true. But nanit only gives you things like sleep insights if you buy their $200 stand and pay for a bigger subscription. Many users aren't making use of this. They do provide motion alerts, but those could happen on device.

Apple has done some interesting this with privacy-centric cloud processing. Might be some way to eventually get the benefits of cloud based detections without revealing your video.

also my other gripe is they also store audio. Which personally I feel like is even more sensitive. Wish their was an option to allow live audio listening but not store any audio in the cloud.

jen20 1 day ago||
Then you’d have to trust that the option does what it says on the tin. My default for companies besides Apple is not to, too many scumbags have poisoned the well.
BrandoElFollito 1 day ago|||
In other words, E2EE requires two or more clients, and only on these clients the information is in clear.

In the case of this product, there is only one client (and a server).

E2EE bills then down to having the traffic encrypted like you have with a https website.

MathiasPius 1 day ago|||
Technically there are two clients: The camera and whatever device is used to access the feed.

I can absolutely imagine an architecture where video can be streamed in an encrypted manner, or stored in encrypted time-stamped blobs, allowing the server to provide rough searching, and then the client can perform fine-grained scanning.

This obviously doesn't enable any kind of processing of the video data on the server side, and doing it on the receiving client would require the feed to be active This means that any kind of processing would almost necessarily have to happen on the sending device, which would probably increase the power and compute requirements by a lot.

danudey 1 day ago||
Yeah, the entire point of this seems to be "we'll watch your baby monitor and provide alerts if something happens". That requires either processing on a server (as they do), processing on the uploading client (the camera), or having a receiving client which is constantly receiving that data and analyzing it to provide alerts.

The third option is unreliable because if that "client" (a desktop app, a phone app, etc.) dies, then the process stops working completely. The second option is unreliable because if you increase the cost of the camera then most users will buy the other camera because everyone is financially constrained these days.

That basically just leaves the first option as the only practical one at an appealing price point.

d1sxeyes 1 day ago||||
I think the point is that effectively this is E2EE due to TLS, because the server is expected to be able to decrypt the data (and so is one “end”).

That’s not what most people expect though.

pcl 1 day ago|||
No, this doesn't get at the point of end-to-end encryption. Better to look at it in terms of the parties involved -- E2EE implies that there are two or more parties, and that only some of those parties should have unencrypted access.

In the case in point, the parent (camera owner) is one party and Nanit is another party. (Prior to the work in the linked post, AWS S3 was another party). The goal of E2EE is to deny plaintext access to some of these parties. So, in an E2EE deployment, Nanit (and AWS) would not have unencrypted access to the video content, even though they're storing it.

As chrismorgan pointed out, if Nanit did not have access to the unencrypted data, they could not do server-side video processing.

(Also, FWIW, there are multiple clients in this scenario -- the parents' phones are clients, and need unencrypted access to the video stream.)

(As an aside, where I used to work, we did some cool stuff with granting conditional access to certain server-side subsystems, so that the general data flow was all end-to-end encrypted, but customers could allow certain of our processes to be "ends" and have key access. This was really elegant; customers could dial in the level of server-side access that we had, and could see via the key authorization metadata which services had that access.)

close04 1 day ago||
Here is an example of how video can work with "user friendly" E2EE: https://support.apple.com/guide/icloud/icloud-homekit-secure...

> It’s all end-to-end encrypted

> The video is privately analyzed by your home hub using on-device intelligence to determine if people, pets, or cars are present.

You can use a cloud provider's infrastructure without giving it access to your material. My devices generate the content, my devices do the processing and analysis, I consume the content. The cloud just coordinates the data in flight, and stores it at rest, all encrypted. It's possible but most companies don't bother because they have to put effort and their "payoff" is that they can't monetize your data anymore.

cbg0 1 day ago|||
> Self-hosted video isn't that hard

Self-hosting video is not something the typical user of a baby monitor would ever even consider.

gblargg 1 day ago|||
A microSD card in the camera, like most others use?

From the product description though it sounds like sleep analysis is what you're paying for, which they do on servers analyzing the video.

renewiltord 1 day ago||
Yeah but the reality of the microSD card is weird. E.g. Eufy puts the video on the card but encrypts it so you have to pull it through the camera through the app to your phone.

It's hilariously crazy but we were given the cams as a gift so we stuck with them.

gblargg 1 day ago||
That's always annoyed me about Eufy, but it hasn't been a practical problem given they're mounted in hard-to-reach areas. I think the feature is to avoid a thief being able to view the footage. I like that they support RTSP access for a NAS/live viewing without their bloated app.
varenc 1 day ago||||
I meant more that in the abstract technical sense it's not that hard of a problem, but I agree that given the options available to consumers it is hard.

If UniFi Protect was re-skinned and had a bunch of its security camera complexity removed and optimized for the baby-camera use case it'd be normal consumer level friendly.

globular-toast 1 day ago||||
My parents bought a camcorder in 1995 and "self-hosted" the video just fine. But you're right it shouldn't even be something consumers should consider, because it should be the default and should be easy. You can get low power SSD-powered NAS devices now so hopefully this will change soon.
unethical_ban 1 day ago|||
Extraordinary claims require extraordinary evidence.

I'm not leaving a baby at home while I go on vacation. I would never be on another network, even. Why need the cloud?

sokoloff 1 day ago|||
Because it’s easy and convenient for new parents.

The typical parent has never heard of Synology or Ubiquiti, doesn’t have a NAS, and gets whatever tech their ISP gave/rents them.

skrause 1 day ago|||
The baby monitor could have its own SD card and webserver and then you provide a smartphone app which uses local network discovery to find the server and talk to it.

In that case no parent needs to know about Synology or even IP addresses.

krisoft 1 day ago||
> In that case no parent needs to know about Synology or even IP addresses.

But they need to know about networking enough to be on the same network. I understand that sounds easy, but every time someone gets confused about their cursed setup the company making the device will get a returned product and an angry review. Client isolation, multiple wifi networks, some devices being on wifi some on the mobile network.

chipsrafferty 1 day ago||
Companies are making it harder and harder to use, or at least to understand how to use, your own network for anything other than "get Internet on device"
threetonesun 1 day ago||||
It's much easier and less stressful to put your baby to sleep and (maybe) have a radio monitor. More technology does not inherently decrease stress.
unethical_ban 1 day ago||||
There is no technical requirement for an easy-to-use baby monitor to be cloud-connected. If there is no easy-to-use baby monitor which is not cloud-connected, that is a market problem, not a technical problem.
Aurornis 1 day ago|||
> There is no technical requirement for an easy-to-use baby monitor to be cloud-connected.

A common use case for baby monitors is being able to wander short distances away and still listen in: Work in yard, talk to a neighbor, go out to the detached garage.

Having a baby monitor which is not tethered to the WiFi coverage is a selling point. Many cheap monitors are WiFi connected or use their own WiFi network and the range is limited.

A lot of people in this thread are also completely missing the selling points of Nanit which include breathing tracking and sleep tracking features. It’s a product that could technically be implemented locally with enough extra processing power and cloud servers for coordinating out of home access and bouncing notifications, but obviously the number of people who would pay extra for that (instead of trying to roll their own solution HN style) is not large.

GMoromisato 1 day ago|||
Agreed. Maybe the market for easy-to-use, self-hosted baby monitors doesn’t exist.

I’d least I never heard a parent complain that their biggest problem dealing with a baby is lack of E2EE.

chii 1 day ago|||
It's more that a typical parent has not thought of the need to have a baby monitor, until they have a baby (in which case, they're too busy to build out their own baby monitor stack).

Pay money to solve a problem and time-save as a parent is a valid business idea/strategy. The externalities that the parents might suffer if these businesses do not completely adhere to good security practices don't seem to come back to bite them (and most parents get lucky and not have any bad consequences - yet).

mrweasel 1 day ago|||
Maybe you want it to be easy to grant a babysitter access to the cameras temporarily and not bother getting them VPN'en into your CCTV network.

Maybe you want to check up on the babysitter (as creepy as that sounds, there might be good reasons). Or you're traveling but your partner is home, and you want to be able to see your sleeping child from half a world away.

I do think we've gone to far in the direction of cloud-only, but I don't think it's a bad option of have. The problem I have is that many of the companies running these services have really terrible security. So for S3 for a nanny cam, I'd assume that each customer have their own bucket, with their own credentials, but I doubt that's the case.

lukan 1 day ago||
"and you trivially have access from any device / desktop"

I hope you do tell them in advance. Secret surveillance is indeed in the creep territory.

Aurornis 1 day ago||
This baby monitor is mounted over the crib. Any checking up would see the crib and the baby. Parents checking on their crib is not creep territory.
lukan 1 day ago||
"Maybe you want to check up on the babysitter"

Not sure about your setup, but I replied to this.

kdamica 1 day ago|||
We've used an offline Infant Optics baby camera for three kids and have never wished for any of the smart features that online cameras offer. You really just want to know whether they are asleep and when they are crying. I just don't see a good use case for recording all that video for most kids. (I'm sure there are special needs situations where it is helpful)
bee_rider 1 day ago|||
I actually don’t really get the point of a cloud service for this. Aren’t babies usually left in situations where there’s at least one trusted adult locally available?
Aurornis 1 day ago|||
Yes, a parent is always around. The part you might be missing is that the parent doesn’t want to have to limit their movements to areas where WiFi coverage is good.

Many cheap baby monitors are WiFi connected. You have to haul the video unit around and keep it live to hear when it cuts out, then move back toward where WiFi coverage was good.

This won’t seem like a big deal to someone who lives in an apartment or who has a house with 7 Ubiquiti APs covering everywhere inside and out, but it is a big deal to a parent who has a single WiFi router and wants to be able to do something like pull weeds in the yard, have a conversation with the neighbor, or go to a detached garage and work on a project without having to worry about their exact WiFi coverage at every moment to check on the baby.

hobofan 1 day ago||||
The "point" of the cloud service is that it's sadly usually the easiest way to create a [on-premise-device]<->[user's smartphone/laptop] for B2C/residential deployments of appliances (like the baby monitor in this case).

It's much easier to create a device<->internet connection + a smartphone<->internet connection that it is to deal with the myriad of issues that occur if you try to do local device<->smartphone connections in networks with unknown topology and quirks (e.g. ISP provider being overly conservative in their firewall presets). If that in general would be a more trivial issue you would see less cloud services.

(You would probably still a similar amount of cloud services due the increased monetization options, but this would level the playing field for local-only options.)

ghm2180 1 day ago|||
Why is it hard for a local device to expose a REST API from home —a DDNS updater could update IP address for a cname — and then access all the local data local_device(REST API) <> Smartphone?
philipallstar 1 day ago||
I would imagine these were the reasons:

- most people want to build lovely structures in the cloud, as it's hard to fix bugs in software on devices

- you'd need to open up a firewall on the home router

- auth might be tricky

- can't bolt on value added "enhancements"

cube00 1 day ago|||
Hopefully as IPv6 gets more adoption we'll be able to open up some of these services, although IoT devices never get firmware updates so they'll have to sit behind Wireguard so maybe not.
JCM9 1 day ago||||
It’s an over engineered solution to a, relatively, simple problem of access long the device on the local network. This used to be a hard problem to solve but in 2025 I’d question why they’re going through the headache of all this cloud stuff when they could just build a quality device that runs locally with a simple base station that triggers alerts. They only hosting they really need is something to send alerts to an app.
avereveard 1 day ago||||
Leading cause of death under one year is sudden infant death syndrome which happens mostly at nap time, situations where the adult may need rest, self care or housekeeping. You cannot fathomly watch an infant 24/7 especially if one parent is working and there's minimal support sistem (living far from relative, working grandparents etc)
breakingcups 1 day ago|||
"Measures not shown to be useful include positioning devices and baby monitors."

https://en.wikipedia.org/wiki/SIDS

avereveard 1 day ago|||
you quoting wikipedia? lol.

ox and hearth rate baby monitor definitely alert on sids. prevent, no, and that's why they are not medical devices, and wouldn't make sense to pay a randomized controlled trial to certify as one.

works? yeah. hearth stops beating, ox goes under parameter, parents get an alert.

here's the FDA statement about it https://www.accessdata.fda.gov/cdrh_docs/pdf22/K222597.pdf

lupire 1 day ago|||
That statement is ambiguous with regard to automated video analysis.
thaumasiotes 1 day ago|||
Yes, the normal solution to wondering how a baby is doing is to look over at it.
afro88 1 day ago||
24/7?
ragebol 1 day ago||
> There is usually no noise or evidence of struggle

from [0]

https://en.wikipedia.org/wiki/SIDS

So, 24/7 kinda, yeah... Realistically, the risk is relatively low I'd say, so to still stay a functioning parent with other duties (for baby or otherwise), you don't look 24/7

Aurornis 1 day ago|||
> You must spend an additional $200 on a Nanit floor stand if you want sleep tracking. This is purely a software limitation since there's plenty of other ways to get an overhead camera mount. (I'm curious how they even detect if you're using the stand since it's just a USB-C cable. Maybe etags?)

I made a simple wood mount and painted it to match the crib. It worked well. There was no software enforcement requiring you to buy their mount at the time. Has this changed recently?

lunias 1 day ago|||
You'll never convince me that the term "cloud" came into existence for any purpose other than to separate itself from "the internet". That way, normal people who were very steadfast for years about not putting personal information on the internet would start putting their personal information in the "cloud".
afro88 1 day ago|||
> Self-hosted video isn't that hard but no one makes a baby-monitor centric solution

It sounds like they're not hosting it though. They are processing it, and storing it temporarily while it's queued.

A fully self hosted AI powered baby monitor that accurately detects sleep states and danger situations would be incredibly expensive today. Maybe not in a few years though.

sintax 1 day ago|||
Now imagine all that video/audio footage being used/sold for AI training data.
mherkender 1 day ago|||
I run a Unifi Protect setup, local only.

They don't provide a display, so I put a Raspberry Pi, a display, and an audio hat in an enclosure. It plays an rtsp stream from the camera at startup and works pretty well.

JCM9 1 day ago||
+1 for Unifi. They’ve added “baby crying” to the audio monitoring for triggering alerts. Everything is kept local on your LAN. Can access remotely via an app if you wish, but that’s simply accessing the device on your LAN so no dumping all your footage into some random “cloud.” Stuff just works and requires no subscription so all your money goes towards better quality hardware.
spockz 1 day ago|||
We just used ipcams with our kids. Now with ubiquity it is dead simple to setup also storage for it. I think synology supports anything that emits rtsp.

Baby monitors around here -Alecto is a popular brand - cost twice as much and have only half the capabilities.

mschuster91 1 day ago|||
> Self-hosted video isn't that hard but no one makes a baby-monitor centric solution.

It's not that easy. The only usecase that is actually really fucking easy is when both the camera and the device trying to access it is in the same network - broadcasts for discovery, that's it. Although I've seen people turn on "client isolation" in their wifi back when I did computer repairs, so it's not a given that this works!

But as soon as that assumption goes out the window - and if it's just you going into the garden to check on some weeds where the wifi doesn't reach - the task suddenly becomes so, so much harder:

- the "easiest" case is an ISP that hands your wifi router a globally routed IPv4 address, allows UPnP to be configured, and the user has UPnP configured. All that the camera has to do here is to request a port opening and that's it. Still, you as manufacturer need a server to store a mapping between user, IP address and port. (And you need to hope that the user's mobile device or their ISP doesn't have a nasty firewall blocking non-standard ports)

- No UPnP? Now you as manufacturer either need some STUN/TURN server or explain to the user how to manually enable port forwarding.

- Worst case: the user's ISP either has IPv6 only, CGNAT, double/triple/... NAT or similar shit in play because they don't have enough IP addresses to supply to their customer base. That's pretty much impossible even with STUN/TURN, sooo many ways for things to go wrong along the path.

- even a theoretical fully IPv6 world where everyone has globally routed IPv6 addresses everywhere and all ISPs have their routing working still wouldn't solve the issue... because consumer ISP routers enable a firewall on IPv6 to avoid stuff like "online game cheaters 0wning their opponents running an outdated version of their game".

The sad reality is, running a cloud service is the only actually pain-free way for any given smart Thing to work as the customer expects it.

And on top of that, a NAS capable of storing video costs about 300-ish bucks with a HDD capable of running 24/7 and eats about 10-ish watts of electricity, which is quite the cost factor on its own.

Sure, the "nerd population" here on HN can rig something up that works in a matter of a few days, including some rudimentary AI to spot if the baby managed to escape the crib. But the 99% of people out there will crash at the "please open your router's config page to allow UDP port 65535 passthrough" step, if only because they forgot the password that they set five years ago.

Aurornis 1 day ago||
> But as soon as that assumption goes out the window - and if it's just you going into the garden to check on some weeds where the wifi doesn't reach - the task suddenly becomes so, so much harder:

Exactly. There are a lot of comments in this thread from people who are either non-parents or who haven’t lived in a situation where they didn’t have perfect WiFi coverage of their entire living area.

Being able to visit the neighbors or go out in the yard without worrying about missing baby monitor events is a huge advantage that many parents will pay for.

I think this entire comment section is a prime example of HN not understanding non-technical audiences.

mschuster91 1 day ago||
> Exactly. There are a lot of comments in this thread from people who are either non-parents or who haven’t lived in a situation where they didn’t have perfect WiFi coverage of their entire living area.

... and from people who take care of configuring their entire smart home crap of their entire relatives. In Germany we have a joke roughly translated to "Christmas is the time of the year where the children come back home to fix their parents' computers" for a reason - but a lot of people don't have family or friends who can deal with getting stuff set up.

The average user isn't competent enough to deal with a setup flow more complicated than "install this app, scan this QR code on the device, enter your wifi password, that's it". The user neither knows nor cares to know that the Thing sets up a temporary wifi access point (whose credentials are in the QR code), gets the home wifi credentials via a small API endpoint, tests the connectivity and then shuts down the temporary wifi. For them, it Just Works.

jen20 1 day ago|||
This is the reason I refused to buy Nanit cameras, instead opting for unconnected models. E2E encryption is table stakes.
hshdhdhehd 1 day ago||
By the way you dont need a video (or hell even audio) baby monitor. Source: 2 kids.
glitchcrab 1 day ago|||
Of course you don't _need_ it, but it's a useful convenience. Due to the layout of our house it was quite hard to hear my toddler if he was crying in the middle of the night - we often wouldn't wake up to it. So the monitor was very helpful.
rpcope1 1 day ago||
Why on earth do you need an app and a camera? The same basic VTech audio monitors that are basically the same for many decades now work great, don't cost a fortune and there's no question of "where is this data going?" It's all just a big cash grab for people who need chincy tech toys for a non-problem that's better solved with way more simple kit.
glitchcrab 1 day ago|||
You misunderstand; we're on the same wavelength. I'm not talking about an app, I'm talking about a basic audio baby monitor.
Aurornis 1 day ago|||
> Why on earth do you need an app and a camera?

The comment you’re replying to literally started by saying you don’t need it.

NetOpWibby 1 day ago||||
Same here. I wonder if the market is for first-time parents and people who work 8+ hour days.
wltr 1 day ago||
I used to work with my laptop, sitting near my baby. Also, I used a timer to follow 45m sleep patterns, so technically there’s no need to react to anything within first 45m, but most times first 1h30m (45+45m).
jen20 1 day ago|||
Of course you don’t need it. But it’s very useful, especially living in a house with a layout that doesn’t lend itself to hearing a pin drop in the next room.

The v-tech ones are fine though. No need for anything with an Internet connection (though some of them even do now).

Source: also 2 kids.

tonyhart7 1 day ago|||
"Self-hosted video isn't that hard but no one makes a baby-monitor centric solution"

I don't understand this attitude, sure its easy for some people but MOST people want an easy out of the box solution

its nothing wrong with that

jrochkind1 1 day ago||
What a great and helpful write-up, love when people share things like this so I can learn.

It's less about whether I would have a use case for this exact thing (or whether or not it was appropriate for this use case, i dunno, prob don't have enough context to know).

More just seeing what is possible, how they thought about it and analyzed it, what they found unexpected and how, etc. I learned a lot!

swiftcoder 1 day ago||
This feels like they were using the wrong architecture from the start, and are now papering over that problem with additional layers of cache.

The only practical reason to put a video in S3 for an average of 2 seconds is to provide additional redundancy, and replacing that with a cache removes most of the redundancy.

Feels like if you uploaded these to an actual server, the server could process them on upload, and you could eliminate S3, the queue in SQS, and the lambdas all in one fell swoop...

_el1s7 1 day ago|
Yes, it's simple, S3 is for storing objects, not for processing.

Don't know how they came up with such a bad and complicated cloud design for something that is straight forward.

chatmasta 1 day ago||
It’s a pattern prominently featured in AWS docs… upload to S3, react to CloudEvent in SQS, download and process with Lambda, upload back to S3…
dboreham 1 day ago||
Docs written by people who make more money the more services are consumed...
freak42 1 day ago||
They saved $500k on what total sum? $500'001 or 55'000'000? Without this info the post is moot.
coleca 1 day ago||
That's a great point. Sometimes we look for architecture or technology solutions for a problem that could be easily solved at the sales level by negotiating a PPA (Private Pricing Addendum) with AWS.
bdcravens 1 day ago||
I suspect it's a massive amount, as S3 is one of the cheaper services. As we evaluate moving all of our compute off of AWS, S3 (and SQS) are probably services we'll retain because they are still amazing values.
anarsdk 1 day ago||
Sounds like the title should have been

> We used S3 even though it wasn’t the right service

Gasp0de 1 day ago|
Exactly, my first thought was "Why in earth would anyone think that S3 was the right service to store millions of tiny ephemeral files?" and now it seems they have invented their own in-memory store instead of just using something like Redis. I also wonder what happens if their DIY thingy crashes, are the videos lost? Why not send to Kinesis or SQS in the first place?
alex_smart 1 day ago||
From the article, individual video segments were 2-6 MB in size and SQS and Kinesis have a 1MB limit for individual records so they couldn’t have used either service directly. At least not without breaking their segments into even smaller chunks.
Gasp0de 1 day ago||
You're right, I didn't pay attention there. Still seems that there a many solutions better suited than S3. Probably a classic case of "We need an MVP fast, let's optimize later".
JCM9 1 day ago||
The article strikes me as a self congratulatory solution to solving a problem that they could just have avoided entirely by instead selling hardware with local video storage. Lots of options for doing that efficiently and inexpensively in 2025. Hosting everything in the cloud like this is a 2015-era solution.
ruperthair 1 day ago||
This may be an obvious point, but I didn't see it mentioned in the (otherwise excellent) article: I would have been interested in the cost saving in just implementing the 'delete on read' with S3 that they ended up using with the home-made in-memory cache solution. I can't see this on the S3 billing page, but if the usage is billed per-second, as with some other AWS services, then the savings may be significant.

The solution they document also matches the S3 'reduced redundancy' storage option, so I hope they had this enabled from day one.

dmje 1 day ago|
I’m sufficiently old / sensible (you decide) to think that uploading video of your baby (to anywhere) is fucking weird and fucking spooky and not needed anyway. This is a solution that doesn’t have a problem. Worse: it prays on parental / young parental fears. There’s nothing here - this is not a product that’s needed. You don’t need to “track” your baby, ffs. You don’t need to watch it while it sleeps. You don’t need “every breath, seen”. People have been having babies for fucking centuries without entering them into this hyper weird surveillance state at birth.

What an appalling screwed up world we seem to have manufactured for ourselves.

ramraj07 1 day ago||
Of all the hills to die on w.r.t. how the world is screwed up, this seems like the silliest.

Different folks parent differently, culture evolves. You're free to have your "old school" thoughts as are people who use services like this.

Its not like they're publishing it in public. The service in discussion especially just stores it in the server only temporarily to use ML to detect things such as sleeping or crying. Sounds innocuous to me.

Many of us can do the math ourselves and choose to make choices based on our own beliefs. That's true freedom.

dmje 1 day ago|||
Oh, I’ve got many, many hills to die on. But at some level this is to me symptomatic of two broad things - maybe these are bigger hills:

1) a business making (seemingly) huge profits from the fears of others; more specifically from the fears of young parents who are quite often vulnerable. And, I’d suggest, offering a “solution” with no problem attached to it apart from that fear. Not to mention the issues around privacy, the fact that however many “it’s safe and encrypted” services get hacked, or sold on when the IPO comes around.

2) As another commenter says below - this is symptomatic of a type of parenting which ultimately creates fearful, anxious, badly adjusted children. Study after study shows that “free roam” children end up as better balanced humans. I’m not saying that watching and monitoring and stat-ifying your newborn is immediately going to make them anxious, but it says something about parenting which to me is unhealthy, obsessive, and ultimately not about freedom for the most important beings here: the kids.

I’m extrapolating of course, but hopefully my drift is somewhat clear..

ramraj07 1 day ago||
You're definitely extrapolating, and honestly in my opinion in the worst possible direction. At a fundamental level, I personally believe that the generations raised in the previous half century (50s till 90s) are the most coddled, selfish, populations in the history of humanity: no major calamity or war, or pandemic, or anything really. Kids did enjoy insane freedoms and dangers but in retrospect doesnt look like they became responsible adults, in my opinion, electing autocrats around the world and destroying the planets future with warming all because their mollycoddled statistical anomalies of time periods didnt prepare them for any real consequences of their actions.

So I do think people from these generations should just focus on retiring, stop voting evil people into positions, and looking up latest alzheimers research, which btw was derailed by the same type of free range kid turned scientists from the greatest generation or whatever.

Its a baby monitor. Not some clockwork orange contraption.

dmje 1 day ago||
Wow. And you guys seem totally balanced…
4gotunameagain 1 day ago|||
> Different folks parent differently, culture evolves.

You are framing it as if every change is in a positive direction, which it clearly isn't. Risking at sounding like an old man yelling at clouds, look at the kids these days. They are so dependent, and so sensitive to negative stimuli or emotions.

Parents need to realise that they need to grow adults, not perpetual kids.

ramraj07 1 day ago|||
Id take the sensitive kids these days over whatever child rearing practices created the adults of today who vote evil people in and destroy the planet due to wanton selfishness.
Capricorn2481 1 day ago|||
> look at the kids these days. They are so dependent, and so sensitive to negative stimuli or emotions.

I think many of us have found people writing comments like this are not interacting with children very much. More just reading the takes of others who also don't interact with children.

And if this was a legitimate problem to address, you would not address it by taking away baby monitors.

4gotunameagain 1 day ago||
The topic of the conversation widened a bit from baby monitors. I of course do not advocate that taking away baby monitors will fix our dilapidated societies.

And while it is certainly true that I don't interact with young children a lot, the case is different for older ones or "young adults".

More comments...