Recently I've explored options for an "home server", some kind of appliance hosted at home (eventually on a dedicated RaspberryPI) and able to deliver some useful service for daily tasks. Given that the once promising FreedomBox project has become a strongly opinionated selection of random applications, and many other projects have strictly defined use cases (e.g. Kodi and Rune), the most obvious choice is NextCloud. Which indeed is conceived as a cloud application, and lacks some feature for proper home-based usage.
So, I've began to implement them by myself leveraging the provided API for custom apps.
First of all I've forged a small app to update dynamic DNS bindings, to permit easy access to the instance even from the outer network. Bonus: the abstraction interface to the DNS services has been packaged into a standalone PHP package, to permit easy reuse.
Create a NextCloud app is quite simple, more to come sooner or later.
(Hint for wannabe developers: background tasks executed by the "Ajax" scheduler are queued one after the other, if you add a job reload the page many times before get yours called indipendently from the expected timing. I've spent some time before figuring out why my tasks was not called).