Personally, I love NextCloud as a contacts/calendar storage. I have an instance from a cloud provider, I use DAVx5 [1] to sync with my Android phone, and I set up a CalDAV account on my MacOS, so I can see nextCloud calendars on Calendar.app. Sadly, NextCloud's CardDAV doen not seem to work on macOS, but that's a relatively minor issue.
[1]: https://www.davx5.com/