This article is part of an ongoing series of posts, there’s an index here.
So for nearly five years now, I’ve been running a public XMPP server to support a small community. Since it first appeared, XMPP (or Jabber) has had its ups and downs but has never really seemed to get any mainstream traction, despite some pretty big players adopting it at times. This isn’t for a lack of a market really, people love instant messaging, and a widespread, general standard that’s interoperable between multiple providers should be thriving. So what the fuck, right?
My personal opinion is that while there’s been a lot of focus on back-end technology, the end-user experience with Jabber is pretty abysmal. There are many servers dying of neglect out there, with expired SSL certificates everywhere, “temporary” closure notices that are years old … yeah look let’s get out of the negative stuff.
There are a few outstanding projects that provide a nice experience I’d like to single out though. Conversations is a terrific client for Android, Jappix is a solid web-based client, as is Candy. Monal gives a solid experience on iOS and looks great.
There’s one little project I’d like to focus on though, and that’s ChatMe – which is fantastically user-focused, well-documented for users as opposed to administrators, and has pulled a lot of great projects together in one place. They even release a great deal of their own code and modules as open source projects and make them freely available. Only one little snag from my perspective – their development blog is not in English.
So the main reason behind starting up this whole blog thing again is that I’m going to implement, from scratch, a public XMPP server, and document the whole process as I go. I’ll be drawing entirely on free and open-source software, paying only for a small virtual server to host it all. I hope this will provide a solid resource for other would-be service administrators to draw from when kicking off their own servers for their own communities, whatever they may be.
It’ll also be a good chance to make notes of where the rough edges and issues are, and maybe we can find some solutions to some of those as we go.
Won’t this be fun?
Next up, I’ll go into the initial “shopping list” of software I’ll be using, and start configuring the server.