Easy Onboarding

Jump to navigation Jump to search

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

  1. 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.
  2. Install the client: that can be a challenge of its own.
  3. 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.
  4. 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.
  5. Add your friend: through the client UI, you need to enter the JID of your friend and wait for their approval.

Possible Optimizations

  1. Suitable client: We need a shortlist of recommended clients per platform.
  2. Installation: provide ready-built packages with integrated automatic updates
  3. 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.
  4. Account creation: much can be done to improve the UX.
  5. Adding friends: there is PARS and mod_invite and plenty of potential for more.

Ideal Future

  1. The newcomer receives an invitation link similar to https://yax.im/i/#friend@domain.com
  2. The link opens a generic landing page with a short explanation and suggested clients for the newcomer's platform
  3. The client can be installed / opened easily, and starts with an onboarding wizard
  4. The onboarding wizard provides a way to enter a favorite nickname and puts everything else into advanced prefs
  5. The onboarding wizard auto-adds the friend who initiated the invitation