Boris Mann

Open Source. Community. Decentralized Web. Building dev tools at Fission. Cooks & eats.


Running Moa Party as a public utility

As of a couple of days ago, I’m helping to run Moa, a Mastodon and Twitter cross-posting service. It’s live at

It started out with me looking for a way to cross-post to Instagram. Moa used to be able to do this, but the Instagram API changed. I left a comment on a Github issue for the project, and the creator replied that they weren’t spending a lot of time on the project any more.

From there, this seemed like a good opportunity to work on a project as a public utility, and to have people interested in existing and new functionality to support it.

Forming a Squad

Separately, I’ve been hanging out with various people interested in inter-connecting knowledge graphs. @flancian has been convening people to work on the AnagoraAnagora
An [[Agora]] implementation by @Flancian.
The concept is to have nodes / notes where people maintain their own digital notes garden like I do here, but then pull them in and link them through their public git repos. Aka a “distributed knowledge graph”.
The [[Agora Plan]]1 page has more details. It is written in [[Python]] / Flask and is open source under the [[Apache2 License]].

This site is [[Connecting to the Agora]] as of January 24th, 2021

Features and Documentation
project: using git to pull in the source of peoples’ digital gardens. We decided to work on this together, and were quickly joined by @vera, who jumped right into writing new functionality.

Figuring out tools and communication was the first thing, as is the case with most groups. We’re using GitLab as the home base, and set up a meta project FedStoaFedStoa
Federated or Fediverse Stoa. A @Flancian [[Agora]] related term. Currently being used as the joint meta project group name for code on GitLab for [[Anagora]] and [[Moa Party]] related code.

Side Project Learning

All of us are doing this as a side project, which means fitting in tasks as we can.

But, it also means the flexibility of trying new tools and techniques, to experiment and learn new things. I mostly use GitHub, but as a basic place to keep code and file issues, GitLab works great. The original Moa repo is on GitHub, and we’ve kept it there plus set up mirroring from the main GitLab code base.

Using GitLab aligns more with our open source principles. But there’s no denying that GitHub is the code social network. With all the same baggage of other centralized social networks.

It also led me to experiment with git-buggit-bug
Distributed, offline-first bug tracker embedded in git, with bridges to [[GitHub]], [[GitLab]], and [[JIRA]], for two way syncing of issues.
Screenshot of the terminal UI:
![]({% link assets/2021/02/git-bug-termui.png %})
Screenshot of the (local) web UI:
![]({% link assets/2021/02/git-bug-webui.png %})
but it’s not quite ready to work reliably.

Growing the Party

We just completed the switch over to running The original creator James advised and assisted in doing this in a way that should appear seamless for the people currently using the service, of which there are about 1500.

Now it’s time to reach out to existing and new users to explain how the new Moa is going to be run as a public utility, and ask them how they want to participate & contribute.

Open Collective

I’m a big fan of Open CollectiveOpen Collective
Open Collective is an online funding platform for open and transparent communities. It provides the tools to raise money and share your finances in full transparency.
The platform itself is open source on Github under an [[MIT License]]. The front end is a [[React]] app powered by [[NextJS]].
[[Fission]] is a Fiscal Host
. It enables communities to gather funds, list expenses publicly, and pay people all without having to create a formal company or non- profit.

I’m inspired by Social.CoopSocial.Coop
From the wiki:

What?: is is an experiment in user-controlled social media. It is a community hub for people interested in co-ops and development of free/libre social media - these define the common core field of discussion, though they are far from the only things discussed.
We primarily run a [[Mastodon]] social media server: one node in the [[Fediverse]], a federated network of social media applications which communicate using the [[Activity Pub]] and [[OStatus]] protocols.
1 a co-op I am a member of, which uses Open Collective to have people band together to run shared tech services.

I want to do the same thing for Moa, plus go one step further, funding new features.

Regular contributions are a “vote” to keep the base service maintained: running well, secure and useful, and adding improvements over time. The costs are minimal – a couple of domain name renewals per year, and a small server in Europe for hosting.

For bigger features such as cross-posting to new networks, we want to gather support partially in the form of financial contributions. Then, we’ll look to pay designers & developers to work on these features. For me, and for @flancian and @vera, we’re privileged to have some time to contribute to side projects like writing open source code, running a community, and hosting a server as a public utility.

But that’s not true for everyone.

So, the hope is that by enabling some opportunities to do these things as a paid project, this pays it forward to others. I’ve spent a lot of time thinking about my early career in open source – and, indeed, my career today. I’ve always wanted to help get open source creators paid, now I’d like to flip it around: pay people so that they can produce open source creations.

Bring Back Instagram Cross Posting

We’re asking for contributions from people who are active users of the service. Getting the Instagram cross-posting working again will be one of the first larger features to collect contributions for. I’ve started by setting $1000 as the amount that we want to gather, and I’ve personally put in $500 to get things going.

Whatever is raised will be used to pay people to work on code for the project. Not as a bounty, but rather as an hourly paid engagement to work on the code.

If you’d like to cross-post your pictures from Mastodon or Twitter to Instagram 2, please contribute on the Moa Open Collective »


Of course, the project is still open to contributions of all kinds, @vera already has code to push posts to GitLab.3 This will be available on a dev server soon.

Documentation on the website, promotion, and writing down suggestions of new features – and reporting bugs or other issues! – are all welcome contributions.

You can find more info and follow status updates on and follow @moaparty on Twitter and/or @[email protected].

To chat with us live, join the matrix channel

And finally, try out! 4

  1. I wrote a blog post about Joining Social.CoopJoining Social.Coop

    I’ve just finished getting onboarded into [[Social.Coop]], a cooperative that maintains social media technology together, supported by member funding.
    In particular, the main thing the co-op runs is a [[Mastodon]] instance. You can think of Mastodon as an open source Twitter, except spread across multiple individual servers. I’ve been meaning to setup an active Mastodon account again[[I ran my own single user Mastodon on Heroku for a while. Ultimately I want to see these ...
    . @flancian and I are both members, and “met” partly on the Mastodon server that it runs.

  2. We need to research if we need to become some sort of verified Instagram developer or if this is possible at all. We’ll keep the page updated as we find out more. It may not be possible, in which case we’ll look at other features that people decide they want to support.

  3. Cross posting to git using wikilinks. People use Twitter or Mastodon clients to post a lot. By siphoning in content, especially enriched with wikilinks, people can build their digital gardens from right where they already post.

  4. Don’t have a Mastodon account? If you’re interested in open source, might be an easy home server for you to get started with. Trying out different home servers and checking out their local style is definitely part of the charm of a distributed social network like Mastodon.