Riot/Web 0.11 is here!

An illustration of the Riot v0.11 release process

It’s only been a few weeks since Riot v0.10, but today we’re excited to announce another major update to Riot on Web & Desktop: v0.11! This release has actually been brewing for a while as it contains some fairly major architectural changes which have needed to stabilise: the first stable release is actually v0.11.3. So, what’s new?

All new guest access & sign-up!

We have an entirely new sign-up system designed to make it easier for new users to get started!

Previously, guest users (i.e. those who hadn’t registered for an account) had quite a weird experience: lots of bits of the app didn’t work (e.g. direct messages, VoIP, user settings, room settings, etc) and they’d be stuck with a numeric matrix ID if they ever registered that account.

So now guest users are effectively read-only; the moment that a guest wants to actually interact with a room we prompt for a username and create a real account. Later on, the user can set a password and recovery email address when they get hooked. Hopefully this is going to help newbies enormously — although it has required some fairly major changes throughout the app, so please let us know if you see anything weird!

Home pages!

Rather than dumping new users straight into the wild west of the Room Directory, we’ve added the concept of a home page to act as a much more friendly introduction to the app (alongside Riot Bot). For now, we’re simply calling out the ‘official’ rooms on the matrix.org homeserver run by the Matrix team, but this will evolve in future.

Best of all, the page is plain old static HTML and folks running their own Riots can easily switch it out for whatever content they like without even having to rebuild the app. It’s even internationalisable without rebuilding the app!

All new User Search!

As of the soon-to-be-released Synapse 0.22 we have completely changed how user search works. We’re mentioning it now given it’s a̶l̶r̶e̶a̶d̶y̶ almost live on the Matrix.org homeserver (as of June 20th it’s still generating the user indexes, but should be live by Wednesday 21st). Previously, the way that Riot prompted you for users when inviting someone to chat was to search all the users who you personally share a room with. But this is a disaster for new users, however, who by definition don’t share a room with anyone!

So instead we now query your homeserver via a new Matrix API to search for possible users to talk to. The server now returns results based on all the publicly visible users on the server (i.e. users in public rooms), as well as users with who you have rooms in common. The server also does much smarter stemming and full-text search than we ever had in the old implementation — as well as searching display name in addition to matrix ID.

We think this is a huge improvement over the previous implementation, although it’s important to note that we don’t yet have a global user directory capability (which is a Hard Problem to do in a decentralised manner). So for now, you can only see users your homeserver already knows about. This sucks slightly for small/new homeservers, but we reason that folks installing servers will be more sympathetic to needing to join some rooms to get started than casual users.

Finally, once Groups land in Matrix we will be able to search for users in the context of a Group (e.g. “find me the User with Matthew in their name or matrix ID who’s a member of the Matrix Core Team group”), which will give us some of the benefits of a global user directory, assuming you know what group to look for!

Many many more languages!

We’ve been incredibly impressed by the support from the Riot community in translating the app — in this release we add support for 10 new languages!! Huge huge thanks to everyone who has contributed translations. In alphabetic order, this release adds:

  • Chinese (Simplified)
  • Esperanto
  • English (US)
  • Greek
  • Hungarian
  • Korean
  • Norwegian Bokmål
  • Polish
  • Thai
  • Turkish

Of these, we have 100% translation coverage for Greek, Turkish, Polish, Esperanto and English (US), with the others all catching up fast. We’ve also caught most (all?) of the strings which hadn’t been made translatable back in 0.10.

Other stuff

There have been lots of smaller improvements and tweaks from t3chguy on the desktop app and WebRTC, and from ollieh on scrolling behaviour and adding a copy-to-clipboard button for code blocks. Thanks guys!

For more details…

As always, the release and changelog itself can be found at https://github.com/vector-im/riot-web/releases. You’ll may also want to check out the changelog of matrix-react-sdk and matrix-js-sdk where most of the interesting stuff is happening.

What’s next?

There’s been a tonne of stuff happening in parallel with 0.11. We don’t want to spoil it, but suffice it to say that Groups are almost here; E2E key sharing is on the horizon; all-new multi-way VoIP calls; as well as a whole new generation of the Integrations manager. Watch this space!