Is there a reasonable, open-source, distributed Facebook alternative?

I presume built on top of RSS / Atom / something feeds that are available only on authentication (so I can share with limited sets of people.)

I presume I have to keep running a server to host content. Maybe I can host encrypted content for my friends, too? So, federated. Maybe it even makes it easy for me to bill them, if the costs are prohibitive?

I'm pretty sure I'd want an Android App to talk to it. The Android app would talk to all of the servers that host my friends' contents.

It doesn't let me share with "Friends of Friends" directly. My friends would have to Reshare, I guess. And then I guess I can't interact with them.

Not sure how I want conversations to work. It'd be hard for me to offer a server to my friends, without me having access to their social data.

Maybe everyone needs their own server?

Diaspora[0] and Hubzilla[1] exist, but never really caught on for various reasons, possibly nothing more than that they came out too soon.

There is a project to build a Facebook replacement that federates with ActivityPub[2], which would make it to Facebook what Mastodon[3] is to Twitter. However, I don't want to link it because it's in too early a stage to face HN levels of scrutiny.

There is also Patchwork[4], a peer-to-peer social application built on top of the Secure Scuttlebutt Protocol. It doesn't have all the features you'd want yet, but ticks off the boxes some people care about.

[0]: https://diasporafoundation.org/

[1]: https://project.hubzilla.org/page/hubzilla/hubzilla-project

[2]: https://activitypub.rocks/

[3]: https://joinmastodon.org/

[4]: https://github.com/ssbc/patchwork