Last week we had an intense 4-day hackfest in Strasbourg to map out the future of Fractal, a native GNOME Matrix messaging app. The event was held at Epitech in Strasbourg’s old town, and organized by Alexandre Franke. Among the attendees were core Fractal contributors Daniel, Alexandre, Eisha, and Julian, as well as Dorota, Adrien, and Francois from Purism. Special thanks go to Matthew from the Matrix core team for joining us on the first two days.
Our main priorities for the hackfest were to plan the roadmap for the next months, decide on the tasks for our GSoC students (Eisha and Julian), and work on the design of some important missing features, like the room settings.
I personally attended the hackfest in both my role as designer on the Fractal project and as a Purism employee currently working on the apps for the Librem 5. One of the reasons why several members of the Librem 5 team attended the hackfest was that we will need a Matrix messaging app on the phone and wanted to explore a potential collaboration.
The hackfest was extremely productive, so much so that I’ll need multiple blog posts to report on all the things we worked on. Here’s a quick outline of some of the most important things that happened:
- We’re splitting the app into two separate apps (more on this in a future blog post)
- A big refactor of the backend is happening soon to enable the split
- We discussed having a system-level Matrix daemon, which different apps could use as a backend (e.g. the two different messaging apps and a calls app)
- Matthew explained that room types will be simplified into 1-1, private groups and public groups in the future (which nicely complements our split). We discussed whether 1-1s should be immutable (they should :P)
- Matthew explained how end-to-end encryption and calls work in Matrix, and how we could get them in Fractal
- We came up with an initial design for multi-account (which basically consists of an account chooser at startup, and a separate window for each account)
- We discussed a design for read receipts. Not quite done yet, but we’re on the right path, I think.
- We talked about what it will take to make Fractal work on mobile. Not too big of a problem design-wise, but we’ll need Rust bindings for libhandy and emeus
- Eisha will be investigating i18n, because we really want to make the app translatable (currently this is hard to do because we use Rust)
- Julian will be working on a big message history UI refactor/redesign, as well as other UI stuff, such as user account settings
- There is a huge number of message types we don’t support yet and we discussed the design for most of them (including in-app viewers and a history of sent files)
- With Matthew’s help, Daniel fixed the slow initial sync
- Julian worked on a nicer UI for the GTK emoji chooser and Rust bindings for gspell
- Alexandre landed the new, prettier default avatars
- Quentin started packaging Fractal for macOS
- We fought our way though the garbage fire that is the Join and History settings in Riot, and emerged with a design that isn’t terrible (thanks Dorota and Julian!)
Thanks everyone for attending, Epitech and Alexandre for the venue, and Purism for sponsoring the hackfest! It was amazingly productive to have everyone in one place, and I look forward to seeing you all at GUADEC in July