- https://github.com/danielkraic/Pidgin-XEP-0136-plugin adds XEP-0136 (needs "mam_archive" on prosody)
- https://github.com/gkdr/carbons adds XEP-0280 (Carbons)
- https://github.com/Junker/purple-xmpp-http-upload adds XEP-363 (HTTP uploads)
- https://github.com/gkdr/lurch adds XEP-0384 (OMEMO)
- https://github.com/noonien-d/pidgin-xmpp-receipts XEP-0184 (message delivery receipts)
The real pain for Pidgin is the complete lack of XEP-313 due to Pidgin's aged logging system, and I would really like to see a working message sync for Pidgin :(
EDIT: https://github.com/CkNoSFeRaTU/pidgin apparently has had XEP-313 patched into Pidgin for years now. Combined with lurch and Carbons, message sync is working fine.
The delivery receipts issue is a decade old [0]! Libpurple is a mess to implement all the modern features, because it tries to support the baseline of so many different protocols.
Gajim[0] has practically come back from the "dead". There is a huge difference, UI/UX-wise but not just, between pre and post 1.0, (1.1 at the time of writing, 1.2 coming).
There is also dino[1], a nice and simple desktop client, and converse.js[2], a fast-developing web-client.
Movim[3] and Salut-à-Toi[4] are also putting in a lot of work on the social network side.
[0]: https://gajim.org
[1]: https://dino.im
[2]: https://conversejs.org
[3]: https://movim.eu
[4]: https://salut-a-toi.org
Edit: Added conversejs