This page is about streamlining the First-time User Experience for newcomers to XMPP. It is aimed as a cheat sheet for XMPP client developers but also a discussion area for inventing new exciting XMPP protocols to make onboarding easier.
Classic XMPP Onboarding Challenges
When a new user approaches XMPP, they typically only have a JID of a friend they want to talk to. They need to complete the following challenges
- Find a suitable XMPP client: there is a huge number of XMPP clients for most platforms, however only a small subset of those are still maintained or actually support modern features.
- Install the client: that can be a challenge of its own.
- Choose a server: servers are located in different legislations, have varying terms of service and support more or less of the modern extensions that are needed for a flawless operation. But in the end, it is all about a funny sounding domain name.
- Create an account: some servers allow in-band-registration from the client, with others you need to use a web form that you need to google first.
- Add your friend: through the client UI, you need to enter the JID of your friend and wait for their approval.
- Suitable client: We need a shortlist of recommended clients per platform.
- Unmaintained software is removed from the official list
- In addition to the Protocol Compliance Suite we need to have an "Easy XMPP" badge for easy-to-use clients
- Installation: provide ready-built packages with integrated automatic updates
- Server selection: we need to create a public list of XMPP servers, with their respective XEP support, and possibly also uptime statistics. Or we just hardcode a default server into each client.
- Account creation: much can be done to improve the UX.
- Adding friends: there is PARS and mod_invite and plenty of potential for more.
- The newcomer receives an invitation link similar to https://email@example.com
- The link opens a generic landing page with a short explanation and suggested clients for the newcomer's platform
- The client can be installed / opened easily, and starts with an onboarding wizard
- The onboarding wizard provides a way to enter a favorite nickname and puts everything else into advanced prefs
- The onboarding wizard auto-adds the friend who initiated the invitation