Arbor is an open-source chat collaboration system that thinks a little differently about conversations. Arbor captures more of the context of messages than traditional chat, allowing you and your peers to communicate more clearly with less effort.
An arbor is an artificial structure that supports the growth of climbing vines in a garden. Arbor is an artificial structure for chat that helps conversation flourish.
Arbor messages track what you were responding to when you wrote them. Every message explicitly has a "parent" message that it is a response to. This allows Arbor to visualize the relationships between messages for its users in a way that other chat systems cannot. This makes your conversation history into a tree instead of a list.
If you think about it, most things you say in a conversation are a response to what someone else just said. Arbor simply captures that information and uses it to help you make sense of very large conversations. Ever get confused when many people respond to a message at around the same time? Arbor makes that situation coherent.
Note the flow of the conversation on the left and how it appears that Bob is saying he's looking to see if Alice squashed her commits. She then replies and says yes, she would love his feedback. Then Bob says that feedback is not always necessary and Charlie chimes in with a seemingly random reply at the bottom. Compare that to the view on the right where each message is a reply to another and it's much clearer that there are actually 4 conversations going on simultaneously: Bob looking at Alice's PR, Charlie asking if her commits were squashed, Alice confirming that they were, and Bob saying that squashing commits is not always necessary. Without the context parents and children provide, it's much more difficult to determine how a conversation actually played out.
If you're technically inclined, you may be interested in the more technical overview, which digs a lot deeper into the parts of Arbor and how they work.
Check out our getting started guide to take Arbor for a test drive!
If you want to host a relay yourself, check out this guide.
Arbor started in February 2018 as a wacky idea. We implemented a proof-of-concept system that embodies chat as a tree over the course of the next ten months, and we were really pleased by the results. However, this system had some serious flaws due to its proof-of-concept nature. It had no security, and no good way to build security. We've started over, but this time we're building something serious. It takes a lot of work to build a secure communication platform from the ground up, so it's slow going.
For the new implementation, we have:
If you'd like to keep up with what's going on in Arbor or to help us build it, you can:
Come to our weekly Sync meeting! We meet every other Thursday (except some US holidays) at 7pm (Eastern US Time) on Big Blue Button. We get together to talk about project status and to give people a chance to ask questions. We're always happy to chat with new people! Check our mailing list to see whether it's an on or off week.
Join our mailing list
Check out our open issues if you'd like to help out, report bugs, or request features.
Who do we need?
The inspiration for the logo was a sketch by Katerina Waldon. Chris Waldon hacked together the current one in Inkscape.
When the project started, we didn't know sourcehut existed. We really like some of the ideas behind sourcehut, and we're trying it out for the time being as a possible permanent home for the project. We will try to mirror all of our code back to GitHub to make it all easy to find though.
Sure; there are hundreds of other applications that do chat, and many of them are very good tools. Arbor's goal isn't to replace them all, but to demonstrate that there are other interesting ways to build chat.
commit 35fad9cebe6d7f88dcced19ac1738e764be4c7ae Author: Chris Waldon <firstname.lastname@example.org> Date: 2021-04-14T17:37:02-04:00 doc: fix off-by-one in node type spec Signed-off-by: Chris Waldon <email@example.com>