Settings

Theme

Slack's 57MB 404 page

a.slack.com

99 points by lecarore a year ago · 83 comments

Reader

diggan a year ago

My intuition was that most of the (transferred) 11MB would be images, but no! Of course it's JavaScript bundles: https://i.imgur.com/QoM0Mz5.png

I'm guessing most of that code is used for other things on the website/landing page (SPA without bundle splitting per page), and the same stuff is loaded for every page, since the code for building that would be trivial compared to the multiple large bundles like they're shipping right now.

Which kind of makes me think, what is the smallest amount of JS one could write to 100% replicate this page? Would <1KB be enough? Bonus points if it could be implemented with CSS only, under 1KB.

  • whazor a year ago

    But there are interactive chickens if you wait long enough.

    • diggan a year ago

      CSS (since like CSS2, 1998) has interactivity too ;) Time to read up on the specifications oldie!

    • AbstractH24 a year ago

      > But there are interactive chickens if you wait long enough

      Wow, that phrase triggered a tune burried deep in my brain I hadn’t heard in 20 years.

      Brains are weird

  • lifthrasiir a year ago

    It reacts with the visibility state, so no JS seems impossible. [ADDED:] Besides from the obvious mouse interaction, [/ADDED] everything else should be implementable in CSS I believe.

    • Bewelge a year ago

      How would you implement that scrolling background? Particularly the mouse interaction, where it scrolls with a dynamic speed ( depending on how far to the side the mouse it) and even has some smooth damping when you stop scrolling.

      And what part uses the visibility state? The grayscale seems to be triggered by focus which I think would be doable with CSS

      • diggan a year ago

        > How would you implement that scrolling background?

        At a glance I'm not sure exactly how I'd implement it, but my guess is that it's possible with some workarounds and hacks, at the very least.

        Here's an article showing some demos (at the bottom) on how you can make the mouse cursor affect CSS: https://css-tricks.com/how-to-map-mouse-position-in-css/

      • lifthrasiir a year ago

        Ah, I forgot that (everything except for the interaction should be okay, though). For the visibility state however, checking for focus is insufficient because you can have elements focused without the document being visible.

      • jaapz a year ago

        Scrolling using actual scroll - instead of following the pointer and automatically scrolling - would make the page better anyway IMHO

    • canpan a year ago

      Not sure about the interactive part, but I have build butterflies like this in pure CSS with css animations before. Definitely doable.

  • GodelNumbering a year ago

    modern.vendor.{cache_id}.min.js => 37.11MB

rsanheim a year ago

Absolutely insane. Some silly comparisons to what software has changed the world at less than 50MB:

- VisiCalc: ~27KB - i.e. the first killer app, and probably still the most successful. I wonder what DAUs on excel & google sheets compared to tiktok and insta are like...would be interesting to see.

- Wolfenstein 3D (1992): ~2MB - invented the FPS genre

- DOOM (1993): ~2.5MB (shareware), ~12MB (full)

- Quake (shareware) ~8.7 MB

- Quake (full) ~15-25 MB (excludes the CD audio)

- nginx: ~2-5MB - powers ~35% of all websites

- bash: ~1MB

- git (*nix only): ~3mb

- gcc + toolchain (ie ld, cc1, etc) ~40-45 mb

- FFmpeg: ~30-40MB

- curl: ~3MB

- OpenSSL: ~5MB

- windows 95: 50-55MB depending on features installed

- google.com circa 1998 - 10-15kb

- google.com today (anonymous session, ublock disabled) ~700kb

edit: my kingdom for markdown

Ekaros a year ago

Clearly no one stops and ask "Should we?". Which is sad.

I was just spending long weekend at place with less perfect connectivity, that is 2-3 Mbs LTE... And the 11MB would have taken quite many seconds... Not exactly good user experience.

Good to know that Slack is not company to choose for user experience and efficiency.

  • diggan a year ago

    > Clearly no one stops and ask "Should we?". Which is sad.

    I'm not sure, I've seen plenty of cases where programmers do stop and ask "Should we?" while management says "It's not ideal, but you have 4 hours allocated to shipping this things, so decide the "right" approach for achieving our OKRs" or similar.

    • guappa a year ago

      I don't know where you've met all those programmers who are good at their job. In my experience the ones who don't care beyond the questions "does it compile? Does it pass the test suite?" outnumber the ones who ask questions like "is this even the correct approach at all?"

      • diggan a year ago

        > I don't know where you've met all those programmers who are good at their job

        Most of my professional experience is from working in smaller startups, grown into medium-sized ones, that I've picked to approach for work because I liked the programmers who already worked there, I'm guessing that's why :)

        Consulting for various IT and IT-adjacent companies of all types of sizes, I certainly understand where you coming from, they tend to already be burned out (or something) enough to not ask questions anymore.

      • simsla a year ago

        Mostly worked at bigger companies. Once joined a company with pretty shit colleagues/management. Left after three months.

        If you have mobility, it's worth shopping around for a decent place to work.

  • julik a year ago

    You can stop and ask that question. This quickly antagonizes the entire org - because that 57MB bundle is composed of sub-bundles owned by teams with their own incentives, and none of them are interested in doing a 404 page right - that they do not own, won't get promoted for and which doesn't show up in their KPIs.

  • penguin_booze a year ago

    > Clearly no one stops and ask "Should we?". Which is sad.

    "I did what my manager asked me to. Asking questions is no in my job description. I've got kids to feed".

  • ghusto a year ago

    > Good to know that Slack is not company to choose for user experience and efficiency

    Did the product itself not give it away? ;)

  • tossandthrow a year ago

    Should we what?

    This is an effect from no one prioritizing extra complexity that might / might not provide any tangible value.

smallpipe a year ago

Slack is a constant garbage fire where clearly all the devs have a fast desktop and don’t care about performance or battery use in the slightest. I wish my org would move away from this junk.

  • guappa a year ago

    My org hasn't moved away but I use localslackirc to connect via my preferred IRC client.

    I get perks like not seeing reaction emojis, gifs, and being able to mute the constant flow of @channel notifications by configuring a list of people or channels from which I am not interested in getting these generic notifications.

    Also most importantly, since my company recently shifted from treating us like adults to telling us we must only work on the assigned tasks and for no reason go out of task, I configured it to not join general discussions channels where people ask for help and such things. In theory I'm on them, but from the point of view of my IRC client I'm not.

    It re-joins automatically if someone mentions me specifically. Unfortunately it won't fetch the history when this happens so I might need to open the real slack to get the context before I can answer.

    Anyway, it has worked mostly fine for me… I can have decent battery life and I don't get most of the useless notifications.

    • smallpipe a year ago

      That looks cool. I do like to see reactions to my messages, but other than that it sounds great

  • vachina a year ago

    Add Teams and Outlook to this pile. For some reason there isn’t a non-shitty enterprise chat software.

    • RedShift1 a year ago

      Teams is far worse than Slack though, an embarrassment for a billion dollar company. Think of the collective waste of time and electricity.

    • vanviegen a year ago

      Yeah.. seems like a great opportunity for Discord to start a Discorp whitelabel brand. :-) Just remove all the fun/spammy/nitro features, add SSO and an SLA, and slab on a steep per-seat price.

      • drcongo a year ago

        Imagine sitting down to work for the day, firing up Discorp, and waiting an hour for all those updates to download.

  • arp242 a year ago

    It's always been like this as well. Back when Slack first started gaining prominence ten years ago it was the only webapp that made my laptop's fan spin loudly. We actually migrated to HipChat because of that.

    Same with how much space the entire thing wastes: it's clearly designed by people with 8K 30" monitors and perfect vision.

    I have many more gripes, but that would be too off-topic. I don't understand how it got so popular.

    • maccard a year ago

      I agree. I put in a ticket with them in 2015 that was basically “every time I compile I have to close slack because it uses more memory than my compiler”

tetrisgm a year ago

I’m laughing at the idea of someone there seeing this article.

Organizes a meeting: “we look like clowns”. Technical person explains the package being big. Non technical person asks to remove, hoping for some kind of correction story. Marketing people looped in to maybe come up with a way to float this story.

Fix is evaluated for in a couple of sprints from now. A simpler html page is shipped for the sprint. Everybody high fives about one month from now for the simpler html page.

Non technical manager feels like they delivered something and the org is sluggish but they can get things done.

  • mathiaspoint a year ago

    No way it happens. The business/marketing people can't stand their JS getting messed with.

    There was a whole thread the other day about a framework for smuggling these huge analytics bundles through content blockers. Funny it was just around the same time another large thread was on the front page full of marketing people spazing out over the low click through rate when people are given AI summaries and aren't forced to "experience" these corporate sites running on their computers.

tomcsavage a year ago

Since nobody's mentioned this yet: this must be a left-over from or tribute to Glitch (https://en.wikipedia.org/wiki/Glitch_(video_game)) the video game project that Slack originally grew out of.

mixedbit a year ago

48MB of this is JavaScript, which is abomination.

  • esperent a year ago

    Presumably you're getting the whole Slack app, and if you're landing on their 404 page (for reasons other than this thread), then presumably you're using Slack. Which means you would have downloaded and cached that already.

    There's a discussion to be had as to whether the Slack app should be 48mb, but that's a different discussion. Focusing on the 404 page feels like outrage bait for web devs.

  • burnt-resistor a year ago

    Jesus. Is there a hidden bitcoin miner or a Linux VM in there somewhere?

    • AstralStorm a year ago

      Nah, just a whole JS framework compiled, a bunch of tracking and instrumentation.

      On the upside, thing does cache, and LocalCDN handles most of it.

disillusioned a year ago

I was profiling an ecommerce site we're responsible for and noticed that the app.js package felt a bit big: nearly 4MB unzipped. Most of it was the standard SPA/React attendant stuff with modern development, but within it was a 180 kB SVG of an old version of the company logo that wasn't being used anywhere on the site, but which had made it into a dev and then production branch and was shipped live. The zipped version was 175 kB total, but this SVG ended up being a decent portion of that size, and we do about 6M uniques per month, so it adds up, though we're now caching through CloudFlare instead of AWS/CloudFront, so that helps.

hkt a year ago

Is this because it is a SPA? I'm hesitant to ascribe blame but I have to confess I'm pretty bored of inexplicably heavy frontend code that takes an age to both arrive and execute. Bonkers stuff.

  • tossandthrow a year ago

    Yep, it is a SPA - but there is still a category of old grumpy devs who insist that the real web is a single hand crafted HTML file sprinkled with a bit of CSS.

    Yes, a 6MB (compressed) bundle is big. But it is not clear that the alternatives are better. The bundle would need to be split increasing complexity of building the application.

    It is likely judged that splitting the bundle only has minimal positives compared to the negatives - which also align with my experiecne developing software for roughly the same target segment.

    • guappa a year ago

      I assure you that 20 years ago websites with chats existed and they worked fine. Which means they weren't so huge because it would have taken days to download that amount of stuff.

      • tossandthrow a year ago

        Just like 40 years ago we where able to store a POSIX compatible OS on a floppy drive.

        The things developers usually forget is that there are other stakeholders than the computer executing code - IMHO a lot of developers would benefit from developing a bit of business acumen.

        • guappa a year ago

          I doubt customers specifically ask to make the product really large and slow.

          • tossandthrow a year ago

            No - the customer is not asking to spend additional developer time in minimizing bundles.

            This is exactly the type of business acumen that is missing.

            • guappa a year ago

              Is the customer asking for a product that takes 5 minutes to open? Eventually customers do move away from crap… they're just very slow.

              • tossandthrow a year ago

                Customers of Slack don't care - and I think you are talking about the users.

                This is exactly why developers need more business acumen.

                • guappa a year ago

                  Customers of slack care if they are paying tens of thousands for "waiting for slack to start"

  • prinny_ a year ago

    There is no inexplicably heavy front end code and SPA is not to blame here. This is a matter of non existent optimization and code pilled on top of code.

nergal a year ago

It aligns quite well with their Linux client that hogs so much memory that I need to run it in a cgroups with a memory limit to avoid eating too much memory :)

sixtram a year ago

But you can click on the chicken and it will jump. KPIs matter.

ChrisArchitect a year ago

How much traffic do you think the 404 page gets? or do any 404 pages get these days? With a clean sitemap and only linked pages indexed on search engines, very few actual users/customers are going to hit 404 pages these days.

This isn't about being performative. This is about having fun. Blame a thousand Web 2.0 companies from yesteryear or blame Google for their legacy of little jokey easter eggs. This has a nod to Slack's history and some devs got to blow off some steam and have some fun. Would it be better if they crammed the animation into 1kb? Sure, but this isn't a demoscene comp. And perhaps Marketing gets a positive bump for it when someone shares it saying this is cool (or conversely threads like this).

This is about having some fun. It's part of our internet roots and culture.

r1chardnl a year ago

54 requests

57.54 MB / 11.83 MB transferred

There's only 11.83 MB transferred, but that doesn't excuse it.

fabian2k a year ago

Looks like the biggest part is a 37MB vendor bundle, so I assume those are all the libraries they use. It's 6.5MB transferred, but compression only helps with the network part, something still parses and interprets that JS.

  • diggan a year ago

    I'm guessing at that size (37MB!), the bottleneck becomes the initial parsing and interpretation of the JS for most clients, rather than the transferring part, which is kind of bananas when you think about it.

rpgbr a year ago

Not sure what's wrong here, but in Safari, cache disabled, the page size ballooned to 110 MB: https://imgur.com/a/EJja3V0

chris_wot a year ago

Out of interest, is slack still being used as extensively as it was 4-5 years ago?

  • bajsejohannes a year ago

    I don't know, but anecdotally, I still use it for work, but no longer for personal chats.

    It also seems like someone at Slack is tasked with driving up engagement, because I get these "Your team is missing you" messages from Slack (only to be find a dead slack community). That might be a sign that they're losing traction?

  • diggan a year ago

    > slack still being used as extensively

    Used differently I'd say, but can't say I have a 100% view of all the users. My feeling is that various software projects moved to Discord instead (particularly FOSS which feels strange), and Slack seen an uptake in enterprise usage which makes sense considering the new(-ish) owner.

  • edf13 a year ago

    Yes - everyone hates teams

    • nottorp a year ago

      Teams is useless comparing to slack if you need to coordinate work indeed.

      I suppose you're supposed to use the whole Microsoft "ecosystem" for what a single app can do.

  • hestefisk a year ago

    No. Everyone is on Teams.

    • DrBazza a year ago

      Which is unfortunate, but a consequence of Microsoft's perennial, embrace, extend, extinguish - they embraced instant-messaging version 3 (or wherever we are now), and they're onto the extend part - extending Teams' reach by bundling it 'for free' in Office, and the OS, so people don't "need" to buy Slack.

      Slack won't be 'extinguished' but it will have a falling market share, despite the dumpster fire that is Teams, and the bean-counters in most corporations getting kudos from their bosses for 'cost savings'.

      • high_na_euv a year ago

        Teams are decent tbh

        Ive been using them since 2021 iirc and they improved a lot

        And im using Discord daily which is state of the art

        • queenkjuul a year ago

          Teams is trash, don't lie like that. It's the single most frustrating piece of software i interact with at work.

          • high_na_euv a year ago

            Im not lying, I dont have any problems with them

            Calendar and meetings are decent, chat is viable and I dont need more

            Whats causing problems for you?

            • queenkjuul a year ago

              Frequently fails to connect, doesn't honor system audio device settings and frequency forgets its own, frequently fails to mark messages as read, sometimes even after hitting "Mark all as read," sometimes fails to send notifications on new chats, especially on my phone.

              It's the least reliable chat program I've ever used.

      • rvnx a year ago

        The next victim is going to be Figma

  • v5v3 a year ago

    Slack is a public company so you can read the financials.

  • epolanski a year ago

    My company combines discord and teams.

    Discord is mostly used by devs.

Zealotux a year ago

Well at least it's cute.

burnt-resistor a year ago

I'm all for Easter Eggs, but at least make them cool EEs.

v5v3 a year ago

Saw this Slack 404 page years ago so not a new release.

whamlastxmas a year ago

It would be an interesting competition to find the biggest JavaScript payload for a single page of any Fortune 500 company.

lukax a year ago

And 440MB tab memory usage

18172828286177 a year ago

6.5MB compressed, and will be cached. Shrug

kolanski a year ago

like it

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection