Well, I give a damn, and i'm responsible for both Matrix & Element :)
I agree that it sucks that Element doesn't have the $ to support work on both Dendrite and Synapse/Synapse Pro, and unfortunately there's not been enough community momentum on Dendrite to add features like sliding sync.
It's not a matter of "there's no money to extract from community users" - instead it's simply "until we get to breakeven, we can't afford to work on Dendrite".
While I can't promise that Element will ever return to working on Dendrite once we /do/ get to breakeven (maintaining two codebases of the same product is just self-destructive, especially now other 3rd party servers exist) - at the least we can provide migration tools. It's worth noting that right now you can't even migrate between domains from synapse to synapse though, let alone dendrite to synapse.
I guess I'm somewhat sympathetic, but I don't really think you are giving credit to how dire the situation is right now. My homeserver, among surely many others, is trapped on a dead end program that barely works nowadays. Large federated room joins takes literally hours, and that isn't just exaggeration. Nevermind the several month long period where the only version of Dendrite that was safe from serious security vulnerabilities was one that locked up for several minutes at a time many times per day... and on top of that, more and more clients don't even support it. There was even a brief period where I couldn't use Element! I guess credit to you guys, you did roll it back, but as an end user that was a pretty "interesting" experience.
I'm a programmer, so one of my first instincts when I noticed Dendrite was struggling was to take a look and see if I could maybe make sense of things. But, a few things did strike me immediately:
- The Dendrite code is split across a few different projects. Nothing terribly wrong with this, and I'm sure there is plenty of good reason for it to be that way (i.e. there was clearly intent to have an agnostic Go library for writing Matrix servers) but it's definitely not great for development. I think it should just be part of a mono repo, personally.
- The Dendrite code seems like it was practically abandoned a while ago. It's not terrible or anything, but it does feel like taking Dendrite and modernizing it would be a substantial effort. This is a bit frustrating because honestly, when I first ran Dendrite, I didn't realize it was already kind of abandoned. A lot of trouble could have been saved if that were made clear earlier :\
- Even if I wanted to work on Dendrite, I'd have to sign the CLA. I'm not super keen on that. Open source licenses give me rights as a community contributor, and a CLA takes all of them away. I get that community contributions have always been and will likely always be minuscule compared to the amount put in by full-time employees, but full-time employees get a paycheck and dental, I don't, I would like to retain some of my rights. It'd be one thing if the CLA had a legally-binding guarantee that the code must stay open source, but I don't believe that it does. And while I have no problem with the AGPLv3 licensing in general, I have my suspicions about the intent behind the sudden quiet license change on Dendrite; Dendrite isn't even maintained, it feels kinda silly to do this now.
All of this together makes me, again, question if communities like the open source community should really be standardizing on Matrix. Of course, in part due to all of this mess, the open source community actually isn't necessarily standardizing on Matrix; a lot of big projects have Matrix in addition to other official discussion channels. As sad as it is, I suspect that right now the vast majority of open source community communication happens on Discord.
Don't get me wrong, Element and Matrix do a lot of interesting things, but this has been a very strange experience for me for sure. Basic text chat features have worked effortlessly and near-flawlessly for me with open source community options, like IRC servers, XMPP, etc. for a long time, but with Matrix (and particularly Dendrite) I've had so many issues with just that, even when not considering E2EE. Sometimes it definitely feels like a step backwards in some regards.
I agree that it sucks that Element doesn't have the $ to support work on both Dendrite and Synapse/Synapse Pro, and unfortunately there's not been enough community momentum on Dendrite to add features like sliding sync.
It's not a matter of "there's no money to extract from community users" - instead it's simply "until we get to breakeven, we can't afford to work on Dendrite".
While I can't promise that Element will ever return to working on Dendrite once we /do/ get to breakeven (maintaining two codebases of the same product is just self-destructive, especially now other 3rd party servers exist) - at the least we can provide migration tools. It's worth noting that right now you can't even migrate between domains from synapse to synapse though, let alone dendrite to synapse.