André Staltz on Manyverse, a decentralized social network

Hello, who are you and what are you working on?

My name is André Staltz and I am known in the JavaScript community for teaching reactive programming and writing open source libraries. In the last two years, I have focused my attention on my new project Manyverse, a mobile app for a decentralized peer-to-peer social network.

Why did you start working on Manyverse?

I was motivated to solve a problem that is nowadays familiar to many: how to have a modern social network experience without the downsides of big tech companies exploiting their users, abusing their power, and having biased content moderation. I was concerned about these problems already back in 2016. In practice, I found a decentralized protocol called Secure Scuttlebutt (SSB) which had great qualities for decentralized social networks. Then, I discovered there was still no mobile app client for SSB, and so I decided to build something novel and useful.

What were the early days like?

Usually, the early days for software projects are the most exciting, but in my case it was different. Before actually building an app with a name and visual brand, I wanted to make a proof of concept and see if the idea could be built with common tools, such as existing SSB libraries and frameworks like React Native. The proof of concept was very difficult to build and quite demotivating at times. It was difficult but clearly not impossible, which kept me going instead of dropping the idea entirely. After some two or three months, the proof of concept was built and I knew it could grow into something useful in the real world.

How have you grown its usage?

I first built it in stealth mode until it could have a minimal set of features. Usually, I don't do this for open source libraries, but when it comes to an end-user app, I didn't want to disappoint. After many months in stealth mode, I was ready to launch, and spreading it via social media such as Twitter, Reddit, and HackerNews was very important to get initial users. Since then, I have kept the public informed via social media and newsletter. The growth is not impressive - it's small, but it's steady.

How do you manage the workload and the community?

I get a lot of messages and questions from various channels: Gitlab issues, Twitter messages, emails, and other mediums. Sometimes I answer these, but I mostly don't. I believe that I make better use of my time by building features and bug fixes that answer those people's concerns, instead of spending a lot of time writing textual answers. In the end, people want to see progress. Even something like "how do I use your app to achieve X?" can be answered by improving the app so that X is more obvious and clear, instead of, for instance, personally answering their message. I also wrote about how issues are prioritized here.

How have you attracted funding?

Primarily via our OpenCollective page. I try to treat backers really well, basically treat them like companies should treat customers. In a sense, they are paying us in exchange for progress, so I try to deliver progress with the funding I get. A key part of keeping backers and bringing in more has been the monthly newsletter where I write a personal message describing what has been done. Another source of funding has been through grants. I have applied for 3 different grants, and one has accepted my application. There are several foundations, non-profits, and government institutions that give out grants to open source projects. Although it seems like I'm doing well with funding from both backers and grants, I think I'm still underfunded overall. This aspect of open source projects is hard. Really hard.

How much time do you devote to Manyverse?

It varies with the time of the year and the availability of funding, but I think in the past 2 years I have dedicated over 60% of my time to Manyverse. Other times I am working for a living by doing consulting, training, and small freelance gigs. Full-time open source is definitely my goal, but it has not been easy to achieve, even in 2 years of trying to.

What are the biggest obstacles you've had to overcome?

Working on an open source project usually means you are either working alone, or you're working physically alone while interacting with people on the internet. Even the ones that you interact with on the internet turn out to do it part-time or voluntarily. So this means you have to figure out technical difficulties by yourself. And when you get stuck without finding a solution to something important to fix, that's when you really miss coworkers or support in general. Add on top of that the insecurity of funding, and it becomes a big obstacle to your project and your motivation. It's like a startup, except funding is more scarce.

Working alone can have its upsides too. If you are comfortable with your tools and libraries and architectural preferences, working alone means you can bypass heated discussions about programming preferences and just focus on getting things done.

What are your hopes for the future of Manyverse?

I have a lot of hopes for the project! First, I would hope for funding. I'm not talking big money, just the bare minimum for 2 or 3 programmers on a stable basis. It's not an impossibility either, seeing that projects like Webpack, Mastodon, Babel, Vue.js, OBS are in this situation.

Second, I hope it can meet the needs of more people and usage can grow steadily. Again, I'm not talking explosive exponential growth, I'm thinking at least a thousand new users every month.

Third, I hope it sparks a wave of more apps which it can interoperate with. Manyverse being  open source and open protocol software allows for interoperability, and this would mean the growth of an ecosystem, not the growth of just one app. That's my ultimate goal with this project.

What advice do you have for other open source projects and maintainers?

Dream the right size for your dream. Don't make your open source project too big that you can't complete it or can't keep up with maintenance. Risk of burnout is real and you definitely want to avoid that. Don't be too ambitious and optimistic about funding. Whatever you think you will earn, it will probably be half of that. All that said, please still dream! There are a vast number of open source dreams still to be realized, and the good projects end up lasting *forever* (e.g. GNU/Linux, nginx, cURL, VLC, etc).

André has made significant contributions to open source in multiple areas (e.g. Cycle.js), to find out more about him you can check out his website or follow him on Twitter.

To find out more about Manyverse, you can visit the website to download the app, contribute financially via OpenCollective, or contribute to development on GitLab.