72 comments

[ 7.8 ms ] story [ 136 ms ] thread
One of the problem I always have on Slack or other chats is the 300+ unread messages after being offline for a day or two. I tend to skip everything but sometimes I miss things I should read...

A solution?

what would you like it to happen? the extension may be able to filter the ones sent in the last N hours and adjust the number of unread... but that wouldn't solve the problem of missing things you should read.
That's a people problem that needs a people solution.
I would agree with this. Seems like a flag on a message that is considered important would be all that is needed.
Soon there will be an extension which automatically flags all messages sent by the current user as important.
It already exists, it's called Gmail. I've audibly remarked more than once, as if the Gmail UI could respond to me in kind: "if you mark everything as important nothing is important"
Fine you can't flag your own message as important, others have to tag it important.
I think it's a common misunderstanding that we must read everything in Slack. You don't have to. If something's important it will come up again, or if it's directly relevant to you then someone will tag you. When someone asks about a Slack conversation you didn't see, just say you missed it. It's a better norm than being expected to stay up to the minute on every word uttered by every employee.
> If something's important it will come up again

So why use it at all? That's rapidly becoming my thought on this Slack mess.

If it's important they'll call me or send an email. Just like in 2015.

> just say you missed it

Technology is supposed to make data manageable. If it doesn't then it's a failure.

I've deleted the Slack app from my phone. It has progressed through the stages of Usenet in a few years. Now the signal is unrecoverable in the noise. It has failed.

why use it at all? you may not be the one who chooses what tool your team uses for communication.
I don't think any technology makes data manageable in the sense that you want it to. Summarising information is still relegated to humans, and filtering noisy sources of information is on you.

For instance, your company might have a hundred slack channels and private conversations. You could be interested in five (channels specific to projects you're on, things you're interested in, or non-critical alerts), not interested in ninety (other projects, functional groups you don't care about, other groups' lunch plans), and actively disinterested in another five (#random, #politics-that-make-me-angry, #synergy, #build-system-spam).

The problem is your team, not the platform. Use channels, be disciplined about what goes on in the channels. Use threads for side conversations. Use private messages when needed.
Indeed. As far as I can tell, the premise of Slack is that it's like email, except instead of saying "I'll do this tomorrow" and starring the message in your inbox, you just either handle it right now, or completely forget about it and it's lost to the Depths Of Time until someone else remembers again.

Switching from email to Slack is basically a test of whether or not an organization actually has some task tracking in place. If not, then Slack's claimed 41% reduction in email volume becomes a 41% reduction in customer volume. "Less work for me!"

>Indeed. As far as I can tell, the premise of Slack is that it's like email

I never understood that. It's not like email. It's corporate IRC.

If you've been at a company where email was treated as corporate IRC, Slack is quite refreshing. :-)
>I think it's a common misunderstanding that we must read everything in Slack. You don't have to.

For sure, but the UX around unread messages triggers my OCD.

I have the same problem but you can always use the combination of cmd+shift+esc to mark everything as read.
Anything important enough that should not be missed should be sent in an email. Slack, IRC, and other chat-likes are additional communication channels—they shouldn’t be a primary mission-critical delivery system.
Temporary and if it needs an answer, answer only makes sense if near immediate: use IM (slack etc...)

Just an FYI that everybody needs to know or needs an answer regardless of when you can answer: use email

Information that is valid until a major change (or forever if that exists): document in your wiki or whatever documentation system you use.

When I'm back from time off, I mark all slack channels as read.

I've started enforcing a thread only mentality in most of the channels at my work. It lets you easily catch up on the topics you care about.
Finally a way to ignore a user!
lol -- that angry boss who always yells things in slack chat, OUR APP IS BROKEN WE NEED TO FIX IT ASAP... see ya later sk8r , you've been silenced
I have tried slack for some months and found it super laggy, both on the desktop and on android.

Then someone invited me to try Discord for company comms and I said "that's a gaming-oriented app, cmon it won't work well".... my mind was blown by how smooth Discord is.

We are a small shop but since we migrated from Slack to Discord we haven't been focusing much on 'how to communicate' but more on actually just chatting.

I advise everyone that talks about Slack to try Discord as a good alternative, even if your use case is synchronizing a loosely-knit team over the internet.

I'd love to give zulip a try
Hmm, looks like Discord backend is built on C++/Elixir/Erlang[1], and Slack is built on a scripting language. I think people underestimate the difference in scalability and UX with something like this that handles lots of small packets.

[1] https://www.reddit.com/r/discordapp/comments/3q62hw/on_what_...

Many of the complaints regarding slack are about the interface, not the backend architecture.
I am sorry, I was actually talking about the Front UI, and both use JS (and Electron on the desktop) iirc.

Slack gets choppy (almost down to typing lag!) pretty quickly on a middle-tier Android phone and with Discord, it keeps snappy no matter what.

I'd say that Discord is the actual Slack killer today.

Discord is bigger than Slack, so I’d say that may already be true.

The secret to their app’s speed is using native components inside their React Native app. The chat UI (messages and input) for instance (IIRC) is native.

""" Now, local news:

In what's being hailed as "the Xzibit pattern", SV app devs seeking to lower UI latency towards the level of a late-90's IRC client have made a discovery that has the Valley buzzing. As one dev we talked to explained, "we started putting native in your native, bro, and it's awesome! I can type on my phone smooth, it's like the app's running on my 16-core workstation!" Other devs have been overheard in coffee shops explaining software written in C++ as "native all the way down".

More on this developing story when we return, right after this commercial break.

"""

On the desktop (Windows, macOS, and Linux) they use Electron. For Android it's written in Java (Native), and for iOS it's written in React Native.
Slack's messaging backend is Java (at least it was in 2014): https://twitter.com/SlackHQ/status/426469205005705217
The pubsub for live connections and socket events is Java but everything else is PHP. The Java mostly tries to federate stuff from PHP to clients and doesn't write or read directly to the primary store. I used to work at slack.
Interesting. Can you have a company org, channels the way slack does, permissions, dm's etc?
Channels, permissions and DMs are more powerful in discord.

But there's no separation of workspaces like in slack. Rather, they have servers. You log into discord with one email, and all its associated servers are shown. So unlike slack, you can't have different servers each with different email ids to login to.

Discord does however let you very trivially change your 'nick' for each server you're in. I'll take this over having multiple emails for servers.

https://support.discordapp.com/hc/en-us/articles/219070107-S...

Although you can change your nick, you can't have a per-server profile picture, which may or may not be a problem for business use.
How does this work in light of how some people, including myself, use slacks:

Work slack

N Side-project-team slacks

Personal Slack

---

I cant have work-slack email address to login to my personal slack, which is just for me. Further, need no connections between various side-project/side-interests slacks.

I also participate in Discords, but not actively enough where I am as fluid in using discord...

I run a 3000+ person community on Discord. It's incredibly easy to get a simple access control list going which makes managing this many people a breeze. For public facing roles, users themselves can enter the Discord server and choose their own roles, which makes all my previously manual human tasks automated.

Plus I pay nothing.

Discord's role/permission management is incredibly powerful. There's a couple things I'd love to see to make it a bit easier to use (duplicating/copying permissions between roles would be great), but I'm comfortably using it for a public Discord channel with 300+ members and growing[1] and I can actually visualize how to keep the chat functional if the member count grows by 10x.

I strongly recommend Discord over Slack for public chat groups; I'd happily use it over Slack for company chat as well, with the caveat that the integration/app story isn't quite as far along as Slack is.

[1]: https://byteconf.com/discord

My main complaint with Discord is that I don't have any of those integrations. But the thing is so snappy I might write a few of those myself ;-)

I was a diehard irc fan just because of the snappiness of using whatever app (native) I wanted, and at some point I vouched to never switch to those 'fancy newfangled chat apps' because while they had all this bells and whistles (markdown, inline previews etc) they couldn't do the most basic thing properly : snappy chat. Discord fixed that, I get the same kick out of it as I got when I used to hang out on Freenode. So hooray \o/

It actually gets interesting. You can use any slack webhook on discord by creating a standard webhook on Discord and adding `/slack` at the end. It also works for GitHub with `/github`.

TMYK

Required reading regarding Discord: https://spyware.neocities.org/articles/discord.html

TL;DR

Discord explicitly confirms in its privacy policy[1] that it collects the following information:

IP AddressDevice UUIDUser's e-mail addressAll text messagesAll imagesAll VOIP data (voice chat)Open rates for e-mail sent by Discord

If Slack were listed on that website it would have the same spyware rating if not worse.
How is it spyware if users are opting in and installing/registering?
And they issue a DELETE command to their cluster as soon as you delete your account or message, so it's gone as soon as you want it to? (GDPR strikes again!)
Clicking on a Discord message notification on the mobile app doesn't redirect you to the relevant chat, it just opens Discord at your last location. On the Linux desktop app there used to be many times it would get stuck on the loading spinner. It just feels less polished than Slack.
For me at least, clicking on discord message notifications on the mobile app directs you to the correct channel, and I haven't ever experienced discord hanging on the loading screen on my Linux machine, over the two years since I got discord. Outdated info perhaps?
I would like to see an on-prem version or appliance for Discord so that I can protect our messages, set global and channel data retention policies.
Slack is snappy and works well in Firefox :) . With desktop notifications and whatnot.
Hey this is neat! Re: injecting into Slack.app, you're right, it's a pain. I had a simple approach here: https://zachsnow.github.io/slinger/ but it needs to be updated for every version (which of course I didn't do).

It would be cool if you made it so that users could inject it manually (via enabling --dev and $.getScript() or so) into the app; I for one don't restart Slack very often, so it wouldn't be too much of a pain.

nice! yeah, the problem with dynamically loading the script is that an attacker could inject anything... and they could easily steal your slack token.

But that sounds like an amazing thing for me to use locally :)

Is there a way to view and interact with multiple conversations at the same time? I want pop-up tabs or pop-out windows or something.

Slack always seems like a step backwards in chat to me.

oh, pop-out threads would be nice. I share your frustration :( and that's what compelled me to take a first stab at solving some issues.
Markdown support for links from users is a bad idea and just makes phishing attack easier as many organizations have public channels.
(comment deleted)
> If you write [here's a link](https://gmc.uy), it shows it as a link :)

> The nice part? it shows it as a link for everybody, not only those who have the extension installed.

Wait, wat? I'm looking at the code[0], and this is the most surprising part of this entire project to me. Slack goes out of its way to say "we don't support Markdown because we think the link support is an exploit." But they just have an alternate, undocumented way to send links anyway?

Is that a bug on Slack's side? I'm trying the syntax format that you're casting to in DMs to myself, and it doesn't seem to work? Are they doing clientside escaping or something?

Don't get me wrong, I think the "people might phish links" excuse is kind of lame when there are multiple ways for them to mitigate that problem, I'm just very curious about how and why this works.

[0]: https://github.com/g3rv4/BetterSlack/commit/24ad3b57da7a9c9c...

I guess that if they consider it a vulnerability, they're going to do the check on the server side... I really hope they don't though.

If they do, I'll fix it on the extension (so only people with the extension would see the markdown links as real links).

Also: to answer your question... yes, there's an undocumented way of sending them. And yes, the client escapes `<https://url.com|the title>` to `&lt;https://url.com|the title&gt;`.

The format is the same format used by bots to generate links.

I don't think it's a bug, since they've always supported links in their Web API, both for users and bots. It just happens the Slack client doesn't use that feature.
Huh. They do[0]. I stand corrected.

I wonder why they don't also support it for the client[1]? It can't possibly be for security if they have a workaround. I guess for whatever the same reason is that they invented their own slightly messed up version of Markdown instead of using the same format as 99% of the entire web. :/

I dunno. Glad that there's a workaround though, and that it's officially supported.

[0]: https://api.slack.com/docs/message-formatting#linking_to_url...

[1]: https://get.slack.help/hc/en-us/articles/204399343-Sharing-l...

Sending

  <http://google.com|click me>
on the iOS App works
Sending it on the browser version on Chrome, it shows very briefly the decorated "click me", but in less than a second, it changes back to the literal version
What. That smells of some ridiculous implementation, where rendering is modified after display...
Would it be straightforward to do e.g. Mathjax rendering of equations delimited by dollars-signs? e.g.: $\int_a^b x$ or $$\int_a^b x$$
yeah! if you have a library that does it, you could inspect when a message is created and call the library when the message is rendered.

PRs are welcome :)

I can't believe. They now have a GUI to create "chrome.exe $url" on your desktop?! why?