
Show HN: Let's Chat, a self-hosted chat app for small teams - hhaidar
https://sdelements.github.io/lets-chat/
======
alfg
This looks great. Thanks for making it open-source. I've tried other self-
hosted chat apps, but this one looks promising. IRC integration would be
great. :)

When I was experimenting with websockets, I wanted to make a simple chat app
that integrates with Github projects. Of course, not nearly as feature rich,
but just an experiment to learn.

Source with demo: [https://github.com/alfg/chathub-
client](https://github.com/alfg/chathub-client)

~~~
cellover
Indeed very interesting open-source application! I agree IRC integration would
be really nice, it's one of my favourite features on Slack, allowing me to
communicate with my team mates without changing context when i'm inside a
_server context_.

I wrote a simple how-to to do it for Slack and would be delighted to
contribute on this feature for _Let 's chat_!

[http://www.pilgrimbreak.com/how-to-access-slack-with-
command...](http://www.pilgrimbreak.com/how-to-access-slack-with-command-line-
irc-client-irssi/)

~~~
hhaidar
Hey if you're IRC-foo is crazy good, it'd be amazing if you helped us out!
Think about it, you could be internet batman.

------
Brendinooo
Very nice work! And thanks so much for making it open source. Our company is
always looking for an open-source solution that would let us move off of
Hangouts, and this might just be the vehicle for that someday. XMPP, chat
history, @mentions, local hosting, and open source...a great combo.

The only major thing that's missing that we'd need is private chat! Hope to
see that as a feature someday.

~~~
hhaidar
Thanks!

Private is pretty much first on our list for the next release. We use hangouts
as well and it's definitely a pain point to juggle multiple apps.

~~~
tracker1
Will you be using WebRTC for the chat interface?

~~~
hhaidar
Possibly. I think it'll be a while before we do any audio/video stuff.

We're actually just two guys with full time jobs and this is our "10% Time" at
work, so our time is a little strained.

I'm hoping to get some pull requests from strangers which I've heard are the
best kind of pull requests!

------
janvdberg
I literally _just_ came from the Slack site to HN wondering if there was an
opensource/selfhosting version of something like Slack. Well I guess that
question is answered.

~~~
vortico
There is also `ncat` [http://www.commandlinefu.com/commands/view/13460/simple-
mult...](http://www.commandlinefu.com/commands/view/13460/simple-multi-user-
encrypted-chat-server-for-5-users)

(I'll see myself to the door.)

~~~
hhaidar
That's actually really neat!

------
onassar
Awesome stuff @hhaidar! I'm sure a bunch of people will love the fact that
logs and data exist on their servers. I'm sure it'll resolve some
privacy/internal regulation concerns.

Also, hi from Toronto! I work out of CSI at Bloor + Bathurst. Nice to see
another Torontonian on here :)

~~~
hhaidar
Thanks, this means a lot to us :)

We're around Adelaide and University, not too far from your neck of the woods!

------
misiti3780
This looks amazing - I recently had to add chat functionality to a web service
(self-hosted) and was very much surprised at the crappy options out there. I
ended up going with converse.js but the django support was lacking and the
whole thing took a lot longer than i thought it was going to take (but then
again , it always does)

I might test this out and actually swap them out if it works well.

~~~
hhaidar
Damn, I can't tell you how awesome this makes me feel.

Is your service open source or public?

~~~
ZoF
S/he was talking about adding chat to one of his/her sites(or customer's
sites) using conversejs[0] which is indeed opensource.

[0]-[https://conversejs.org/](https://conversejs.org/)

~~~
hhaidar
Ah great, thanks!

------
mandeepj
Something similar
[https://github.com/JabbR/JabbR](https://github.com/JabbR/JabbR)

~~~
NicoJuicy
JabbR is also very neat, it's a .Net project and actively being developped.

I installed it for my company (everyone here knows c# and asp.net mvc )

It's the best project that shows SignalR ( a real time js framework on the
.Net platform)

------
arobertson
Slightly off topic but everyone here seems somewhat interested in open source
self hosted solutions, so check out
[http://selfhosted.reddit.com](http://selfhosted.reddit.com)

------
filmgirlcw
This is great! We use Slack at work and for our uses wouldn't move away from
it (we're paying and all), BUT for small teams/private projects/miscellaneous
stuff, I absolutely love this.

Great work!

------
sagivo
Live Demo: [http://chat.sagivo.com](http://chat.sagivo.com)

------
hughes
I was about to say "come on, nothing beats IRC", but then I remembered how I
always wanted IRC to have LDAP, XMPP, and a REST API.

So... can I connect with my IRC client?

~~~
TeMPOraL
I want it the other way - let's clone all those shiny features and make a
pretty, nongeek-friendly client. IRC protocol can be extended to handle all
that stuff.

~~~
unknownian
People have been working on stuff like that. I dunno if they are super baked
yet but
[https://github.com/ircanywhere/ircanywhere](https://github.com/ircanywhere/ircanywhere)

------
nogridbag
Neat. What's the purpose of the "slug" when creating the room? I was expecting
it to be the URL slug, such as [http://localhost:5000/#!/room/my-
room](http://localhost:5000/#!/room/my-room) (and quickly noticed hyphens in
the slug name caused a validation error...).

~~~
hhaidar
It's mainly for XMPP (room slugs are used as the identifiers there).

Also try typing in #ROOMNAME in the textbox! You can link to rooms like that.

------
sinak
This is really great. Two big missing features preventing us from switching
away from Slack are direct messages and mobile push notifications. The latter
is hard to do: push is highly centralized, which is really bad for self-
hosted/open source software. But DMs are totally doable.

~~~
scott_karana
> The latter is hard to do: push is highly centralized, which is really bad
> for self-hosted/open source software

Why is this the case? I would have thought it's the same in principle whether
it's a central Slack server, or a central FooMumble server running Let's Chat.

(Difficulty of implementation might be high, but that doesn't seem to be what
you're talking about?)

~~~
thedufer
There are basically two options and they both suck. Either publish one app and
distribute the push notification cert (terrible idea) or each hosted site
needs it's own cert and thus an Apple account/published app (pain in the ass).

~~~
scott_karana
Gotcha, I didn't realize that APNS was involved here. :)

------
Poiesis
Is there a way to change user avatars? The screenshot has them but I can't
find it in 0.3.2.

BTW the wiki page for Docker references release/0.3.0, but you don't have that
branch naming prefix (release/).

~~~
jaymzcampbell
I think they are using Gravatar
([https://en.gravatar.com/](https://en.gravatar.com/)) to pull them in based
on your email as it surprised me for a second when I set it up locally,
registered and then my current profile photo was already there.

~~~
hhaidar
Yup, Let's Chat uses Gravatar!

------
fiatjaf
I just deployed to Heroku with the button and the home page gives me a "Moved
temporarily". Later a 503 application error.

~~~
chrishas35
Same here. Looks like "TypeError: secret required" from the heroku logs.

------
ttty
I've reviewed the code of this project here: [http://hackhat.com/p/130/lets-
chat-analysis/](http://hackhat.com/p/130/lets-chat-analysis/)

Topics:

    
    
         - Code organization;
         - Deployment;
         - Migrootions (mongoose migrations);
         - Templates;
         - Module loader;
         - CSS;

~~~
unwind
You are, perhaps, somewhat overusing various graphical effects on that page.
Consider toning it down.

At least for me, reading it was too annoying so I stopped. I realize this
makes me superficial but I prefer my reading material to STAND STILL so I can
look at it. I feel so old.

~~~
bovermyer
You are not alone. When I go to a blog article, I expect to read the blog
article, rather than have my reading experience jarringly interrupted every
paragraph by an image taking over the entire screen.

------
sagivo
i like the auto heroku deploy. brilliant move by heroku. a note - in chrome
canery the browser crushes after login.

------
mijoharas
Could anyone tell me whether this supports markdown and whether it supports
syntax highlighting? (kanban too if anyone knows). I tried reading on the
respective github project pages but couldn't see anything related to those two
questions.

------
jdcaron
I think you guys should change the behaviour regarding the focus of the text
box. If I start typing in the chat window, and my cursor didn't activate the
text box, it doesn't type.

~~~
hhaidar
Oh weird, what browsing are you using?

------
eitland
You guys should mention MIT license in the title, I didn't click earlier today
because I thought it was a paid hosted solution.

(Nothing against paid, I'm just browsing as tinkering me atm : )

~~~
eitland
And, yes, I really liked the text, specially "A real live 10% time project!"

~~~
hhaidar
Haha, fixed. Thanks for bringing it up :P

------
trevordev
I setup lets chat at a small start up I was at about 2 years and it worked
very well then and im happy that it looks even better now. Will definitely
consider it in the future.

------
Yadi
This is so so awesome!

~~~
hhaidar
Damn. What's wrong with Hacker News today? Everyone is being amazing!

~~~
Yadi
Hah! No for real! Iove this, while ago I worked on something similar based on
Rails for a startup, but I left it half way through.

Any plans to provide updates and take it to the next step?

~~~
rambot
Our actual job is working on SD Elements
([http://securitycompass.com/sdelements/](http://securitycompass.com/sdelements/)).
Let's Chat is just a side project, but it's also something we use internally
everyday. The features you wish were there we also wish were there, no doubt.
Lots of the developers here like working on it. I expect there will be updates
from us for the foreseeable future. Hopefully we'll start getting more
external pull requests as well.

I doubt we are going to pivot to a free chat client company any time soon.

~~~
Yadi
That sounds good my friend!

------
maxwin
Nice. My team uses mobile phones a lot for messaging. I will try to wrap it
into a native mobile app so that people can get notification

------
reinhardt1053
Basically an open-source version of Slack. Nice work!
[https://slack.com/](https://slack.com/)

~~~
rambot
We started the project back in 2012. It's an open source version of Campfire.
:)

------
bovermyer
This is great, good work. I just have one small quibble: did it HAVE to look
identical to Slack? Branding and all, you know.

------
schuettla
This is really some great piece of software

~~~
hhaidar
You're pretty great yourself :D

------
ttty
> Let<span class="lc-love">'</span>s

That's why the ' in Let's is red!

------
calebm
Any plans for search functionality?

~~~
hhaidar
Yup, it's in the works for the next release.

------
aagha
Anyone ever tried kato.im? It seems free.

------
jMyles
migrootions? :-)

~~~
hhaidar
Yea I know, adorably hilarious!

------
jonsterling
> Let's Chat is a persistent messaging application that runs on Node.js and
> MongoDB

nope nope nope

