98 comments

[ 3.2 ms ] story [ 150 ms ] thread
Can this be setup without GitLab?

Also this looks a LOT like Slack. Any infringements?

You can set it up without GitLab via http://www.mattermost.org/download/

Only the docker install is pretty easy to do, doing it from source is pretty tedious, one of the reasons we will bundle it with GitLab.

It seems inspired by Slack but we think it is different enough and it will grow more different over time.

"different enough and it will grow more different over time"

Can you elaborate more? Don't mean any disrespect, but this seems like a complete copy-paste of their interface.

I agree they do look similar. Obviously none of the code was copy pasted and I hope the products will diverge further over time. GitLab started out with a pretty similar look but by now it found its own look.
Obvious UI clone is obvious.
You can install a preview of Mattermost on a Mac in about 5 minutes with Boot2Docker in a single container instance, instructions here (email not enabled in Docker instance): https://github.com/mattermost/platform/tree/v0.6.0#mac-osx

In terms of messaging functionality, there's nothing ground-breaking about the UI, our focus is on avoiding what happened to SpinPunch when we were previously locked in to a proprietary SaaS messaging service: http://www.mattermost.org/why-we-made-mattermost-an-open-sou...

That said, Mattermost was originally designed to be a games portal (not just a messaging app), and you'll probably see the UI bring that functionality back in the "AppCenter" feature being developed: https://docs.google.com/document/d/1s6vrticxgz9PsxePQ-dFrsKp...

As a follow-up will there be a mobile app for this too?
Not sure yet, maybe Ian of Spinpunch can comment.
Yes, we have an iOS app internally, but it needs updating, and also we need to get push notifications to work for on-prem customers.

We're working on getting our issue tracking system transparent so the community can see everything that's being worked on.

Push notifications in Slack are an important feature. It allows me to be quickly accessible when I am away from my computer.
Sorry for being the only Top level commenter but one more question:

One of the big benefits of Slack right now for me is that there are NYCTech and Philly Tech slacks that I'm active in. Will there be any way to integrate this with other communities that on Slack, maybe with something like Slackline?

I think https://slackline.io/ is really interesting, channels shared between different team. I see the use case for this, in GitLab issues it is also annoying that it is hard to work with people from outside the company if the issue is private. But there are no plans to do something like this at this moment. However, it is all open source, feel free to add functions. And because you don't have to pay for accounts there is no limit to the number of people that can join.
I love using Slack and have been looking for an open source alternative. This sounds great! Anything similar (open source / on premises) for video and desktop sharing? I am trying to get away from Skype or Google Hangouts in the same way.
We have not found anything good for video calling. Not open source but also not closed source. Still using Hangouts that uses a lot of CPU with Chrome on OSX (tip: use Safari to force another codec).
FWIW you should look into Kurento. It's kind of a pain to set up, but would likely do the job.

kurento.org

OSS and all that.

Thanks, looks interesting!
Sococo RocketShorts can support dozens of simultaneous audio/video/screenshare clients/conversations in the same area. I'm not sure what their source policy is...
Anything similar (open source / on premises) for video and desktop sharing?

Apache OpenMeetings gets you part of the way there. Unfortunately the UI is Flash based, and it looks a bit outdated. But it is usable, and supports audio, video, shared whiteboading, etc.

Not sure what the latest plans are among the core project maintainers, as far as getting away from the Flash interface. But if they aren't planning to do anything, I might take a stab at it. If anybody is interested in helping with something like that, ping me.

Anyway, if you want to take a look, we keep an instance running on one of our demo servers:

http://demo2.fogbeam.org

You can login with username "kflynn" and password "secret". Registering a new account probably won't work, as I don't have the email support fully configured, so I don't think you'll get the verification link if you try to register.

I'm sitting in one of the rooms now if anybody wants to chat, so they can actually see this work. Just login and then go to

http://demo2.fogbeam.org:5080/openmeetings/#room/42

Edit: New user registration is fully setup now, so feel free to create your own account if you want to play around with this for a while.

A while back I wrote https://echoplex.us, which had video/voice WebRTC calling

Now, I've mostly abandoned the project

It may be something for you to check out

Very very cool integration! We're finally starting to see on premises options that can take on cloud solutions without compromising these sorts of features.
Wow. Thank you! And thank you for open sourcing it.

There are so many reasons I won't use a hosted chat system, but all the on-premise options suck on mobile (otherwise I'd just use ircd), or just suck (hipchat). This is a great option.

Thank you! Just to be sure, Spinpunch https://www.spinpunch.com/ made Mattermost, we're just working to package it up in GitLab. To enable this they added OAuth and PostgreSQL support to Mattermost.
Why Mattermost over Rocket.chat, Let's Chat, or Kandan (as listed at https://about.gitlab.com/direction/)?
Nice that you found that page! We considered all of them. Rocket.chat and Mattermost seemed like the best products. I don't like that Rocket.chat is made with Meteor and therefore Mongo only, we already ship and love PostgreSQL. Also, I met Ian from the Mattermost team at YC camp and we hit it off together.
It’s a shame you didn't to talk to us too. There are a lot of benefits of using Meteor. First, it plans to be DB agnostic, so Postgres support will come in the next version, and many other DBs. So if that was the main reason, it's was a bit short sighted. Also, we have already submitted our Mobile apps to Google Play and Apple Store. Sure the first version is Hybrid, but they work really well, and the native version is on the making. We are also working with a team from the US army to implements the DoD Manual 5200.01V2 so they can use it at government agencies too. On scalability, we are pushing the limits with a deployment that has 40k users for the Federal University in Brazil. Hopefully GitLab will not commit to a single option so early, that would be premature at this point, and maybe we can work together to offer another chat option?
I send you an email to set up a call.
I agree with you about the MongoDB barrier. That's the only reason I haven't already set up a Rocket.chat server myself yet.

I have worked with MongoDB on several applications in the past, and I just "don't get" why people think so highly of it.

Honestly, this seems awesome. :)

Mattermost just needs an Android & iOS app selection.

This is just great. Decentralization is a good thing. Not having your entire conversations on a third party solution is definitively a bright idea.
Thank you!

Too many solutions rely on a centralized off-site hosted server and for some sensitive environments an on premesis solution is required.

Does this support XMPP federation, and is it based on XMPP? If not, I am interested in the analysis performed and why you opted to not use XMPP.

Thanks click170,

When we talked to potential users, XMPP didn't come up as a priority, and we haven't yet had a feature request filed for it.

Very happy to have it added so XMPP can be upvoted: http://mattermost.uservoice.com/

One of the major reasons my current organization uses Hipchat is that it supports XMPP. The importance to us is that it allows us to use OTR between users with clients like Pidgin or Adium. As a security company, that is a very valuable thing.
(comment deleted)
Honest-to-god question: Why all those web chat servers? I feel something very similar to the shift from Usenet to web forums is happening. Is IRC really so hard to use?
web-based IRC is ubiquitous too. kiwiirc makes a free modern-looking client.

that's how i used freenode for the longest time.

IRC doesn't have rich media support, and without setting up a bit of backend work, you will just have an ephermeral chatroom.
IRC might not, but an irc -client- can. :)
(comment deleted)
IRC is great, and I will stick with it. The issue is the rest of the org wants chat too, they can't even setup email. Slack is for them.
No, but these web chats provide features that IRC doesn't, provides them better, or automatically.

Permanent history, embedded images and other media, persistent notifications without a permanent client logged in, no additional software needed, formatted text, more intuitive access controls come to mind.

> Permanent history

Slack frequently does not even offer this.

> embedded images and other media

Many IRC clients do offer this

> persistent notifications

I only get notifications when my client isn't logged in via Email. I can get this, and other options, with an IRC bouncer.

> additional software needed

There are web IRC clients.

> more intuitive access controls

About the same between Slack and IRC clients here. Click on a channel in the sidebar. Right click for more options. Type and hit return to send messages.

I use Slack, not IRC, but these aren't the real advantages for Slack over IRC.

> > embedded images and other media

> Many IRC clients do offer this

Can you list some?

Limechat, IRC Cloud, KiwiIRC...

Since the protocol itself supports file sharing between users and within channels, and many (most?) clients display previews of internet media links, embedded media is very straightforward in IRC.

I've worked with two organizations now where Slack has been heavily used. There is absolutely no chance 75% of the orgs would have used IRC, even if mandated, the way Slack is used.

Even something as simple as having an avatar next to your name makes all the difference.

The real question should be what does Slack do that Hipchat did not? The designs are obviously much different, but other than that, was it just amazing marketing and word of mouth? Even the Slack founders seemed a bit baffled by this when asked months back.

If you used HipChat, you would have found that it was consistently buggy and incredibly frustrating to use… but I don't think that alone would account for the difference in growth.
I vaguely recall hipchat originally having a pretty shitty adobe air based app. Ever since they went "native" though, the overall experience has been much better.
(comment deleted)
I'm in an org that uses hipchat. On the surface it shouldn't be bad. But it fails often in fundamental ways, such as sending push notifications on mobile and desktop, chat messages, entering a chat room on mobile, etc. Hipchat doesn't scale well.
Hipchat is good. Slack is just much better.

From inviting teams, to the mobile client, editing messages, emojis, youtube videos, music integration, team management, role management, bot creation, keyboard shortcuts, slack just does it better.

Hipchat's mobile client is garbage, usually requires strong connectivity to be useful, and the interface is inferior in everyway.

For example, when I get a hipchat notification on the mobile app, when I slide to unlock, it takes me to the home screen, and I have to find the chat that message came from. Via slack, it takes me directly to the message thread.

Flowdock was (and is) much closer to parity with Slack, and I really wanted to prefer it for various reasons… but Slack just got the UX much closer to where it needed to be.

That combined with a few key adopters are what pushed Slack over the edge to meet the need before Flowdock could.

If you're talking to someone who isn't technical, they will find IRC very, very difficult to use. Try getting your mom (or your sales team) to use IRC as the only communication channel... it doesn't work at all.

The reason Slack works is that it's IRC with a great UX and easy-to-use clients on every device. The integrations and search are an added bonus, but the piece that separates it is a fantastic, fantastic UX.

As near as I can tell, all the new stuff is a strict subset of what is fairly standard in the XMPP world. The only novel addition is that instead of supporting many clients, there is one blessed client, which is web-based. This means that rather than wondering if a given client supports some feature, or has some emoticon set installed and turned on, you know exactly how the client behaves and can implement features faster as a result. The configurability, flexibility, and client choice that XMPP offers appear to be drawbacks rather than advantages. Plus web browsers are so capable now that using them as a programming base for something like chat immediately gives you a huge UI step up.

Tone note: I'm dead serious, no sarcasm anywhere in there. Things that are self-evidently true to developers like "choice is good!" aren't always true in the market. Being able to count on a specific client really helps with the feature development.

If you're interested in getting in on the action you could probably do worse than start a startup shipping an open source XMPP server, using an open source XMPP web client, and doing the rather minimal modifications it would take to make it support some manner of embedding YouTube videos and inline images. (Seriously, like, two weeks, from a standing start.)

Honest question: who here is using open source XMPP software today in a Slack-like manner? If so, what is your software+config, and how do you like it?

When I last investigated XMPP for this, back in January 2014, I found that open source support by both servers and clients, for Slack-like features such as search and persistent chat history, were at least rough around the edges, if not lacking entirely.

(comment deleted)
Yes. If I drag an image onto Slack, everyone sees it. If I do that on an IRC channel, most of the channel members see only a URL string. Similarly: I can log IRC... if I set up a bot to do that. Slack comes out of the box with searchable logs.

It's not just having the raw capabilities in the system (and IRC makes some of those capabilities difficult; it's a very simple protocol). It's that it raises the lowest common denominator; everyone using Slack has all the things Slack offers.

Going off on a tangent/rant here but I'll go out on a limb here and say that web chat is often (ab)used in a way that makes it the equivalent of global variables for communication: if offers the path of least resistance for sharing information (state) at the cost of making this information harder to retrieve, search, structure, associate, leverage in the future. Or to try another metaphor, it's the equivalent of dumping data on flat free-text files instead of a relational database.

Web chat does away with two (at least) properties I have come to appreciate in written communication: being asynchronous and contextual. Although modern web chat systems typically work even when you're offline by sending notifications, they're primarily a realtime system. There is the implicit or explicit expectation that a chat message (especially a direct one) should be answered asap, unlike an email or a tracker comment. As for context, there is little to none. In more than one company I've seen chat effectively replace the dedicated bug/ticket tracker system, with people polluting one or more channels with intermixed discussions that would be better off as comments on the ticket at hand. It's a mess for anything other than transient, throwaway stuff you wouldn't mind purging after a few hours or days.

Looking forward for a "web chat considered harmful" blog post if there hasn't been one already. </rant>

> Is IRC really so hard to use?

Yes it is.

I've successfully had the following classes of people use Slack (across 4 teams):

* Wife (Engineering PhD)

* Dentist

* Martial Arts Instructor/Gym Owner

* EVP of Engineering

* Business Owner

* Student Loan Coordinator

No way I could get them all use IRC, and enjoy it. Also, Slack has much more capabilities than just a chat server. For me personally, the fact that you can easily upload documents directly and collect them in "channels" cuts down on the email volume I get.

It also works pretty great on my desktop, browser, and my iPhone.

grove.io
So basically Slack without the features and usability?
Slack but not being tied to a single dictated user interface completely controlled by a fickle startup's whims.
Hey gitlab team - I'm really excited to see that release. Is there an IRC gateway? If not, is one in the works? I'd love to contribute to it.
I don't think there is in Mattermost, I think it would be welcome.
shameless-plug: We've been building the federated/anti-yet-another-silo version of this/Slack. Instanced interconnect kinda like usenet did and email does for 30-odd years now.

Our emphasis on being a tool for developers to add federated communication to their app (vs being another silo like Slack). The UX isn't nearly as polished, but it does federate with other servers using the XMPP network (e.g a conversation earlier today http://imgur.com/UL34KSF).

A developer started working on a slack-like UX and we threw up at http://buddycloud.org (https://github.com/buddycloud/buddycloud-angular-app if anyone wants to help).

names are hard, but i implore you to continue your search
The federation is impressive!
Slack is really useful but it really bothers me that it's hosted off-site. I would rather my communications with my team stay within the team, and not with slack.com.
Awesome, that is exactly what GitLab Mattermost will enable.
For those that might not realize, this isn't a new version that gitlab wrote, but open source doing what it does best! They've extended mattermost[1] and are including it out of the box with gitlab. Really slick stuff.

[1] http://www.mattermost.org/

Indeed, this is the work of Mattermost/Spinpunch. As I mentioned before on https://news.ycombinator.com/item?id=10081462 the Spinpunch team was nice enough to add the OAuth and PostgreSQL support we needed. We hope it will be a fruitful collaboration.
Really glad to see this happening in the open with a company (gitlab!) helping sponsor / work with a bit of it. Great to see
Thanks! We're happy to be collaborating with Spinpunch. We're not sponsoring them, we're just helping to grow Mattermost by bundling it.
Gitlab as id/auth provider, eh? What is out there in terms of id/auth appliances that are sufficiently generic/cross-platform?
The Mattermost implementation is based on OAuth, so any OAuth provider will work. GitLab itself supports LDAP, OAuth, Kerberos and SAML.
Can somebody list all Slack alternatives (and maybe weigh the pro and cons between each of them)? I really lost track, but I also want to setup (read: self-host) one for my team.

There is:

    * Mattermost

    * Rocket.chat

    * Let's Chat

    * Kandan

    * ???
Take a look after us, we have best mobile apps: https://actor.im
App's first screen has typo: "please condifm your country code [...]"

Just FYI :)

Nice to see project that opensourced in fear of us. Very early alpha after two days of our promise to opensource our stuff.

But you are more succeeded in promoting that our project. Congrats.

Any plan for importing data from Slack, thus easing the migration?
No, not at this time.