Riot.im/Web 0.12 — WIDGETS HAVE LANDED!! + Jitsi Video conferencing + New Composer, Mentions & Emoji Picker!

Riot.im 0.12 is here and by golly it’s a big one! The main headline is that WIDGETS HAVE LANDED!!! — small form web apps you can share with everyone in a room, unlocking a whole new dimension of collaboration within Riot😊. We’ve been working on this for months, and it’s insanely exciting to see us finally able to start decorating our rooms with Hangouts-quality video conferences (from Jitsi), document editors, graphing dashboards, and anything else you can imagine!

We’ve also improved usability introducing (proper) mentions, big changes to the composer including autocomplete, rich text and markdown and a new improved emoji picker 😄😃😀😎. And finally we’ve introduced a first cut of end-to-end encryption key sharing so you can seamlessly continue your encrypted conversations when logging in on a new browser. Phew!💦

Tell me about these widgets!

Widgets are a deceptively simple idea — small-form web applications you can pin into a room, building up a dashboard of functionality that is shared with everybody in that room. They’re intended to be used throughout Matrix, although Riot/Web is the first implementation in the wild. For a technical overview head over to the Introduction to Widgets post at the Matrix Blog.

What are widgets for?

Widgets are a way to add full-blown interactive apps into your Matrix rooms. The experience is a bit like installing an app on your smartphone: you go to an app store; find the app you want; and add it to the room! The difference is that the app is then visible to everyone in the room, so whoever switches to the room can instantly be on the same page — helping them share or collaborate around the same material.

Show me the widgets!!

So the way to get widgets for now is via Modular, the new name for the Riot App Store. Out of the box you get:

More will be coming soon, and via Custom Widgets you can also build your own — see the Matrix blog for more details.

Does that mean we have proper video conferencing at last?!

YES!! Thanks to our friends at Jitsi we now have fullblown video conferencing and screen sharing available in Riot/Web via the Jitsi widget. Native Jitsi support has also landed on Riot/iOS (but hasn’t been released yet) and is coming soon on Riot/Android. There are a few rough edges still (e.g. you drop off the conference if you switch away from the room with the conference, and we need to hook it nicely into the timeline), but it’s a major improvement.

Matthew and Rob illustrate Newton’s Law of Conservation of Hair Mass via Jitsi

I want to see more widgets!!

Here goes…

Collaborating on an important blog post, grouping together a shared text editor, a live conference call, asynchronous text chat and persisted file upload
Collaborative software development, grouping coding discussions with easy reference to the design spec. and API docs.
Collaborative Ops room: a shared view of important graphs and live streaming of a terminal session to support issue investigation.

How do I add a widget?

I want to hear about those usability improvements!

New Improved Composer

The new composer has been hiding in the experimental Riot.im labs for a while, initially implemented last year by Aviral Dasgupta as a Matrix.org Google Summer of Code project: but over the past month we made the push to promote it to a full-time feature!

The new composer features rich text mode to support full WYSIWYG message composing, as well as CommonMark markdown mode for those who prefer to format their messages by hand.

(Proper) Mentions + Autocomplete

Mentions and autocomplete get a big upgrade in v0.12. Autocompletion makes it easier for you to address your messages to the right person, and improved mention formatting makes it clearer to see when people are speaking to you as you collaborate in Riot.im:

Autocompleting user and room names

To see the new features in action:

  1. Type a display name, mxid or room name into the composer
  2. Press tab to open the autocomplete box
  3. Choose a suggestion from the list to insert a user “pill” into the composer
  4. Send the message!

Emoji Picker

A picture’s worth a thousand words, so save on bandwidth with the power of emoji!

Press : to fire up the emojipicker and start typing to search through the hundreds of emojis 😎.

Also if you’re an emoji fan you might want to enable the Automatically replace plain text Emoji option in user settings to do exactly what it says on the tin 😄

More Ways to Customise your Experience

This release we’ve added yet more UX settings so you can tweak your experience of Riot.im to focus just on what’s important:

  • Hide join/parts — hide the join and part messages so you can focus on the conversation — this is particularly valuable in the larger rooms
  • Hide profile changes — hide display name/avatar changes

Tell me more about the end-to-end encryption enhancements!

We’ve made a big improvement to the way Riot.im handles encrypted communication across multiple devices with a new feature called encryption key sharing.

When one of your devices encounters a message it can’t decrypt, it will ask your other devices to see if one of them has the decryption key. If a matching key is found, the device with that key will ask you if you want to verify the request and share said key:

Just for a change the user experience for this is an initial cut, and we’ll be improving asap; we just wanted to get the underlying functionality out there as quickly as we could.

More languages!

Huge thanks to the Riot Translation community over at #riotweb-translations:matrix.org for adding 3 new translations in for Basque, Latvian and Telugu. This brings our current language status to:

As you can see, there’s a bunch of these which need a lot more love — so if you want Riot to be available in your language please head over to #riotweb-translations:matrix.org and https://translate.riot.im and help out!

And that’s it for now!

It’s been a while since Riot 0.11 as we’ve been quite badly impacted by the Matrix.org Funding Issues — and both Widgets and the Rich Text Editor have been a lot of work. Riot 0.13 is going to be a big one too, with Communities (aka Groups) finally landing: letting folks group sets of rooms and users into a mini teams, and hopefully a bunch more Performance and End-to-end Encryption improvements too.

However, right now we’re very dependent on the core Matrix team for Riot’s existence, so if you like what we’re doing please head over to Patreon or Liberapay and donate to Matrix.org to keep the project going. Alternatively if you know a company who likes Riot or Matrix, please get in touch to discuss corporate sponsorship or custom development.

Folks running their own Riots can download it as normal from https://github.com/vector-im/riot-web/releases/tag/v0.12.1 (we skipped 0.12.0), and the full changelogs are of course available for the component riot-web, matrix-react-sdk and matrix-js-sdk.

And finally, as always: thanks for using Riot.im! Please send us your feedback over at #riot:matrix.org, and have fun 😀