September 2022 update
Published on September 5, 2022 by Andre Staltz
Thank you for staying with us and believing in our mission. Every month, we aim to bring big changes in the app. Some months it's big features and small bug fixes, other times it's big bug fixes and small features. August was about the big bug fixes, and with version 0.2209.2 we shipped this long list of changes:
- ✅ Bug fix: blocked accounts re-fetched post-compaction
- ✅ Bug fix: compaction stuck on 0% on tiny databases
- ✅ Bug fix: allow connecting to wi-fi peers without internet
- ✅ Bug fix: copy cypherlink from Search screen
- ✅ Bug fix: going back from the Storage screen
- ✅ Bug fix: scroll bars missing from Storage screen
- ✅ (iOS) Bug fix: color of mentions menu separator
- ✅ (iOS) Bug fix: private chat drafts should work
- ✅ (iOS) Bug fix: profile header sizing and spacing
- ✅ (iOS) Bug fix: spaces and sizes for the bottom tabs
- ✅ (iOS) Bug fix: spacing in the reply box in a Thread
- 🔷 (iOS) Improve appearance of the back button
- 🎉 Feature: new Indexing screen
- 🎉 Feature: new progress bar Pill element
- 🎉 Feature: show name and blurred avatar of blocked accounts
- 🔷 Improve Dutch, French, German, Spanish translations
- 🔷 Improve Profile screen to load all details at once
- 🔷 Improve margins and paddings all around
Of the five platforms we support (Android, iOS, Window, macOS, Linux), iOS is probably the least cared for. It has several visual bugs, interaction bugs, and other blockers for adoption. The reason is that developing for iOS is the least convenient, and personally my main device is not an iOS, so it becomes harder to develop the iOS app. I wanted to change that, so I bought a used iPhone from a friend and started using Manyverse on it daily, to experience the bugs personally.
There were several low-hanging fruits, such as user interface bugs, and in version 0.2209.2 they're all fixed. I also fixed an interaction bug: when writing a private chat message, the draft is reliably saved and loaded, every single time. Using Manyverse on iOS will become my new habit and I promise iOS users that the experience is going to get better. Y'all deserve it.
In the previous newsletter update, I introduced Compaction as a new feature. It works, but we found a couple of bugs. Some of those bugs were very difficult to debug. In the end, I fixed libraries such as async-append-only-log, ssb-db2, and ssb-friends.
In fact, there is still one more bug in this area, so we recommend not using the feature unless you have your 24 recovery words backed up. Deletion is such a fundamental shift in the normal course of SSB, that it brings up a ton of unforeseen corner cases. We're mapping and fixing these corner cases, so in the meantime please consider Compaction an experimental feature.
Deletions and Compaction are part of the "Sustainability" theme we've been working on, to make SSB apps such as Manyverse consume less storage and other resources from your device. We have more Sustainability features coming up, such as index feeds. This is something we've worked on for many months during our "NGI Pointer" grant from the EU, although we haven't put it into production yet. But last month I made more local experiments with index feeds in Manyverse and I'm happy to inform that they're going to reduce storage usage by 6x. To put this into perspective, if Manyverse today occupies 1GB of space on your device, it'll occupy less than 200MB with index feeds. And, with less data to process, it's going to run faster.
Sweet small features
Now, onto the fun part of the newsletter! We improved the progress bar, where the percentage number is in a "pill" and follows the progress bar.
We removed other visual "noise" related to database indexes, and instead you can now click the "pill" and it'll open a new screen. The new "Indexing" screen gives you information about the progress of database indexing, remaining time, and even a help section that explains what is happening underneath. Staring at progress bars is a common ritual when joining SSB apps, and we want to make that experience a bit more enjoyable, besides speeding up the database itself. I've been observing progress bars on macOS, games, and other top-notch software to get inspiration. I think Manyverse now has a good one. :)
On another topic, Andrew Chou worked on an addition to our safety features: snapshotting a blocked profile. Previously, when you blocked someone on Manyverse, their data got deleted, and this meant that next time you stumbled upon their profile, you wouldn't even see their name nor profile picture, because those also got deleted. The only information you had is that you blocked someone, and this was confusing: who did you block? What if you wanted to unblock them?
Snapshots are a simple fix to this problem. When you block someone, your Manyverse will now also record or "snapshot" what was that person's profile name and blurred profile picture. Next time you stumble upon their profile, you won't have their data on your device anymore, but your Manyverse will display the profile name and blurred picture from the snapshot. This helps remind you of the decisions you made. The blurring was a small detail, but an important one: the picture helps remind you who they were, but you may not want to see their full picture in details, in case the picture itself is offensive. To implement this, we used Blurhash, which ensures the blurred picture occupies a tiny amount of space.
Last but not least, your voice is important and we want to hear from you. We've been making a lot of new design choices in the app, but without analytics or any data collection of any sort, we don't know if our choices are correct. We're working in the dark.
To fix this, we're going to regularly have surveys with a few questions that take just 2 minutes to answer. We want to get some quantitative feedback, and react accordingly. Please, if you use Manyverse on a regular basis, visit our Survey on Airtable and answer some questions. Share this with other people who you know use Manyverse! Thank you!