Last month we launched Manyverse for Desktop, and the reception has been amazing:
Francis: works and looks great, super happy to have this in the world, you should be proud!
Gergely: This looks great, thank you so much! It’s beautiful on my desktop, too!
Murilo: Uau, André! Fantastic work! I'm blown away by Manyverse! This is just next level!
Lots of people have switched to Patchwork to Manyverse, even though we haven't built all Patchwork-like features yet!
January was a month full of bug fixes, as people started bumping into issues with the app, and we had to catch up and patch them. Bug fixes are never exciting stuff, neither for you nor for me, but they have to receive priority over new features. Software has to do what it currently promises to do, and do it well. In total, we made 130 commits and 4 releases with this huge list of improvements:
- 🎉 Feature: support pasting HTTP invite URLs and SSB URI invites
- 🎉 (Desktop) Feature: support back button on some mouses
- 🎉 (Desktop) Feature: attach audio files
- 🎉 (Desktop) Feature: tooltip when hovering pictures
- 🔷 (Desktop) Improve layout of the middle column
- 🔷 (Desktop) Improve scroll bar on RecipientsInput
- 🔷 (Desktop) Improve styling on the Instructions screen
- 🔷 Improve style of summaries in the Private tab
- 🔷 Improve French and Persian translations
- ✅ (Android) Bug fix: raw message screen should show data
- ✅ Bug fix: room 2.0 invites also connect to room
- ✅ Bug fix: allow seeing images in private chats
- ✅ Bug fix: only allow SSB and HTTP links, not other types
- ✅ Bug fix: private chat glitches while scrolling
- ✅ Bug fix: wrong layout when you block a Profile
- ✅ Bug fix: database glitches when a opening thread
- ✅ Bug fix: detection of new version, -indie and desktop
- ✅ Bug fix: improve performance on some screens
- ✅ Bug fix: memory leak related to stream conversion
- ✅ Bug fix: support hashtags with numbers, e.g. p2p
- ✅ Bug fix: crash when migrating a specific .ssb database
- ✅ Bug fix: hashtags support unicode characters
- ✅ Bug fix: treat hashtags as case-insensitive
- ✅ (Desktop) Bug fix: sliders in settings looking broken
- ✅ (Desktop) Bug fix: text style in prompts in dark mode
- ✅ (Desktop) Bug fix: Windows LAN discovery
- ✅ (Desktop) Fix left-menu text getting clipped
- ✅ (Desktop) Bug fix: scroll bar in dialogs on wide screens
- ✅ (Desktop) Bug fix: floating button's position on Profile screen
- ✅ (Desktop) Bug fix: position of Profile feed scroll bar
- ✅ (Desktop) Bug fix: show white gradient on too-long threads
- ✅ (Desktop) Bug fix: correct app metadata on Windows
- ✅ (Desktop) Bug fix: remember window size on restarts
Plans for 2022
With that out of the way, I want to share with you some key parts of our roadmap for the near future. There's lots of stuff on the roadmap, but there are three areas of focus. These are the key areas that need to get "solved" before we can take Manyverse out of beta and declare it ready for the general public:
Onboarding. Rooms 2.0 were a huge step forwards to making it easier to invite people into Manyverse, but the work is not done. In a way, onboarding is always at tension with safety. If you make it too easy to join the network, the current members lose some safety as they can get exposed to unwanted strangers. If you make it too safe, it becomes hard to invite people you trust. When we released aliases (e.g. staltz.hermies.club), suddenly it became much easier to join SSB, but it also meant that any stranger on the web could connect to you. It was a step too far into losing safety, so I introduced the connections firewall, which prevents complete strangers from using your alias. Unfortunately, this reduced the benefits of onboarding.
I've been thinking about this constantly, and I came up with an idea I think has a lot of promise. I drafted its specification here, and while it's still in flux (I have further ideas, so probably will completely rewrite that spec), it means a lot of good things will be unlocked for SSB. The primary goal is to simplify onboarding, but it turns out the same mechanisms can also provide solutions for other apps to interact with Manyverse. For example, say you install a new SSB app and you want it to use your data from Manyverse. You could simply: type in your alias, insert the 1st word of your 24-word recovery phrase as the "password", and press "done". Then, in Manyverse, you would see a popup to authorize the new app to use your data. Done! The new app gets automatically up-to-date and you're ready to use it. This will also mean that you'll be able to use your "same account" on many devices and apps, something that people have been constantly requesting.
Sustainability. Every year, the main SSB network grows about 200 MB. This means that over time, the database gets heavier, indexing takes longer, and onboarding takes longer as well. This situation cannot go forever, and in fact there is a hard limit of 4.3 GB, which means that SSB will abruptly stop working in approximately 15 years unless we do something about it! Any solution to this must involve fetching less data and somehow deleting old data as we go. Last year, in the SSB NGI Pointer project, we researched and developed partial replication. The work is 95% ready for inclusion in Manyverse. One of the goals for this year is to finally do it. It'll be a big step for SSB in general.
Safety. Last, but not least, community safety (via invite-only onboarding, relationships of trust, and storage hospitality) is in my opinion one of SSB's unique strengths. But we've also heard of obvious ways how SSB is not safe enough. Private groups were recently invented and are currently being used in the indigenous data platform Āhau precisely to create strong safety mechanisms. Mix Irving worked on that, and I'm happy to share with y'all that last week we (Mix, me, Jacob, arj03, and Keks) sent in a grant application to NGI Assure to bring private groups to Manyverse. If our grant is approved, we'll be working together for the next 5 months to make private groups production ready. This means fixing bugs, making it scalable with partial replication, and building a good user experience around moderation of groups.
As you can see, that's a lot of things to do. And we basically cannot postpone them, onboarding needs to direly get better, without sacrificing sustainability and safety. To do that, we'll have to make surgical changes to the SSB protocol, carefully enough to make it a solid foundation in the long term too. In the mean time, there are 5 operating systems on which Manyverse needs to run smoothly. The responsibility is substantial.
We barely can afford one person working full-time, and I already feel like we need to hire another person full-time. I hope our NGI Assure grant passes, but that'll cover only the area of safety with private groups. I am immensely grateful for your donations, but I think we need to do some fundraising to get a 2nd person working full-time. A lot of people out there don't know that we're doing this much progress, and that we're fully transparent with our usage of funds. I've been coding a lot lately, but I think I'll need to put some time into fundraising and finding a 2nd person who wants to work full-time on maintaining the app.
It'll be quite a year, and I hope by the end of it we can be in a state where Manyverse is somewhat ready for the general public.