Element X - experience the future of Element!

July 06, 2023
Element app

OMG it’s fast!

Element X isn’t just the fastest Matrix client ever - it’s up to 6000x faster than any other Matrix client.

Faster than a cheetah, a peregrine falcon, or a speeding bullet! Faster than light! Faster than light in a vacuum!!

Seriously, Element X is a transformation and we’re outrageously proud of it. Not only is it faster, but it’s also got a vastly improved interface which delivers a far better user experience.

We’ve set out to build not only the best Matrix client… but the best messaging app - ever.

Element X welcome screen.

Early access for early adopters

Now, while we’re excited, Element X isn’t the whole shebang just yet.

Element X at this stage is more super-fast messaging than collaboration; enterprise functionality and the likes of ID and access management will be added later this year. It’s also only available for existing accounts (account creation isn’t finished yet) so you can't recreate accounts just yet, or access message backups.

TL;DR - Element X is very much ‘personal use’ for early adopter Element users; those who want to go beyond Element ‘Nightly’ to glimpse the future of Element.

Element X works out of the box with the matrix.org homeserver. Other servers will need to run a sliding-sync proxy (Element enterprise customers will find one neatly packaged up in Element Server Suite as of release 2023-07.01) Eventually there will be native support for sliding sync in Synapse, but for now we are relying on the proxy to do the heavy lifting.

While Element X is a taste of the future - make no mistake; Element X really will become that future. Once complete it’ll replace the existing set of apps, drop the X, and simply become the new Element.

How is Element X a gazillion times faster than any other Matrix client?

Element X is a complete new build based on the new flagship Matrix SDK, written from the ground up in Rust, imaginatively called matrix-rust-sdk. The application has been rebuilt with the latest UI frameworks: namely; SwiftUI for iOS and Jetpack Compose for Android.

But the real secret sauce is something called sliding sync, a powerful and flexible new Matrix API. Sliding sync gives us instant login, instant launch, and instant sync. It completely changes how a Matrix client syncs data from its homeserver. The app directly drives sliding sync to fetch precisely the right data needed to render its UI as rapidly as possible. We designed sliding sync so that the UX will be the same whatever the account size; we want performance to scale O(1) instead of O(N) with the number of rooms. We’ve applied this concept everywhere; check the sliding sync MSC for more details.

As a result the room list can be displayed less than 100ms after logging in, even on a large account, because only the data for the rooms that are displayed is loaded. If the user scrolls, we load more data but only for new displayed rooms.  We also maintain some caches in the background to ensure room search and fast-scroll is instant, but never at the expense of launch or sync performance.

The new Element X interface

What’s new about the interface?

Element X isn’t just faster, it also feels mainstream and beautiful because we’ve rebuilt the entire user experience.

We looked at all user-flows to better understand the user-needs, and in doing so have created a more intuitive app that feels radically more attuned to user expectations. So despite being new, it should feel more familiar and easier to use; from starting a new room, to sending and reading messages.

Element X also feels more consistent and reliable. The interface is less cluttered which helps the user to focus and speed up your workflows.

People sometimes forget the behind-the-scenes complexity of a decentralised app operating on an open standard. It has to allow for a far broader range of devices, hosts, networks and use cases. That’s why it’s so important to provide a user interface that completely hides the underlying complexities of Matrix as a decentralised open standard - and with Element X, we believe we’ve nailed it.

So all the power of Matrix - and the complexity of decentralised end-to-end encryption - is now hidden under a beautiful and intuitive user interface using the very latest frameworks and accessibility best practices and features.

The beauty of Rust
Our new Rust SDK makes development faster and more consistent across the Android and iOS apps, while providing a super-speedy and high quality implementation thanks to Rust’s legendary language safety features - complete with audited and native Rust end-to-end encryption support thanks to Vodozemac.

And it’s not just the Rust SDK; translations on localazy, a common design system with compound and coming soon native OIDC authentication, Element Call for VoIP and the Rich Text Editor means our overall development is radically quicker and more efficient.

What’s next?

We’re releasing Element X today on iOS; you can get it from the App Store (plus it runs well on macOS too, if you have Apple Silicon.) The Android build will follow close behind in a few weeks; watch this space!

We’re then going to keep a careful eye on how the app performs in the wild, and keep regular updates coming as we add the remaining features, until we eventually replace today’s venerable Element mobile clients with the brave new world of Element X. Meanwhile Element Web and Desktop will also start to benefit from Element X, both in terms of updated user interface and leveraging matrix-rust-sdk, starting with the all-new end-to-end encryption.

It’s a whole new era for Matrix, and we’re excited for you to be part of it.  Please let us know how you get on with Element X in #element-x-ios:matrix.org - and we hope you enjoy using it as much as we do!

Related Posts

By the same author

Thanks for reading our blog— if you got this far, you should head toelement.ioto learn more!