Thank you again for another month contributing to Manyverse. We bring a lot of news this time, on various topics! First of all it's fantastic to see how quickly Andrew Chou and Thomas Belin, our new developers, got used to the codebase and started fixing and improving the app. Last month we made 3 releases, and most of these changes below are thanks to Thomas and Andrew:
- 🎉 Feature: save private chat drafts
- 🎉 Feature: autofocus text field when starting a private chat
- 🎉 (Desktop) Feature: send private chat message with the Enter key
- 🎉 (Desktop) Feature: add hover text on icon buttons
- 🎉 (Desktop) Feature: add basic context menu
- 🔷 Improve initial sync a bit, for new accounts
- 🔷 Improve time estimates in the progress bar
- ✅ (Desktop) Bug fix: support Ctrl+C on posts
- ✅ (Desktop) Bug fix: copying text on MacOS with Cmd+C
- ✅ (Desktop) Bug fix: preserve scroll position when going back to thread
- ✅ Bug fix: placement of mentions input in some cases
- ✅ Bug fix: database progress bar should not go back
- ✅ Bug fix: hide keyboard when leaving Thread screen
- ✅ Bug fix: public tab "new" indicator incorrectly appearing
- ✅ Bug fix: reply placeholder stuck on unrelated threads
- ✅ Bug fix: dont crash when processing rare votes
- ✅ Bug fix: logic to show update banner
- 🔷 Improve Dutch, German, Romanian translations
- 🔷 Improve Brazilian Portuguese translation
- 🔷 Improve Italian translation
- 🔷 Partial Urdu translation
Progress might sometimes feel slow, but our approach with feature coverage in Manyverse is "depth-first search", not "breadth-first search". This means that instead of building all the features as soon as possible, we want to have each feature working really well, on all 5 operating systems. Bugs, crashes, and slow performance always create a negative user experience, and we'd rather provide a good user experience, even if it's a limited experience. This is why our work is a lot about fixing and polishing. Little by little, though, we can introduce the new features.
Welcome Nicholas Frota, UX/UI designer
Besides new developers, we also have the pleasure to welcome to our team long-time SSB user and professional Product/UI designer, Nicholas Frota, also known as nonlinear. Some weeks ago Nicholas reached out, volunteering his time as a designer, and we gladly accepted the help!
In March, we had a couple meetings, and have some outcomes to share with you already. On our Wiki, we wrote down our design guidelines and principles, and we made a plan to achieve Manyverse version 1, out of beta. Nicholas is taking on the UI design of some new features, and the first one is going to be about managing and navigating hashtags, for which he made a Figma document:
Nicholas has both the big-picture design strengths and detailed Figma drawing skills, which is really refreshing to work with, and is frankly exciting! During video calls, I realized there is a constant flow of ideas going on. With so much done already in March alone, I can't wait to see all the progress we're going to make together over the next months this year.
Database compaction project
As for myself, my focus last month was on supporting the team to get started, and with low-level database improvements to support deletion. Our database is built in 3 layers: the log (async-append-only-log), just-in-time indexes (jitdb), and leveldb indexes (ssb-db2).
With the help of Anders, I was able to implement compaction in async-append-only-log. This means that once you have deleted many messages, compaction will take care of "defragging" the log, filling in the holes left by the deleted messages. The next steps are updating
ssb-db2 to understand compaction as well. Honestly, it's not that much work left, because the log is the main part affected by compaction.
What this means to Manyverse is profound. It will allow us to transition from a world where SSB data is always increasing, to a world where storage is managed and pruned as needed. For instance, you will be able to see how much space the profiles of people occupy on your device, and delete profiles that you don't want to have taking up space.
Donations and grants
Last month we participated in the Gitcoin grants campaign, and received a total of $554 from donors and quadratic matching. Thank you everyone who participated! The funds were transferred as crypto to our OpenCollective.
Finding money to support the team we have at the moment is going to be challenging. I'm not going to ask more from you all donating to our Open Collective, and I believe that as we grow, there will get more people donating, little by little. I'm optimistic about government grants, particularly from the European Commission under the Next Generation Internet programme. They have twice given funds to Manyverse, and there seems to be still opportunities for more. And even though grants are temporary and have a stiff format, the donations you provide here mean we have stability and we can continuously make progress. Some projects end as soon as grant money runs out, that's not our case, thanks to you. 💙