Isn't it nice when computers let us use whatever weird colors, workflows, keyboard bindings, or child sacrifice we like to use, instead of forcing us into a one-size-fits-all "intuitive" UI? Slidge is a collection of XMPP gateway components that lets you use your favorite XMPP client(s) to chat with other, non-XMPP and/or non-federated chat networks.
A few adventurous testers have successfully used slidge for a few weeks now, and it sounded fun to tag a release candidate instead of a beta for a change, so here we go! Let's cut to the point: what's new since slidge beta2?
Last time I wrote here, I mentioned that deuill, a random dude from the intertubes, was working on a whatsapp slidge plugin. Well, guess what? He already nailed it.
To communicate with the infamous walled garden, you need to have the official whatsapp app to register an account (you don't have to give it address book access). You can then register to slidge by flashing a QR code just like you would for the whatsapp web client, and then uninstall this crap if you don't want your phone to feel too dirty. Once every few weeks, you will need to reinstall the whatsapp app to reflash the QR code though.
Interestingly, not giving the official app address book access on Android results in a very subpar user experience where you cannot initiate a chat with a new contact, and where contacts are only identified by their phone number (see screenshot above). The fun part is that neither of these trouble happen when you use whatsapp via slidge (or via the iphone app it seems). It all looks like Meta really wants to your address book, who would have thought? Maybe they are not giving up whatsapp for free out of pure altruism after all.
Despite what was initially planned, we finally added some rudimentary, experimental group support before the 0.2.0 series. This change of plan was motivated by some internal refactoring to improve the internal representation of the slidged XMPP entities.
Only the telegram and signal plugins implement groups for now. We don't recommend relying on it just yet, as slidge don't implement the modern XMPP way of retrieving history, which may result in missed messages on mobile connections. But since telegram has server-side group archives, we have some basic old-fashioned, "send history on join" thing going on that makes telegram groups somehow usable anyway.
If you want to give groups a try, update slidge send "groups" as a normal chat message to the gateway component. It will reply with a list of clickable XMPP URIs that should open the group as a normal multi-user chat. We obviously plan to improve groups discovery in the future, but if you're feeling adventurous, give them a try and report issues you encounter.
Up to now, even if trying to execute an "admin-only" adhoc command resulted in an error message, all adhoc commands were listed for everyone. They are now only listed for users that can actually run them, for a less confusing user experience.
For clients that don't support in-band registration, and for slidge plugins that require multi-step registration procedures (eg, 2FA), you can now register to the slidge component via a dedicated adhoc command.
This protocol defines a generic way to add a "gatewayed" contact by their username (eg, their phone number), so that XMPP clients can make it look nice in their user interface. There are not many clients out there that support this already, but Cheogram alone made it worth implementing. Since slidge will soon rule the world, I expect other XMPP client to follow any minute.
Besides bug fixes and refactorings that aren't very interesting to list here, here are some other changes that I don't have to energy to detail, but might make sense to you anyway.
I attempted to list what was next in the previous blog post, but I already did not respect it. So instead of a real roadmap, I'll just say we plan to do these stuff, but that plans might change for no apparent reason. Remember, we're not big and/or professional.
That's all, folks! Grab slidge 0.1.0-rc1 from sourcehut, pypi (no whatsapp there yet, telegram: only arm64 and amd64), deb.slidge.im (amd64-only until we managed to fix the arm builds), or dockerhub (recommended method, image available for amd64 and arm64), and come say hi on our MUC.
Lots of love to slidge early adopters and people who just dropped by to say that slidge looks cool, that's sincerly awesome.
Edit