I agree that local storage is important. If you want it stored offsite, you should achieve this via replication, not recording directly to an offsite location only.
I think my solution is quite nice if you want local storage but (like me) don't want to purchase a NAS or have something that would take up a lot of space. But might be more technical than the OP is interested in because it uses Linux and Raspberry Pis. I did the following because I think the software is fantastic, and the setup doesn't take up much space:
Dahau PoE cameras (but brand doesn't really matter as long as ONVIF compliant). Local recording on 2x Raspberry Pis, each with a USB drive attached for storage. NX Witness for the VMS software. The two Pis replicate the data between them in real-time, so a single drive failure doesn't result in archive loss (this was cheaper than purchasing a NAS with RAID). NX Witness is setup as a single "System" in fail-over mode, so if one Pi dies the cameras fail-over to the other one. I also have high endurance SD cards in each camera as an additional fallback.
If you're paranoid (like me) you can backup to an offsite location as well, this is done via the NX Witness software but they don't offer cloud storage so you need to organize your own offsite storage and (preferably a secure connection, like an IPsec VPN, to access it).
No port forwarding or UPnP is required to access the system from the Internet.
NX Witness is more easily installed on Windows, but since I was using Raspberry Pis that wasn't an option for me.
I also have a Ring Video Doorbell, and have discovered they use a closed standard and aren't ONVIF compliant - so I can't record from it to local storage or view via NX Witness. And if the Internet goes down so does your doorbell! One day I'll look for an ONVIF compliant PoE video doorbell to replace it and integrate with NX Witness.