7 ms·
Show HN: Hummingbard – decentralized communities built on Matrix
- CitrusFruits 6y agoI haven't gotten into the Matrix scene yet, but just want to say I think this is really cool and I can imagine there is a niche that would really appreciate it.
- ampdepolymerase 6y agoIs this open source? Deplatforming is a very big concern for a proprietary platform.
- svieira 6y agoBuried towards the bottom of the post: > Hummingbard’s code will be available as soon as I am able to decide which license works best for us.
- SubGenius 6y agoNo but in the next couple days. I actually wanted to go with the strictest copyleft license, but there was a discussion earlier about dual-licensing, which left me quite confused. I'm not very knowledgeable at all in these matters and am taking my time to decide.
- Taek 6y agoIf you go with copy-left you automatically disqualify some major institutions from using your software. Especially for a community based project, there may be institutions that want to make proprietary extensions so it can integrate better with their existing infrastructure. Generally I think MIT is a good default and you should only use a different license if you have a strong case for why MIT doesn't make sense for your project.
- eeZah7Ux 6y ago> you automatically disqualify some major institutions No: it's their choice, and if they choose not to use GPL software it is evidence that they do not care about user and developer software freedom. And that they don't want to contribute back. Also, "some major institutions" is very unclear. Google is ok with GPLv2 but not with GPLv3. Apple has restrictions on their app store. Both companies are extremely unlikely to support decentralized communities anyways - they outright compete against them.
- randmeerkat 6y agoMIT licensing is also how entities like Amazon get away with pillaging OSS. I think you have a real product here and would caution you against releasing the source code. If you do want to open source it, I highly recommend GPLv2 or 3.
- dariusj18 6y agoIn this case, wouldn't it be great if the big dogs picked up the tech and ran with it?
- southerntofu 6y agoIt's really a matter of strategy. Do you want the protocol/vocabulary to be used everywhere, but in closed-source implementations with a free/libre ecosystem constantly lagging behind? Or do you want something that will be less friendly to governments and multinationals but will be part of a striving lesser/non-profit ecosystem? XMPP/Matrix went the first way. Matrix ecosystem has one reference client/server with really good features but hardware requirements that place it out of ordinary folks' reach. Similarly, XMPP has some really good apps built on top (eg. Whatsapp) but the free-software clients (not servers) are lagging behind, though catching up quickly in the past years. ActivityPub ecosystem went the other way with AGPL everywhere (Mastodon/Epicyon/Funkwhale/Peertube/PixelFed/Funkwhale/Mobilizon/WriteFreely/Lemmy/Plume) with the notable of bookwyrm who has the Anticapitalist Software license. As a consequence of the ecosystem tailoring to users/non-profits/cooperatives not corporations/governments, it's blooming into this amazing and friendly ecosystem where everybody contributes and interoperates. Hell, who would have thought three years ago selfhosting federated/p2p livestreaming video would be become so easy as Peertube? Personally i'm more on Jabber/XMPP's side (i contribute to joinjabber.org project, and use Jabbber/XMPP daily) mostly for technical reasons (AP/matrix haven't yet caught up with XMPP in many regards) but in my view adopting loose licensing is what almost killed the XMPP ecosystem all these years ago when it had the exact same promises as matrix does today: one universal federated protocol to bridge to all others.
- feanaro 6y ago> Matrix ecosystem has one reference client/server with really good features but hardware requirements that place it out of ordinary folks' reach. Define ordinary folks, please. Matrix isn't really that resource intensive for a small homeserver between family and friends.
- southerntofu 6y agoWell client-side there seems to be progress but to my knowledge so far Riot was the only feature-complete client, and it's REALLY heavy/slow especially on high-latency links. Loading app.element.io before logging in is already 9MB. Also element responsiveness in general is really tied to latency and is therefore not pleasant to use on bad connections and/or Tor. Server-side, many smaller hosting coops went into matrix but later dropped it because of synapse using too much resources. I know individual selfhosters who were really sad to drop it because their raspberry pi didn't have enough RAM (512MB-1GB) for selfhosting synapse. However someone said in another thread that synapse resource usage is really better these days. Would you recommend it on such low-end hardware? (ActivityPub/XMPP servers fare really well in such conditions)
- jzer0cool 6y agocould someone share the run downs of open source and the various licenses in a laymen's term way? i never felt quite comfortable when why's of certain licenses.
- kanjus 6y agoThese might be helpful to you and Hummingbard's creator: https://choosealicense.com/licenses/ https://choosealicense.com/licenses/ provides a concise rundown of a few common ones https://www.gnu.org/licenses/license-list.en.html https://www.gnu.org/licenses/license-list.en.html: a more detailed list https://github.com/plibither8/licensed https://github.com/plibither8/licensed: a CLI tool to help choose licenses (we're on HN).
- xster 6y agoAlso, since you're asking users to type in their matrix password onto https://hummingbard.com https://hummingbard.com, it would be nice to have some understanding of why (even though you can host anything anyway).
- SubGenius 6y agoHey, my post clearly says to either sign up or use a throwaway Matrix account, and even asks to avoid using your main Matrix account. As for the password, Hummingbard needs it for the same reason that a server-hosted webmail client like Roundcube needs your email password to log in.
- adkadskhj 6y agoWhat does it look like to actually write a program ontop of Matrix? Eg i have a key value store that i'd like to use Matrix (or IPFS/etc) for the P2P layer. Is it a lot like IRC channels that you connect to, pushing data into them and getting data out from other clients in the same channel? Ie is it a series of messages? Or is it something more advanced; with built in conflict resolution or other P2P-y features?
- SubGenius 6y agoHey, I can't comment about Matrix's P2P implementation as I haven't played with it yet. It's still a heavy work-in-progress I believe. Regular Matrix is pretty straight-forward - you join rooms and send events. Events get propagated to all participating/federated servers that are in the room. You watch for incoming events. The Matrix devs should be able to say more about their P2P implementation. :)
- ncmncm 6y agoHey, there's no prob, with Bob! I can't tell what language Hummingbard is coded in. Hint? GPL with targeted relaxations is usually a good way to start. You can always relax the license more later if you exercise the foresight to get contributors to allow relaxations per your judgment; and, don't rely on any strict GPL dependencies. Being GPL but not able to use GPL libraries is a funny position to get into, but that's our world.
- grey_earthling 6y agoA reminder: for software designed to be used via the network, the GPL behaves like a permissive licence — you're not distributing binaries to users, so the requirement to publish source code isn't triggered. If you want forks accessed via the network to publish source code, use the AGPL, otherwise you may as well just use the MIT licence.
- southerntofu 6y ago> is it a series of messages? Or is it something more advanced; with built in conflict resolution or other P2P-y features? From the client's perspective, matrix is just a basic stream of events (like XMPP). The magic happens on the server side where a room is replicated across servers and conflict-resolution voodoo is applied. That's also why synapse server is really really resource-intensive (gigabytes of RAM) compared to equivalent-in-features (apart from decentralized rooms) XMPP/ActivityPub servers ; dendrite is fairing better but i haven't benchmarked it yet.
- hhvn 6y agoIs there any reason this has to be integrated into a server instead of just rendering things like it does currently, from regular rooms?
- SubGenius 6y agoHey, it's not integrated into a server, it just requires Dendrite (a beta Matrix server implementation) for certain features (like threading) that have not been implemented in the reference server (Synapse).
- kixiQu 6y agoThis is very cool! If you end up writing about what the developer experience on top of Matrix is like I'd also be curious about that.
- Arathorn 6y agoIt's insanely cool to see a non-IM use case built out on top of Matrix appearing (almost) out of the blue - congratulations :) The implementation currently freestyles a bit on the event format for the messages, which is somewhat our fault on the Matrix team for running horrifically late on MSC1767 (https://github.com/matrix-org/matrix-doc/blob/matthew/msc1767/proposals/1767-extensible-events.md https://github.com/matrix-org/matrix-doc/blob/matthew/msc176...) which proposes how to do rich custom event formats (e.g. blog posts) which are still renderable and visible to more generic Matrix clients (e.g. Element). As a result, if you join a Hummingbard conversation via another Matrix client currently you can't see all the messages (or vice versa). However am hoping that Hummingbard might be a trailblazer for actually exercising MSC1767 in the wild and knocking it into shape, which would hugely benefit the whole Matrix ecosystem :) In terms of licenses, it depend on how you want the project to be used. If you want folks to run it for personal use as a decentralised social network, I'd personally go GPLv3 or AGPLv3. If you want commercial folks to be able to build on it too, then Apache is probably the best bet. copyleft + proprietary dual licensing is another option, but means you'd need any contributors to agree to the dual licensing (could be tricky), and could be seen as not being in the spirit of the GPL. that said, IANAL, YMMV. (At the risk of going somewhat off topic, another exciting Matrix client also appeared today: https://github.com/pixlwave/Watch-The-Matrix https://github.com/pixlwave/Watch-The-Matrix - the first native Matrix client for Apple Watch. https://youtu.be/Jh9iewrBdGQ https://youtu.be/Jh9iewrBdGQ)
- southerntofu 6y agoHello, i'm not a contributor to the matrix ecosystem but i'm happy to see discussion of the vocabulary used and MSC1767. Is there a working group talking about vocabulary or interop with other federated networks (ActivityPub/XMPP)? I'm a contributor to joinjabber.org which is not a software project but a community-oriented one, and we'd like to showcase and help improve interop with Matrix, but for now due to bugs in bifrost a bot relaying messages is the best we can do. Specifically about hummingbard and/or MSC1767, have you considered borrowing/extending ActivityStreams 2.0 vocabulary? It's based on JSON-LD (proper schemas make it easier to test implementation) and could be extended to support matrix Actors/Services. There's already a bunch of really cool stuff being developed on ActivityPub (lemmy/funkwhale/peertube/mobilizon) and Jabber/XMPP (movim/libervia). It would be great to achieve interoperability between all those.
- zaik 6y agoHow does this compare to movim.eu (based on XMPP)?
- ohyeshedid 6y agoThis is a really interesting idea. When you decide on a license, I'll be diving into this for sure.
- erlend_sh 6y agoThis is an essential extension of Matrix, great job! For more signups, it would be great to support social logins. That has been implemented in some version of Matrix, but I’m not sure if it’s in Dendrite yet: https://github.com/vector-im/element-android/issues/2452 https://github.com/vector-im/element-android/issues/2452
- jarbus 6y agoWow, this is really cool! My biggest issue with Matrix right now is performance, does it use Synapse as a backend and if so are there plans to move to dendrite in the future?
- likeafox 6y ago> 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. Pretty interesting. I was putting a little effort to get a Dendrite homeserver running a month or two ago and it was non-trivial at that time for me - but evidently the author feels it's stable enough to run an experimental project like this.
- newscracker 6y agoThis sounds terrific, and I can’t wait to try it out! I’m looking for an easy to use alternative to Facebook Groups. With an app (sometime soon, I hope), there’s a better chance of getting more users to adopt it. I’ve been waiting for Pixelfed (decentralized alternative to Instagram) to release an iOS app, but it still hasn’t seen the light of the day.
- dantyti 6y agolove it! this is the straw that finally got me to read up on Matrix. Will definitely start running my own server this year.
- betwixthewires 6y agoWhy? I mean, it's cool to see people build interesting things, and I like to see tools used in unorthodox ways, but it just seems to me that using Matrix for something other than it's intended use will lead to matrix used for everything, and we see where that got us with http. Why not just use ActivityPub or something built for these types of uses?
- Arathorn 6y agoBut Matrix is intended to be used for this. Matrix is just a generic realtime data sync layer; storing social media on it is just as appropriate as IM. It’s just that we happened to build out IM first.