braid-chat

https://github.com/braidchat/meta/wiki
rafd 2016-01-08T19:21:05.000005Z

First, to summarize: a community created clojure(script) chat alternative to slack keeps popping up as a suggestion in the recent discussions about migrating the clojurians community away from Slack due to worry about Slack dropping support for large free chat communities.

rafd 2016-01-08T19:21:28.000006Z

Discussions in both #C03RZGPG1 (on Jan 6-7 2016) and #C0CB40N8K

rafd 2016-01-08T19:24:20.000007Z

As a convenient coincidence, I and my co-worker @jamesnvc, have been working on a clojure(script) chat app for a few months on the side to address shortcomings we found with Slack. Our plan was to open-source it, and if the reception was positive, to run a business around a 'hosted version', like Wordpress.

rafd 2016-01-08T19:25:32.000008Z

A demo video (of the product after a weekend hackathon) is here:https://www.youtube.com/watch?v=pa2bUsChFqM

rafd 2016-01-08T19:28:06.000010Z

My main gripe with Slack/IRC is that rooms aren't a great model for productive conversations b/c they lead to multiple intertwined simultaneous topics. The design above was a prototype to see if a 'conversation' based UX would be better... and based on having used it internally for 3+ months, I don't want to go back. At the same time however, it's not a good fit for communities (but I think it could be tweaked, it just wasn't a design goal as of yet)

shaun-mahood 2016-01-08T19:29:03.000011Z

@rafd: I think most of the summary might need to be thrown into a Github page and linked as a saved message or as part of the channel title - one of the drawbacks I've found in Slack is when joining a channel later it's a pain to find important messages or context from earlier in the chat history.

rafd 2016-01-08T19:29:48.000012Z

@shaun-mahood: good idea

rafd 2016-01-08T19:34:22.000016Z

If folks are willing to go along with a not-identical-to-Slack clone, then great! Let's discuss. If no one is, and would rather stick with the Slack design, then that can happen as well (but I will continue working on what I have), and someone else would need to lead the project.

martinklepsch 2016-01-08T19:40:35.000020Z

@rafd: I was working on/tinkering with similar ideas a while ago: http://www.martinklepsch.org/chaf.html ‚— maybe they provide some inspiration for you. There's a rationale missing on that page but you'll get it anyways I guess.

martinklepsch 2016-01-08T19:40:46.000022Z

nice demo also :simple_smile:

martinklepsch 2016-01-08T19:41:04.000023Z

I really buy the "rooms are a shitty abstraction" thing

wamaral 2016-01-08T19:44:08.000024Z

@rafd have you published the source code yet?

rafd 2016-01-08T19:44:56.000025Z

nope, but I can do so soon, need to sanity check for accidental keys and such

rafd 2016-01-08T19:45:21.000026Z

i can invite folks to the instance we have running for ourselves, let me know

sveri 2016-01-08T19:48:10.000027Z

Do you think it is possible to scale your product to support several thousand users from an architectural point of view?

sveri 2016-01-08T19:50:03.000028Z

And do you think you can live with someone else also providing services and hosting around it? Not saying i want to do so, but once you open source it and it becomes popular maybe someone else will.

rafd 2016-01-08T19:52:11.000029Z

@sveri In terms of code, there are probably things that can be improved. Currently its websockets communicating with a small API on top of a datomic database. It wouldn't handle thousands of people tomorrow (partially architecture, partially the fact it's currently on a $10 DO droplet) ... but Facebook wasn't architected to handle the sort of load it has now in the first year.

rafd 2016-01-08T19:55:13.000030Z

@sveri as to your second question, I think it would only be fair to the community. I've been entertaining the idea of a license like Datomic (where they have open-versions, ...but you can't offer datomic hosting yet)... but... I know how annoying that sort of thing is (it's my biggest gripe with Datomic). I would rather encourage competitors and compete on service than stunt the open-source potential.

rafd 2016-01-08T19:57:01.000031Z

http://Wordpress.org + http://Wordpress.com is the closest model. I'm sure that devs + some companies + come communities would want to run their own version, but most would just want a hosted solution (like Slack). I'd hope that those interested in running a hosted thing would work with me rather than against, but, if it were to happen, it's ok.

rafd 2016-01-08T19:57:22.000032Z

There are many Wordpress hosting sites, but http://Wordpress.com is still doing well.

rafd 2016-01-08T19:59:10.000033Z

@martinklepsch: a lot of good thoughts there. Showing all the active conversations has worked well in our setting (a few devs on a team), but I think your idea of showing just the initial message and then expanding is a good one for larger communities.

rafd 2016-01-08T19:59:34.000034Z

In concept, I think it would be similar to a real-time forum.

rafd 2016-01-08T19:59:56.000035Z

...which begs the question, how's that different from Discourse (which updates new posts in real time)

martinklepsch 2016-01-08T20:00:06.000036Z

yes. the idea behind the name was chat + forum = chaf. pretty dull but don't care

martinklepsch 2016-01-08T20:00:56.000037Z

@rafd: it's real time but there's no chat feel to it. messages are composed in huge rich text fields and messages consume a good amount of screen space

rafd 2016-01-08T20:02:59.000039Z

@martinklepsch: I agree, I think there is room for something in between the two; forum-like but with a chat-feel

👍 2
rafd 2016-01-08T20:05:50.000040Z

I will work on setting up a git repo and wiki to kick things off.

sveri 2016-01-08T20:09:12.000041Z

Are you using boot or leiningen?

rafd 2016-01-08T20:15:05.000044Z

lein, om (not om-next, but will want to migrate), sente, datomic

rafd 2016-01-08T20:16:49.000045Z

things are probably a little messy with the code at the moment, but I will do what I can to clean up and open-source today

rafd 2016-01-08T20:17:27.000046Z

I imagine the first little while will be people complaining about this and that... and me and @jamesnvc doing the fixes, which I'm fine with.

rafd 2016-01-08T20:17:44.000047Z

*complaining aka. advising

sveri 2016-01-08T20:18:14.000048Z

No problem, I have some time tomorrow, would be nice to have a look at it

sveri 2016-01-08T20:18:47.000049Z

If things work out well I have a root server at hand we could use for a test instance and stuff

meow 2016-01-08T21:29:11.000052Z

@rafd: Nice summary and introduction to your project. Since you are serious about this independent of the issues facing us with slack, I would love to participate in your development as an interested user and supporter.

meow 2016-01-08T21:30:30.000053Z

I like your attitude.

rafd 2016-01-08T21:30:50.000054Z

@meow thanks! glad to have you

rafd 2016-01-08T21:31:27.000056Z

The code is now available here: https://github.com/braidchat/braid I didn’t want to host it under my own github, so I gave the project a name: Braid. Wiki here: https://github.com/braidchat/braid/wiki We’ll be working on the ‘get-it-running-on-your-machine’ experience over the next week. In the meantime, you can try to decipher our setup notes here: https://github.com/braidchat/braid/blob/master/deploying.md

meow 2016-01-08T21:32:10.000059Z

nice

meow 2016-01-08T21:36:12.000060Z

@rafd: I think there have been some interesting discussions that have taken place on the test setup of mattermost that might be of value to you. If time is precious you might want to ignore it, but if you want to see the kinds of things that were discussed over there please just let me know and I will PM you an invite link. This applies to anyone interested, btw. Just say the word.

rafd 2016-01-08T21:37:23.000061Z

@meow: yes please

meow 2016-01-08T21:39:49.000062Z

Actually, the word was ^meta, but please will do. 😉

gjnoonan 2016-01-08T22:04:35.000064Z

Lol Patrick

gjnoonan 2016-01-08T22:04:39.000065Z

Hello everyone

gjnoonan 2016-01-08T22:05:23.000066Z

@rafd: I will look through the code and see what potential starting point we may have, thanks again for your offer :-h

rafd 2016-01-08T22:09:40.000067Z

@gjnoonan: realistically, i don't think it's a contender for moving clojurians over in its current state

rafd 2016-01-08T22:10:08.000068Z

i started this group b/c i think it's a worthwhile effort independent of whether clojurians is on it

sveri 2016-01-08T22:15:14.000069Z

what do you need the aws access keys for? And do you need them for development too?

rafd 2016-01-08T22:23:29.000070Z

uploading avatars only

rafd 2016-01-08T22:24:36.000071Z

you can skip them and empty out chat.server.invite/upload-avatar

rafd 2016-01-08T22:25:42.000072Z

if anyone wants an invite to an instance i have running PM me

rafd 2016-01-08T22:25:46.000073Z

with your email

rafd 2016-01-08T22:27:24.000074Z

or just say "me me me" and i'll look it up on your profile

✋ 1
rafd 2016-01-08T22:34:06.000075Z

anyone have recommendations on preferred ways to do roadmap/planning tasks for an open-source project? I mostly see github issues being used for bugs and feature requests

rafd 2016-01-08T22:47:58.000076Z

@sveri: if you do get it running, let me know any issues you've faced (i've already written down 'don't require aws keys to get started')

sveri 2016-01-08T22:51:59.000077Z

I give it some time tomorrow and write up what i find. Thanks for providing the code so fast. Gn8 everyone.

rafd 2016-01-08T22:52:06.000078Z

night

meow 2016-01-08T23:49:34.000079Z

me me me

martinklepsch 2016-01-08T23:49:43.000080Z

@rafd: http://waffle.io is like trello for github issues

martinklepsch 2016-01-08T23:50:48.000081Z

Besides that github issues with checklists and stuff seem to work well

meow 2016-01-08T23:52:22.000082Z

I've used a bunch of different project management tools over the years. Can't think of one that I would recommend. These days I use pen and paper. Caveman style.

meow 2016-01-08T23:53:16.000083Z

Have a thought, pick up stick, scribble, scribble, scribble...