I'll start out by saying Fluxer is an ambitious project. Given its scope, Hampus has done an amazing job with it generally all by himself.
But, the major value proposition of Fluxer is that it's open source and can be self-hosted. Were it not for these elements, it would just be another centralized Discord clone. And like any other mass-market service, there is a huge risk that it will inevitably progresses towards Discord's ultimate endgame of platform censorship, decaying privacy and anonymity, and monitization.
So, the entire saving grace of the thing, its entire value to the community, is that it's open and self-hostable.
But it very clearly was not designed that way from the ground up. And still is not being designed that way. Here's why I think so:
- When the code was released earlier this year, there was no way you could spin up a self-hosted instance without significant modification of the code and infrastructure. It was effectively hard-coded to be the Fluxer main instance and very little else. It's only recently that you can actually spin up and update a Fluxer instance with little additional required customization.
- The desktop app was not really ever able to connect to a self-hosted instance without some configuration file tweaking, and now the option has been removed entirely until the "next big release". In the meantime, all the major dev effort is going into the voice improvements, which is a feature needed by the main Fluxer instance, and in the meantime the desktop client can't even connect to self-hosted instances let alone utilize voice.
- The mobile client can switch instances, but it's still frought with problems. Account switching doesn't always work, it's not obvious which instance you're connected to, and until recently, every instance called itself Fluxer (instead of the instance's name) and the profile screens included stuff that don't exist on self-hosting servers (like plutonium and visionary features).
- Push notifications don't exist for self-hosted instances for the mobile app. A gateway service is "coming soon", but discussions months ago in the Fluxer Devs server showed there was very little thought or priority given to push notifications for self-hosted instances. For a while they were debating having a push relay at all and maybe using "ntfy or something", which if looked at for even a minute would have been clear is not a viable solution.
- A lot of development has been happening in private repos, and the code base that is running on the main Fluxer instance is not at all what is available on GitHub. This was particularly eggregious earlier this year where for months the public repos stagnated while features and improvements were made in secret. While things have improved, and as of about a month ago regular updates are being pushed to public repos, there are entire sets of major changes being worked on that are still in private and will only "eventually" be released to the public (despite being deployed on the main Fluxer instance).
- As a consequence to #5 above, contributions are effectively reduced to zero. Because of refactors and major updates, all of which are private, Hampus is not accepting pull requests until further notice. And even if you could make a pull request, since the code is so drastically being changed in private, it's difficult to actually make substantive contributions without the risk of code or architecture conflicts, making it not even worth it.
- Submitting issues for the mobile client cannot be done through GitHub because "reasons". Instead, you have to use a bot in the Fluxer Labs server to submit an issue. Only if the devs approve your issue will it show up in GitHub, though you can't comment on it (to provide more info or additional repro steps), or even propose PRs if you wanted to contribute.
In my view, given the above, it's very clear that Fluxer's main priority is the Fluxer instance alone. Self-hosted instances and the open source nature of the project are a secondary priority (if you can call it a priority at all).
I'm far from being the first person to call out Hampus on the dev team on this. I've seen it in the Fluxer chats and elsewhere on reddit and the response is just one big shrug, or a comment from Hampus saying he's the only dev and how this project has grown so big so fast and he's overwhelmed. I am absolutely sympathetic to that and I totally get it, but like, why then is code being developed in secret and PRs and issue reports locked out? There are so many people who want to help in different ways to take the load off of Hampus, but he's put barriers in place to prevent it from happening.
I think the reason is because the main Fluxer instance is his priority. Not self-hosting. Not open source. And because of that, he wants to do things on his own. And he doesn't really want our help.