Hummingbard is an experimental client for building decentralized communities on top of Matrix. See a live instance on hummingbard.com
- Register local and federated users
- Federated logins with existing Matrix accounts
- Join local and federated spaces
- Follow local and federated users
- Generic post editor (markdown)
- Quick posts, with images/attachments/links/youtube/etc
- Blog posts with slug/metadata
- Replies to posts
- Sharing posts on profiles and across spaces
- User feed
- Public feed
- Create local and federated spaces
- Different space types - community, gallery
- Customize spaces and user profiles with basic info, custom CSS
- Deeply nested spaces (
/music/jazz/fusion
)
- Private spaces and user profiles
- Embedded chat in spaces
- Direct Messages
- Registration flows
Hummingbard relies on these features that are currently only implemented in Dendrite, or expected to be implemented soon:
There is a temporary patch in our forked Dendrite for paginating threads. This should not be necessary once upstream Dendrite implements threads fully.
To run Hummingbard, you'll need:
- Dendrite fork configured and running
- redis (for session storage)
- postgres (for various non-Matrix storage)
- goose for migrations
- Clone the repo
- Copy
config-sample.toml
toconfig.toml
, update with DB config etc. - Run
make
- Run migrations in
db/migrations
- Run
npm run build
in/ui/js
- Pull a JSON dump for large matrix rooms with
curl 'https://matrix-client.matrix.org:443/_matrix/client/r0/publicRooms?limit=500' > bigrooms.json
(we avoid large rooms to help Dendrite not consume too much resources) - Run the binary
./bin/hummingbard
- Put Hummingbard behind Nginx
- Server static files via Nginx
- Use a systemd unit if appropriate
The code is currenly licensed under AGPLv3. I may choose a more permissive license in the future.