Hummingbard is an experiment in building communities on top of Matrix. Hummingbard has social elements like user profiles, posts, communities, sharing and so on. It is intended to be more than just a decentralized link aggregator or a microblogging platform.


The main centre of interest in Hummingbard is a space, which is an ordinary Matrix space. A space is similar to a forum board, subreddit or an FB group. The posts in a space are ordinary Matrix events, with additional metadata for rendering social-like posts. Posts can include images, attachments and links. This should be extendable to add polls, reviews etc. in the future. Hummingbard posts can be blog posts too, like this one you’re reading right now.

Spaces can be rendered in various ways, which makes it possible to use them as user profiles like @david, or communities like art. Spaces can be arbitrarily nested, allowing sub-spaces like music/classical or music/jazz/fusion. Spaces can also have sub-spaces that render as wiki pages like hummingbard/about.

It is possible to have different types of spaces. A gallery type renders a space in Instagram-like fashion, like the pics space. Any type of space can be nested under any other type of space. This allows normal boards to have sub-spaces which are galleries, or vice versa. In the future, a space could be rendered to be a business page, and e-commerce page etc.

Hummingbard spaces are very limited in options right now, but basic info like title, description, header-image can be changed. Spaces support custom CSS too.


Hummingbard has very basic social-like features. Users can follow other users and join spaces. A user feed shows posts chronologically. Posts can be shared from one user/community to another user/community. Posts can be replied to. Replies can be nested like in this thread.


Hummingbard works with federated Matrix servers too. Users can create Matrix accounts on remote servers, or log in with an existing account. Logging in with an existing account creates a user profile automatically, unless one already exists. Hummingbard spaces on federated servers work just the same as local spaces. Here are a few examples:

Federated spaces can also have nested spaces like or pages

In an ideal world, owners of Matrix servers would be hosting their own instance of Hummingbard, instead of going through one popular instance.


Hummingbard is dependent on Dendrite, the second-generation Matrix homeserver written in Go. Features like spaces and threading have only been implemented on Dendrite. Note that it is a forked repo with a temporary patch for paginating threads.


Hummingbard’s code will be available as soon as I am able to decide which license works best for us.

What’s Coming