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.
Discussions in both #C03RZGPG1 (on Jan 6-7 2016) and #C0CB40N8K
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.
A demo video (of the product after a weekend hackathon) is here:https://www.youtube.com/watch?v=pa2bUsChFqM
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)
@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.
@shaun-mahood: good idea
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.
@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.
nice demo also :simple_smile:
I really buy the "rooms are a shitty abstraction" thing
@rafd have you published the source code yet?
nope, but I can do so soon, need to sanity check for accidental keys and such
i can invite folks to the instance we have running for ourselves, let me know
Do you think it is possible to scale your product to support several thousand users from an architectural point of view?
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.
@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.
@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.
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.
There are many Wordpress hosting sites, but http://Wordpress.com is still doing well.
@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.
In concept, I think it would be similar to a real-time forum.
...which begs the question, how's that different from Discourse (which updates new posts in real time)
yes. the idea behind the name was chat + forum = chaf
. pretty dull but don't care
@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
@martinklepsch: I agree, I think there is room for something in between the two; forum-like but with a chat-feel
I will work on setting up a git repo and wiki to kick things off.
Are you using boot or leiningen?
lein, om (not om-next, but will want to migrate), sente, datomic
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
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.
*complaining aka. advising
No problem, I have some time tomorrow, would be nice to have a look at it
If things work out well I have a root server at hand we could use for a test instance and stuff
@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.
I like your attitude.
@meow thanks! glad to have you
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
nice
@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.
@meow: yes please
Actually, the word was ^meta
, but please
will do. 😉
Lol Patrick
Hello everyone
@rafd: I will look through the code and see what potential starting point we may have, thanks again for your offer :-h
@gjnoonan: realistically, i don't think it's a contender for moving clojurians over in its current state
i started this group b/c i think it's a worthwhile effort independent of whether clojurians is on it
what do you need the aws access keys for? And do you need them for development too?
uploading avatars only
you can skip them and empty out chat.server.invite/upload-avatar
if anyone wants an invite to an instance i have running PM me
with your email
or just say "me me me" and i'll look it up on your profile
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
@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')
I give it some time tomorrow and write up what i find. Thanks for providing the code so fast. Gn8 everyone.
night
me me me
@rafd: http://waffle.io is like trello for github issues
Besides that github issues with checklists and stuff seem to work well
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.
Have a thought, pick up stick, scribble, scribble, scribble...