Shrugs.app – A native Slack client for macOS
shrugs.app
shrugs.app
Slack in particular is extremely, extremely slow, even by Electron standards. I can't expand it to the full-height of a 4K (running at 1080p) portrait monitor without typing becoming unbearably laggy, so I either have to keep it at 1/3 monitor height, or have to use another application for writing the text.
- accessibility built in which benefits everyone
- native application scripting
- consistent keyboard shortcuts, including focus ring movement
- ability to App Nap / fast system shutdown
- consistent retina/DPI behavior across display drags
I've been developing Mac native software for 20 years now and I'm still wowed by some of the things that come with the toolkit for free.
And from your other comment
>we in the Slack Desktop team
Seems misleading to declare something like this without a disclaimer that you work for the company in question, especially when phrasing it as if you are definitively not a part of said company.
I've literally never had or heard of Slack crashing, across Windows, Ubuntu and macOS, regardless of memory available (8-32GB) and use. Do people really have Slack regularly crash on them or is that just something that gets attached to Electron (for some reason).
I get them occasionally.
An electron crash would kill the window. I get these sometimes too when I try to run natively in wayland, which I’m aware is unsupported so I’m not blaming anyone for that.
Grey screens. Unresponsive during video calls. Eats all of my memory at least once a day. The app is a mess.
But all that tells you is that it's crash-free on at least a small % of machines, so not a great way to analyze robustness. Maybe create an HN poll?
No offense, but you must have blinders on then. On a fresh install on a new machine it’ll do it in the first day.
> It's crash-free for me, running 24x7.
There was a person who legit got struck by lightning multiple times in their life and lived, so anything is possible. Your claim is comparatively improbable though, but still has the possibility of being true.
Accidentally toggled the “huddle” button a couple of times - it’ll crash so badly, I legitimately have to restart the computer to fix it.
- Edit posted messages (big one, TBA) - Authentication w/ XOXC tokens - Loading older messages - Typing indicators - Starring & Pinning things - Search - Sharing messages - Screensharing and Calls (aka Screenhero) - Joining and creating channels
A $20 proof of concept.
I find managing multiple conversations with Slack so incredibly challenging. Having multiple windows open for active conversations is sooo good.
Do you end up sending messages in the wrong chat often? Or missing messages or both? What do the main frustrations of a single window setup look like?
Yup. It’s probably my most frequent mistake (and can be embarrassing). I make the same mistake with messages.
What I have done to mitigate the issue, is give each workspace a different color theme. At least, it helps me to avoid crosstalk between organizations.
I’m not a “native slacker,” so I’m probably not a particularly good candidate for a focus group.
Ok yeah the different workspaces in one window is more of a pain than just different channels and chats in one window for me, at least the way it's done in Slack. I haven't felt that way on IRC, for whatever reason.
Of course nothing in Mac Teams is nearly as bad as their incoming call notification - calls pop up under all your existing calendar/email/... notifications, which you have to furiously click away in order to answer the call.
To me, it's just common sense that each conversation should be in its own window, instead of stuffing them all into one window that only shows one at a time.
There's another comment here about how Teams' multiple windows is confusing, but I think that's more to do with it being Teams than anything else; as I mentioned above, all IM clients were originally multiple-window and people certainly didn't have trouble using them.
Firefox devs removed its PWA / "site-specific browser" support in https://bugzilla.mozilla.org/show_bug.cgi?id=1682593 .
Disclaimer: Haven't tried it out myself.
I look at the screenshots and think "we're living in the ~future~ 1996"!
When you're having to reverse engineer a platform to build something, you're asking for a special kind of hell.
Q: Is this still developed?
Yes, it is used and developed. Just not very actively. Most importantly Shrugs does not yet support “XOXC” tokens, which are often required by company Slack installations. We are interested in adding this feature, but there is no timeline yet.
I would like to think that as long as you do not brand yourself as slack or violate any trademarks, you should be able to write an app like this. Things like email clients would fall into this category.
There are pretty clear, practical reasons you might want to control the client of a commercial network service.
You can still argue your case, of course, but phone companies are a bad analogy here.
Only because it's next-to-impossible to call the API, because of the way they lock features to their client!
It's by societal consensus that this can be made fair, and to convince people that it is fair, there needs to be a logical, indisputable argument that it's fair. Otherwise, the service providers can always just hide behind the counter-argument of being in control and TOS etc.
This seems to make it pretty clear they don't want you to create 3rd-party clients for their service.
"You may not create derivative works based upon any of our services"
And I think the advantages of such a law are very clear: More competition on front-ends could very likely create much better user experience (better organization of chats, better message and image editor, better notifications, show users whether messages have actually been sent).
Laws are made to serve the public [1]. Being nice to companies is a means to an end, not the goal itself, and the discussion about whether API should be legally accessible to third party vendors (or devices/cars/… should be legally repairable by third party repair shops) should focus on whether we get better user experience, service, and so on, and have the question of whether companies will still want to offer backend-service like Slack under such a law as a facet.
[1] At least they should be and everybody complaints when they aren't.
> [...] Further, you will not: [...] (C) access our APIs or documentation in order to replicate or compete with the Services;
They can certainly attempt to block 3rd party clients, though. Or threaten to / actually sue, even if they’re unlikely to be successful.
Regardless of the upthread "well, just switch [your company/government/entire friend network] to an open/permissive service" non-answer, I think there's going to be ever-more need for unofficial clients for some of these services, and a big part of that is going to be how to avoid having them shut down immediately by service providers...
I’m definitely not a lawyer, but it’s not clear to me that this would violate the ToS.
Endless loops which flood you with API calls are a common issue, managing state is hard. Rate-limiting does not completely solve this.
That's what the "zero trust" philosophy is about.
eg. if you send more than X requests per day per user you need to pay us $y per 100,000 requests over the limit (or whatever).
the only requirement would be registering and providing billing info, which wouldn't be used if they behaved.
but since they spit buggy electron shit for decade already, i think you are right, they'll do everything possible to shut this down and keep with their inefficient and bloated electron way
But agree, would love to see some lawyers weigh in.
> Over the years I've found writing on HackerNews, Reddit and other online sites has given me an outlet to get creative and engage with folks in a way that will shift discourse towards something I'm more interested in. I regularly lie and pretend I know about topics and areas I have zero experience in. I began noticing I received more upvotes and engagement
someone admitting to that behavior on HN should be banned. that's actively hostile to the discourse here.
Note that the submission page is sorted chronologically, not by karma. So the concept of “top” is really more like “first”.
It seems you meant to point out that @Mandatum admitted to lying but the way you phrased it really made it difficult to verify the claim and came across to me like you were accusing @jessefied123.
There were some very strong responses [1] to your accusation and I’m concerned that anger may be directed at the wrong person. When making these kinds of accusations you should try to be more clear. Use names and provide links. Also consider if the benefit of the accusation is worth the risk of misunderstanding.
And indeed, the submissions are sorted chronologically. So I should've used "latest", not "top".
Anyone else in a similar boat?
Although like with all things, proceed with caution.
That being said, Discord can ban people at random for whatever reason they choose, and this has happened before.
For the record, I've been using Ripcord with the same Discord account for 3 years, daily.
* No search (Slack/Discord)
* No huddles in Slack
* Thread support in Discord
For these reasons, I typically navigate to Discord/Slack in the browser when I need access to those features. Not ideal, but the snappiness of Ripcord over the slow bloat of Slack/Discord make it worth it to me.
To me it sounds like an artifact of architectural choices, eg by polling before rendering to avoid flicker, lack of client side caching, or possibly just bloat. Companies won't stop their poor software practices even if they switched to native.
I don't doubt you can make a performant snappy chat GUI with Electron/web tech, but more often than not, in my experience, Qt apps (like Ripcord) perform much better and are less RAM hungry.
There is a theming system included, however, it only allows you to change colors/fonts of UI elements.
Why do a lot of these alternate clients purposefully leave out vital features?
Video calls are somewhat involved, and no third-party implementation exists to my knowledge. Discord uses WebRTC over the browser, but the desktop app uses a native module written in C++ that I assume handles decoding, audio screensharing, and other related functionalities. It's not impossible of course, but the cognitive barrier is much higher than simply observing the WebSocket and HTTP requests to get text chat working.
I don’t hate it (as much as I hate using Slack in a web browser or electron app), but I certainly don’t love it. I’ll be giving Shrugs a try, but it sounds like it’s missing a lot, too, so I’m not hopeful.
From my experience when someone says they don't offer refunds it's generally a sign that lots of people ask for their money back. I've not once dealt with a company that had a no refunds policy that was a good company to deal with.
> I am not sure if refunds for software purchases is the norm. Does Microsoft offers Windows or office purchase refunds?
It is indeed the norm in the indie hacker world which this developer and product is part of. I don't think I've saw a software product that didn't come with a X-days money back promise.
And yes, you can get a refund for Windows. You can go here https://answers.microsoft.com/en-us/windows/forum/all/return... and see a Microsoft employee explain how to get one.
BTW: You can also get a refund. This is more to make sure that people actually try the thing before blindly buying something. Shrugs _does_ have limitations, so it's important to first test whether it fits the needs.
Actually this is a very good point and I think I very well may reconsider my position, because since no-one actually ever asks for a refund perhaps it would "look" better if I didn't explicitly insist that there are "no refunds".
I get how development works and I understand needing funding to support development, but I’ll be holding off on this until there is at least a much closer feature parity.
I suppose I’m getting too old to beta test daily driver software.
There’s probably too much overhead to be useful, but it’d be an interesting way of prioritizing features.
Maybe on Windows. My work machine (running Big Sur) currently shows:
Slack: 251.6MB
Slack Helper: 10.2MB
Slack Helper: 48.3MB (Yes, there are two of them)
Slack Helper (GPU): 316.2MB
Slack Helper (Renderer): 350.4MB
So just shy of a gig of RAM for chat.
Right now I'm using wee_slack.py which integrates weechat with slack; though with the obvious trade-offs.
what is going on in software where you cant even compose text in realtime...
if somebody told me twenty years ago how powerful this CPU was, relative to what I was using at the time for a desktop PC, and that a chat application could pretty much max out the CPU and use multi gigs of RAM, I would have laughed...
Folks used to post walls of dancing bananas in phpBB and my Pentium III could handle that without breaking a sweat.
The exact same wall of dancing bananas makes any modern CPU jump to ridiculous two-digit usage relative to the task at hand.
I was also chatting over IRC from a Palm Pilot which had something on the order of 1MB of RAM, connected over RS232 to a GPRS phone, and the current experience of chat performance is basically on par with that, which boggles the mind given that I now have ten thousand times the RAM, an internet connection that can't be saturated in practice, and latency largely bound by the speed of light.
Slack's requirements are completely ludicrous in regard of what it's set to achieve.
> it'll be the same on every application.
Except, it's not. Counterexamples of chat apps with reasonable to stellar performance abound over the last two decades.
There’s a setting to disable animated gifs. Which also disables party parrots and other animated crap emojis.
There it is: https://slack.com/help/articles/228023907-Manage-animated-im....
https://gist.github.com/philsnow/4086e07b28d8d3cd17f5bf81ff8...
But try using weechat+weeslack (+ url_hint, so that you can download urls and see images with a single shortcut) as one example of how I consider a chap app should feel.
I remember pidgin being in a similar ballpark, but I haven't used it in years.
It's a shame most other modern chat clients (ripcord, and most matrix clients) do not come even remotely close.
I maintain an IRC gateway and have never been harassed (except by users using whatever strange distribution and being unable to figure out how to run the thing… they could just get debian but noooo)
It's a demonstration of OS integration.
It also has weird unread flagging behaviors that just drive you nuts.
Would not recommend.
Same as for reading, sometimes I just receive a quick message (like: "changes deployed"). I have to Cmd-K, losing focus of my current conversation just to switch to the other window and see that.
Just an idea tho.
EDIT: this is what I'd do: https://i.imgur.com/kI0Ti9u.png
"Native" means both using the right UI toolkit and being a good citizen by supporting features that are table stakes for apps on the platform. Slack happens to do neither. Look, I understand that UI design is hard, but there's a lot of options that are better than "let's not do it at all". Shrugs has picked one and I think it's all the better for it.
Such a condescending remark. This kind of thing is not good PR for your company, product or workplace. Would I want to work with colleagues who publicly disparage a whole community like that? If you communicate like that publicly, how can I expect your internal work atmosphere to be?
I know you're probably an engineer at Slack and not in the PR department, but you may want to re-think your communication strategy. I know that my employer would have been unhappy with me for such a comment, and rightfully so.
Judging by other comments in this thread, folks have apparently thought out how it could work for "more than a few minutes", so not just the style but even the content of your message are clearly off. You are getting community feedback here and competent people are giving suggestions -- for free. Embrace that.
Yet, for some reason, almost none of Electron apps that I'm aware of uses more than one window.
1) the Github integration doesn't seem to be rendering the URLs properly which is a dealbreaker, my development channel is way less readable
2) Changing the default fonts would be a nice-to-have
(Scroll through the issue to the bottom)