120 comments

[ 5.0 ms ] story [ 74.5 ms ] thread
Open source slack clone is more accurate, but still cool. Might take a little wind out of their billion dollar sails :)
I disagree with all the hope of a naive programmer: It's awesome that closed-source UIs get replicated as open-source and become a commodity.

Paid software is great, I don't mind that, but software that you don't own doesn't become legacy. Infrastructures like Linux, Eclipse, Nginx, Java will be legacy, SublimeText and .Net won't.

“Imitation is the sincerest form of flattery that mediocrity can pay to greatness.” --Oscar Wilde
Why did you change the title to such a weird one? The page makes no claims of "killing Slack" or anything similar.
hmm, one of quite a few slack-a-likes out there.

One thing I wasn't too fond of in this case is that the Download: Source-code link on that page which has a github logo on it, doesn't actually go to a github page if you click it, it goes to a login/sign-up page for Total.JS and looking at the Total.JS github repo. page, this messenger app. doesn't appear to be there https://github.com/totaljs?tab=repositories

There're a couple of links in the top bar and down in the page to https://github.com/totaljs/framework
The messenger itself seems to be an (allegedly) open-source product that is only available to "premium members". Nowhere could I see a license nor source.

http://i.imgur.com/tUteVRV.png

Price seems to be low enough not to matter but I'm not paying if it's not MIT/GPL or any other O.S. license (I'm not saying it isn't, I just can't find it).

I agree, that feels deceptive. At least it infringes on principle of least surprise.
I already spot an inconsistency on the first image

Some posts say Members / Developers like a full path, but the likes just say "Developers" with a link

Can't view the source code without registering? No thanks. Wanted to check if this supports web-hooks, doesn't look like it does.
Not only that, you also have to pay to see the source code even after registering (which is okay with the OSS licenses). Any paying customer cares to clone it to github and show us? Since it's MIT licensed there should be no problem.
"Built on NoSQL embedded database"

Honest question, why is this a benefit?

Yeah, that seems like a weird thing to list as a 'feature'. Tell us why it's a feature that stands out over the competition, put that explanation on the list instead.
Easier to setup if there's no external dependencies to install and maintain?
This is equally true of SQLite, so why call out NoSQL specifically? And which flavor NoSQL is it anyway :)
Genuine question, why does SQLite get so much hate? Is it because it's SQL, or it's embedded, or what? I've used it for a lot of projects where I have to move the server around a lot and it's super convenient
I don't know that it gets a lot of hate, it's just generally not considered to be an adequate production server database.
Huh? Not sure what you mean but it's not intended as a "server database". It is however used a lot in production as an embedded DB in applications. E.g. I've seen SQLite in lots of Android apps.
Right, that's what I mean.
Both Chrome and Firefox use it for storing history.
It's actually perfectly fine for many small server roles, as well.
SQLite is great! It's just that those of us using it with pleasure don't complain or feel the need to be vocal about how good it is :)
SQLite gets a lot of love when it's used for the right job.

It's not a replacement for a full-blown RDBMS. If you need a database for a multi-user application, you'll probably be better served by something like PostgreSQL. For single-user applications, however, it's quite fantastic.

I'm not the author but I'll attempt to clear up the confusion based on what I've read.

Total.js's specific usage of "embedded" in this case means it includes 3000 lines[1] of pure Javascript that embeds the entire db engine source code into the project.

As for SQLite... as far as I can tell with Googling, there is no port of SQLite's C code to pure Javascript code that's maintained with popular support. (I found an old 2014 project[2][3] but it doesn't appear to be up-to-date.) Yes, there is a Javascript API[4] to SQLite but that's different from the SQLite engine itself being converted to 100% Javascript.

That's the nuance of "embedded" in Total.js' context. Yes, SQLite is an embedded db but nosql.js is even "more embedded" than that.

That said, whether Total.js embedded js db engine is as high performance and error-free compared to SQLite is unknown.

[1] https://github.com/totaljs/framework/blob/master/nosql.js

[2] 100% Javascript translated from SQLite C source --> https://github.com/lovasoa/sql.js

[3] http://stackoverflow.com/questions/15415076/sql-js-in-javasc...

[4] some Javascript driving a SQLite C Language compiled binary --> https://www.npmjs.com/package/sqlite3

Ok, that's a lot more interesting than just "links to leveldb"!
All the big names in NoSQL have a server you need to install and maintain. In the SQL world as well, actually.
SQLite, LMDB and RocksDB are all popular and embedded. They're not really web-centric though so don't get as much exposure on HN and its ilk.

Edit: Sorry if I sound like "that guy," just offering up some names in case people aren't familiar with them.

Probably to convince manager types to adopt it? NoSQL is a hot marketing word among people who don't actually write code. Just go to any conference about "big data" and listen ;)

It's like the word "XML" 10 years ago. Just say some BS about how you're adopting a new XML-based infrastructure for motivating a novel, globally-connected society with Web 2.0 standards compliance, and the managers will let you do what you really want to do.

As a manager type, I care not about that. However, I do care about the per-user cost of a team messenger app.
This is a weird idea of what managers care about.
I think this is usually a sign that a company doesn't know how to market its product.
What benefits does this have compared to using matrix.org rooms?
> Benefits: No NPM dependencies

While excessive dependencies is a problem and a liability, reinventing the wheel is even a bigger problem! NPM is there to solve a problem and when used correctly it brings HUGE benefits in many ways. Listing this as a benefit is clearly not understanding what NPM is for and part of the classical Not Invented Here.

Not relying on package manager does not imply that they rewritten all the functionality provided by relevant packages. They may still use 3rd party libraries but instead of adding dependency to package manager, they may pull their sources in build script or copy the sources into their own source tree.
That is true but also a small nightmare for anyone in Node.js ecosystem who wants to contribute. However from a quick glance it doesn't seem like it, it seems like they depend on total.js framework as expected. Only the main framework file index.js is already 15k lines long: https://github.com/totaljs/framework/blob/master/index.js
Seeing as the index.js file is 15,482 lines of code[0] all attributed to a single author, I seriously doubt it.

[0]: https://github.com/totaljs/framework/blob/master/index.js

Edit: apparently that's not the right repo… looks like the comments are right that the source code for the messenger app is not on GitHub.

Took me a bit to figure out that Total.js is a framework and the Slack clone (Messenger) is built on top of it.

Total.js itself appears to be 15k lines in a single file with no dependencies, built and maintained by one guy (for the most part). Insanity.

In which way is that I insane? (I might be a tad bit more insane :-/ )
There are a lot of use cases for no npm dependencies. For many who live behind a firewall in dev standalone packages can be a blessing.
I think there is a trade off, look at what happened with the left-pad dependency.

Having no dependencies is great, but you need a rather large community of contributors to offset that or you end up with a stagnant undocumented bundle of source code.

> what happened with the left-pad dependency

But that could happen to any dependency. Arguably, left-pad was the least-worst dependency for "what happened" to have happened.

It needs to have mobile app for teams to take it seriously
I kinda like the idea of pre-filling the email input fields with "@" and have never seen that before. It's pretty easy to remove or type my login address around your provided @ (which a recurring visitor rarely does, as you stay logged in). But every once in a while I find myself in a foreign environment / keyboard layout / device having no idea how to type that character.
(comment deleted)
I don't find this advantageous at all. Easy to start typing after the @ symbol, then you have to go back and fix it, just seems to waste time.
Agreed, a placeholder="your@email.com" works just fine.
what if my address is bob@accounts@localhost ?
You mean bob!accounts@localhost?
Looks very good and I like that they have a screenshot right on the home page. I wish there was an anonymous instance to try it out without the tedious login process...
I'm afraid that at this point Slack has too strong a network effect to be replaced with something better except in niche circles.
I get what you're saying but I'm not so sure -given it's team-centric (read: closed to outsiders) model - qualifies as network effect. That is I don't really benefit from anyone else on the "network" other than my team. So if your team doesn't want to Slack the friction here is so low (a need to setup your account) that the benefits (e.g., control, privacy, etc.) can be justified.

In addition the communication "niche" is MASSIVE. Communicate, as humans it's what we do. There's a reason why FB paid soooo much for WhatsApp, yes?

If add-on can make this product something between Slack and (the shitty implement of) FB groups, there's plenty of room for such a thing.

A few years ago, I might have said something similar about MySpace or Usenet or GeoCities.
The difference is no companies were using MySpace, Usenet or GeoCities internally. Companies are using Slack. It's easy to switch when it's just chatter among unassociated individuals.
That's a good point about Slack being B2B. Thinking about B2B lockin, Slack has lockin to the degree that businesses are heavily invested in its unique features rather than just benefiting from improved communication.

Maybe fax machines make a better technical comparison. Email replaced their intra-company use in a few years. What kept them in use is that they are customer facing. Similarly, Skype and such replaced copper telephone lines for internal conference calls and in many businesses cell phones replaced landlines for intracompany communication and the phone system exists because it is customer facing.

The problem with trying to clone slack isn't slack, it's that for anyone to care about using it, it had to be better than IRC. Even slack hasn't beaten IRC.
How did this link rocket to the front page so quickly and get a bunch of points, but the comments are mostly pointing out aspects/criticisms of this product that show it is not in alignment with the HN community?

Astroturfing?

Nah it's much more likely that the people complaining are the vocal minority. I think this is awesome! But I wouldn't comment about it. However HN is filled with people that are amazing at finding issues with things and who love to share those issues.
It was posted at the best time day for a US audience (5 am CDT) and the marketing for it is pretty solid. But yes I think so, it had around 10 upvotes in a minute or so.

Minor astroturfing (having real people you know with real HN accounts) rocket you to the front page is pretty easy and hard to detect. It only takes around 5 votes as long as you get them quickly and they're judged to be high quality votes. However if you don't keep getting votes (your post is totally horrible) you will drop off FP fast.

I can see why people find the submission intellectually interesting. In part because Slack is relevant. In part because Javascript frameworks and plain old Javascript are relevant. And in large part because just making something is relevant. Being intellectually interesting is the core tenant of Hacker News.

A lighter weight open source alternative to Slack is relevant. Even though it probably makes tradeoffs that people will complain about.

I think half of the "irc > slack" crowd are trolling or willfully ignorant, either one as a form of technical elitism/hipsterism. Slack is a nice UI, has a nice app on nearly all modern mobile platforms, has drag-n-drop uploads, 10,000 message history for free. Even if none of it is perfect, it has all by default. I have been informed that you can do a bunch of really complicated stuff to mostly match these features in IRC while also taking the responsibility of maintaining it. I've even been told the lack of receiving messages when returning from offline is itself a feature (for business use, "lost messages" this makes it dead on arrival). But when I show my less technical boss or startup co-founder "deploy new slack team quickly in 2 minutes" vs "IRC can be selfhosted, but maybe can be brought up to slack's feature parity in some indeterminate amount of labor hours", I think the choice is obvious.
Or just go with https://riot.im/ (https://matrix.org/). It's federated, support E2E and kicks ass.
Can you do all the useful user-friendly things slack does perfectly?

* Drag-and-drop file uploads. * Paste images from clipboard. * Search previous file uploads. * Video uploads with inline preview.

They're the sort of thing I always find open source solutions never get around to.

What do you work with, that you need these functions so frequently ? I never once even thought about needing or wanting any of these features
Really? I use these features daily. Pretty much whenever I want to share something that isn't just plain text...
But what are you sharing ? pictures of what ? videos of what ? I only paste urls or logs .. and then there is normal chatting
Oh man, all of those things are so convenient once you start using them. If you've never used them, great, irc is probably fine. For me, I could never ever go back to irc, having gotten accustomed to all that stuff on slack.

For example, want to share a screenshot? Hit print screen to capture it, click to the browser, click to the tab, hit ctrl-v to paste, done. Instead of, what, uploading an image to an image-sharing site? I wouldn't even know how to do that at this point.

How slack copy from the source ? I'm missing something or you never do ctrl+c ?
PrintScreen copies to the clipboard.
For future reference in case you need to share a screenshot elsewhere... It's literally the same process to post a screenshot to imgur. No account needed.
I am a big fan of greenshot. It takes over the print screen button. You then draw a box around the area you want to capture and then you can select to copy to clip board or open it in the sketching portion or even upload direct to imgur where it then puts the URL of the file in your clipboard.
I use those features all the time.
It depends on your client as matrix.org is a open protocol. Anyone could implement the features you long for, that's the beauty.

The following are for Riot Desktop:

* Drag-and-drop file uploads.

Sure.

* Paste images from clipboard.

Did not work for me but it has been written and will work soon, if it does not already: https://github.com/vector-im/riot-web/issues/1297

* Search previous file uploads.

Dunno, there is a list of a room's files but I don't see a search option. Should be a trivial addition, maybe make a feature request? :)

* Video uploads with inline preview.

Sure, they are rendered in the message window.

Pasting imaging from clipboard is released, but is only implemented on the new (experimental) RTE editor, which has to be optionally enabled in Settings.

https://github.com/vector-im/riot-web/issues/1855 is the issue tracking indexing file uploads. Patches welcome if anyone wants to add this into synapse; it'd be pretty easy and fun (although obviously wouldn't work with encrypted rooms). https://github.com/matrix-org/synapse/blob/master/synapse/re... would be the place to index the file and chuck its contents into the existing full text search tables via something like https://github.com/matrix-org/synapse/blob/master/synapse/st....

My point is that Riot is FOSS, and if folks feel features are missing, please help us implement them O:-)

What's the business model here? Can they really build a sustainable business from 70-150€/month enterprise support? Are these guys funded?
So, would using something like this eliminate most of the issues of 'not using Slack for FOSS'?

is closed source

has only one client

is a walled garden

I remember using Totaljs (the framework) for a pet project a couple of years ago when I was willing to check out the nodejs hype for myself. Websocket support was nice.

I should have probably gone for something more "traditional" like Express (to learn proper node), but I have to say that coming from Java/Spring, I felt quite at home with it. Also, learnt a lot about callback hell.

Nice to see they went on with the project and built some stuff on it. Open source looks like the way to go for them, which is a good thing for everyone.

Does anybody know how it compares to mattermost?
Mattermost is to Twitter as TotalJS is to Slack.
From the title of their home page: "Mattermost -- Open source, private cloud Slack-alternative ..."
Why you compare mattermost to twitter ?
Argh! I'm sorry. I just realised I typed 'Mattermost' rather than 'Mastodon'!

I meant: "Mastodon is to Twitter as TotalJS is to Slack".

:)

From the installation instructions on the github readme:

>Premium Messenger (v2.0.0) needs latest Total.js from NPM +v2.5.0

What does this mean exactly?

Looks like the website is down.
Yep, I'm getting a 408 error here.