[HN Gopher] Linen.dev: A 500 kb Slack alternative ___________________________________________________________________ Linen.dev: A 500 kb Slack alternative Author : cheeseblubber Score : 270 points Date : 2023-04-26 19:00 UTC (3 hours ago) (HTM) web link (www.linen.dev) (TXT) w3m dump (www.linen.dev) | stavros wrote: | Not to take away from Linen, it seems great, but whenever I see | new chat software I lament the fact that Zulip isn't more | popular. It's super fast, and its threading model is amazing. | | Zulip is the only software I've found where you can catch up on | weeks of conversation extremely quickly. It's fantastic. I never | felt that I lost messages, unlike Slack, and it's very | responsive, again unlike Slack. | tinyhouse wrote: | The main problem with Zulip is that I always end up messaging | in the wrong channel without noticing. | stavros wrote: | Hmm, really? How come? That never happened to me, I don't | think. | CoolGuySteve wrote: | 500KB seems to be the bundle size, how much RAM does the client | use? | capableweb wrote: | At https://www.linen.dev/s/linen | | Page open: | | Firefox: 18.5MB | | Chrome: 12.1MB | | After browsing: | | Firefox: 27.14MB | | Chrome: 11.7MB | codedokode wrote: | You must probably be using 16-bit computer because on my | x86_64 system Firefox's about:processes tab shows 45-65 Mb of | RAM usage after opening this page and scrolling. And | Firefox's builtin tools tend to show smaller number than real | usage: htop shows use of 85 Mb of PSS (proportional set size, | that properly accounts for pages shared between processes). | capableweb wrote: | Or you must be measuring something more than just the | memory Linen uses, like measuring how much memory the tab | itself takes, which is Firefox + the application. | | Doing a heap snapshot will give you a better view of the | page memory usage in isolation, without involving the | browser itself. | alberth wrote: | FYI - this is a VC backed project. | | Expect this to become a paid offering at some point. | cheeseblubber wrote: | We do have a paid offering. Basically it's free on Linen's | domain for public communities and we let you host on your | domain like: https://archive.pulumi.com/ | https://linen.prefect.io/ https://slack-chats.kotlinlang.org/ | urbandw311er wrote: | And you guarantee in writing that this pricing structure will | never change? | wg0 wrote: | VC game will get crazy. Most VC backed products will have | their end day like Twitter has almost. | | Initial and middle Investors kept passing the pie to the | next bigger fool and the last bigger fool is now stuck with | a very expensive web property desperate to recoup the | investment let alone a 10x return. | | Sounds like a Bitcoin food chain. | | And then - aggressive monitization, price hikes staff cuts, | SLAs adjustments etc. | MichaelZuo wrote: | I doubt it, VC firms and their principals have a | reputation, and the community is not so big that they can | endlessly pass the buck like this, without suffering | consequences. | Aeolun wrote: | That wouldn't mean anything the moment they get bought. | IceWreck wrote: | I love that its google searchable which fixes the "knowledge-loss | after afew days" problem. | gigel82 wrote: | I like Mattermost and Zulip: they have paid plans, but are also | fully open source / self hostable, so you know your data stays | with you if that's what you want. | alexdanilowicz wrote: | A lot of people already "live" in Slack (i.e., slack has a | 'network effect', same with Discord) and so naturally I think | people are more likely to engage with my community on a tool they | are using because of work (their company is on slack). How does | Linen think about addressing that concern? | | disclaimer: OSS founder here that cares a lot about managing | community! | cheeseblubber wrote: | Sure thing! We support a two way sync between Slack and Discord | so using Linen doesn't mean you have to migrate off of either. | The end goal here is that we eventually build enough features | that more and more people would prefer Linen in the long term. | | We think that there is a better chat app out there that isn't | built yet that handles things like: 1. A non chaotic | notification system. Slack and Discord stresses me out. We want | to introduce things like !mentions which sends you a push | notification and @mention notifies you but doesn't interrupt | you. 2. Better thread and content management. Things can get | messy in Slack and that you can't find information. We give you | ability to move threads and messages around to help organize | that and we want to do more to help people find content. 3. | More power user features: Slack is probably the most used app | for a lot of us and I don't think it is optimized for | individual productivity. We want to build something that is | designed for our productivity. Something along the lines of | Linear or Superhuman. | TheFreim wrote: | Are third party clients allowed? One thing that has made me avoid | discord and most of these sorts of chat apps is that they really | hate users having customized clients. There's a lot of cool | features that people have made for unauthorized discord client | modifications which are technically forbidden which is not ideal. | yieldcrv wrote: | modern web development: | | find small packages for pagespeed metrics | | serve 100mb of ads and analytics | Eduard wrote: | Ah yes, highlight.js. One innocent import hljs | from 'highlight.js'; | | pulls in over a Megabyte of hundreds of programming language | syntax definitions. | | Do you really need Mathematica, "ISBL", and "GML" -- or would a | curated list of popular programming languages such as Python, | Java, JavaScript, and HTML ("xml.js" ) be enough? This results in | a massive reduction down to ~70 kilobytes. | | Even better: load this reduced size of highlight.js only on | demand, leveraging Webpack's "import(..) to webpack chunk" | mechanism: const getHighlightJs = async | function() { let result; if (window.hljs) { | result = window.hljs; } else { result = | (await import('highlight.js/lib/core')).default; | const javascript = (await | import('highlight.js/lib/languages/javascript')).default; | result.registerLanguage('javascript', javascript); | const xml = (await | import('highlight.js/lib/languages/xml')).default; | result.registerLanguage('xml', xml); // xml provides | html/html5 highlighting window.hljs = | result; } return result; }; | const lazyHighlightAll = async function() { let result = | null; // see https://highlightjs.org/usage/ // | highlight.js's hljs.highlightAll() matches on 'pre > code' | const hasHighlightableCode = document.querySelector('pre > code') | ? true : false; if (hasHighlightableCode) { | const hljs = await getHighlightJs(); | hljs.highlightAll(); result = hljs; } | return result; }; | document.addEventListener('DOMContentLoaded', function() { | lazyHighlightAll(); }); | capableweb wrote: | Hightlight.js basically have two main modes of usage: | | The one you complain about is specifically about importing | everything, because that's what the user wants in that case, | importing it like that signals that that's what the user wants. | | Otherwise you can do the following: import | hljs from 'highlight.js/lib/core'; import javascript | from 'highlight.js/lib/languages/javascript'; | hljs.registerLanguage('javascript', javascript); | | Maybe the defaults should be different, but a 30 second read of | the most basic information available in the repository would | reveal how you can use it the way you want too, without any | complication that the rest of your comment seems to want to | introduce. | user3939382 wrote: | Wouldn't it be possible to make an IRC client+server that's a | perfect clone of Slack? I guess you'd need a SIP plugin for | huddles. | Minor49er wrote: | You would also need to modify both the server and client to | handle things like special roles and permissions, invitations, | embeds, file hosting, chat history retention, chat search, | threads, and custom reacts, to name a few differences | dpcx wrote: | How does this compare to Ripcord[0]? Granted there haven't been | any new releases of Ripcord in a couple of years, it's super | lightweight and mostly perfect for my uses. | | [0]: https://cancel.fm/ripcord/ | mdaniel wrote: | > Ripcord is a desktop chat client for group-centric service | | apples and oranges? | | Also, I seem to recall there was some drama about if one used | Ripcord against a Discord server, it resulted in your account | getting banned | raphman wrote: | IIRC, ripcord works perfectly fine as a Discord client (used | it myself for some time) - but if you have ripcord and | Discord clients running at the same time, logged into the | same account, Discord's anti-spam measures are triggered, and | your account gets banned. Discord support refused to | reactivate my account, so I had to pester the Discord | security lead on Twitter - who was so nice to reactivate it. | dpcx wrote: | I misunderstood both the title of this post _and_ the | headline of the article. I thought linen.dev was a chat | client! | palijer wrote: | While the optimization is cool and an interesting read - it's | interesting to call this a "Slack alternative" when there are | only a couple similarities between the products in that they have | people sending text messages to channels. | | This is more of an IRC/forum alternative to me (which Slack | originally was) until it is possible to use Linen instead of | Slack. | | Or just as a Slack plugin for the public Google search aspect - | but this is absolutely incorrect to call it a Slack alternative | for anyone who is using Slack as Slack. Things video/screen | sharing/drawing huddles, integrations, SSO and permissions, | slackbot, OCR search, notification settings etc aren't just a | different of features - it makes it a different platform and tool | entirely and solve different problems. | RicoElectrico wrote: | Honestly "alternative" should be a taboo word for most OSS | projects, as it is overselling stuff. Manage expectations. | mdaniel wrote: | the Show HN: https://news.ycombinator.com/item?id=33248488 and | there was another thread last year for their main domain | https://news.ycombinator.com/item?id=31494908 | | I wish all the locked away Slack communities would use Linen[1] | because there are so many nuggets of bug-fixery buried in Slack | that will age off or never be found in the horrors of Slack | search | | 1: I really wish they'd just stop using Slack entirely since | Zulip is open source _and_ bundles this "allow search engine | indexing" built-in, but I think that ship has sailed | tomrod wrote: | Tell me more about Zulip? | stavros wrote: | Unfortunately for Zulip, it's one of those things that you | have to experience to understand how great it is. I can tell | you all about its speed, its great UX, about how easy the | threading model makes discourse, about how it's open source, | about how it's a joy to navigate, etc. | | Nothing sounds like that big a deal unless you seriously try | it in a company setting. I tried it once and there's no going | back, I miss it every time I have to use Slack or Discord. | breck wrote: | Recently I saw that the Rust dev community is using Zulip: | https://rust-lang.zulipchat.com/ | | I haven't used it yet, but in general excited by projects | like Linen and Zulip. I hate Slack and Discord (I love the | web, deep links, and indexability/searchability) | ctvo wrote: | https://www.google.com/search?q=Zulip | tomrod wrote: | Hey, glad you found information that works for you! | | In my experience, Google search results are poor these | days, prioritizing esoterica or blogspam instead of useful | insights due to decades of SEO battles. I prefer to hear | what folks I'm directly interacting with are saying when | they make a recommendation instead of jumping to the old | "LMGTFY" silliness we all smugly passed to others circa | 2008 who forgot to RTFM/RTA. | dsr_ wrote: | It's everything you want in a threaded chat server except | federation. | | Web client is responsive and has good shortcuts. | | Easy-ish to self-host, cheap to buy hosted. | | Configurable privacy. | | Integration with all sorts of stuff, including email. | | A little lacking in community moderation tools. | | Text-mode client works acceptably well over a low-ish | bandwidth connection. | | IOS and Android clients. | | Open source. | switch007 wrote: | It's also a clean, large, modern, type hinted Django | project which is useful for learning Django | dsr_ wrote: | And the killer is this: | | We had an IRC server. IT and Ops used it. | | We moved to ejabberd. IT, Ops, and a couple of devs used | it. Not all. | | We moved to Zulip. Everyone in the company uses it. | mdaniel wrote: | > Easy-ish to self-host, cheap to buy hosted. | | And, perhaps most relevant to my complaint, they offer | hosting for open source projects (unlike Mattermost which | is ... like, "send us email and we'll think about it" or | something). I would guess Mattermost would feel the most | comfortabe to Slack users, since I admit that Zulip has a | different mental model than Slack, but I believe it is much | better for ongoing thread management once one gets used to | it (IOW, had they won the fight, it would be Slack that | would be the "eww, what is going on with this threading | model?!") | | --- | | https://github.com/zulip/zulip#readme (Apache 2!) just as a | contrast to the sibling's LMGTFY comment :-( | ghostpepper wrote: | I think Slack has realised there are shortcomings in | their threading as I just noticed today in the iOS app | that there is an option to re-join a threaded comment | back to the main channel after it's been sent to a | thread. | ghostpepper wrote: | The functionality is amazing but the UX/UI is not polished | to the level of a commercial product like Slack or Discord | (or Twitter, which it is arguably more comparable to) | stavros wrote: | I disagree, the UX definitely is very polished, and much | better than Slack. The UI, yes, I agree, though I find it | very clean and functional. | kodah wrote: | I personally don't think Slack is a great product for open | communities. While I don't think they're actively hostile to | open communities it's certainly not their priority from a | feature perspective. In my view, Slack is an _enterprise_ | product, and Discord is more of a commercial product. It 's | very difficult to be both and gain necessary market share. | | There's also the tangential fact that open source shouldn't be | relying on proprietary communication protocols that are | difficult to migrate away from or make it difficult to maintain | anonymity. | pcthrowaway wrote: | > here are so many nuggets of bug-fixery buried in Slack that | will age off or never be found in the horrors of Slack search | | Do people consider Slack search subpar? | | I haven't used a chat app with a better one. Discord is abysmal | by comparison | moffkalast wrote: | How's the search? Our company moved to self hosted Rocket Chat | from Slack a while ago, and while it's acceptable in general, the | search is literally the worst search I've ever used in anything | ever. Can't even find an exact match in the currently opened | thread. | chatmasta wrote: | We're happy with Mattermost, and search is quite good. | dexterdog wrote: | Even worse than slack's search? | thex10 wrote: | Not enough discussion here of the parts under "Our Optimization | Strategies", which was the most interesting to me. Assorted | reactions: | | > We found that react-icons had an issue that lead to everything | being imported. This meant that we were including every single | react-icon in our package whether we need it or not. | | Kudos to the Linen team for proactively finding this - I have a | feeling tons of projects blindly trust that tree-shaking their | dependencies will "just work" even though for many libraries it | won't! | | > We also noticed that we were only using AWS client for s3 | upload on the client side and it was taking up significantly more | bundle size we need so we replaced the entire client side package | with a 2 api calls to the AWS api. | | For such a minimal use case, this feels like a logical choice | even if it's slightly more work to implement. | | > We ended up moving the code highlight code to a backend api | that would cache the results. | | Love seeing websites make smart choices about which work to | handle in the server versus the client. | MuffinFlavored wrote: | > tree-shaking their dependencies | | What tool did they use: Browserify, Webpack, Gulp, Rollup, | Babel, Parcel, ESBuild, etc. | billiam wrote: | It appears that they used Webpack, which I found interesting | given other alternatives. | SparkyMcUnicorn wrote: | The UI package appears to use Rollup. | | And this looks like the PR for the icons update: | https://github.com/Linen-dev/linen.dev/pull/1001 | MuffinFlavored wrote: | they had to change every import for an icon in 60 files. | Wouldn't it have been better if a PR was done against | Rollup to fix this "bug"? probably much more | difficult/not possible? | __ryan__ wrote: | A commuter typically takes a free public bus ride to | work. The bus broke down this morning. The commuter had | to go out of their way to take a different bus to get to | work. Wouldn't it have been better if they stayed and | fixed the first bus? | MuffinFlavored wrote: | I get the proverb but you have to admit that it's kind of | a big deal that a tree-shaker bundler optimizer has a | pretty big glaring known broken issue with it where it | doesn't bundle. | | The bus gets fixed eventually. This doesn't (unless | somebody fixes it). | WorldMaker wrote: | It may not be a "bug" in rollup. | | Unfortunately, the current state of ESM in Node is such a | mess that you can't assume most packages are tree- | shakeable. There is package.json metadata to do that. | | It's more likely to be a "simple" bug (with far reaching | consequences) in react-icons' package.json and/or build | process. | | Taking a quick glance at https://github.com/react- | icons/react-icons/blob/master/packa... | | Yeah, it's using the old non-standardized "module" field | as opposed to the modern and mostly standard ( _now_ at | least) "exports" field [1] or "type" field. | | "exports" would be a quick fix of the existing | package.json file with no other changes to the build | process, but given this is a UI package intended | primarily for browser usage I'm having a hard time | understanding why it bothers to include CommonJS _at all_ | and isn 't just `"type": "module"` and remove CommonJS | from the build entirely. | | That probably points to why this hasn't been done yet: it | gets into a bikeshed argument and a lot of potential | discussion on big changes to a presumably "not broke" | build system. | | [1] https://nodejs.org/api/packages.html#packages_exports | | (ETA: Existing Issue on this subject in that repo: | https://github.com/react-icons/react-icons/issues/717) | _fat_santa wrote: | With icons, I've stopped using icon libraries a while back and | now import just the SVG code that I need. I'm a big fan of Hero | Icons[1] and they offer a way to quickly copy JSX or SVG code | to the clipboard to faciliate this workflow. | | [1]: https://heroicons.com/ | riidom wrote: | Additional shoutout to https://github.com/tabler/tabler-icons | andrewxdiamond wrote: | FYI there is a middle ground with the AWS SDK. If you don't | need the entire thing (you certainly do not), you can import | product specific SDKs as standalone. Still quite a bit fatter | than building your own HTTP client, but it's an easy win if you | already use the SDK. | | ex, an s3 only Java sdk: | | https://stackoverflow.com/questions/35591248/aws-sdk-for-s3-... | MichaelZuo wrote: | > Love seeing websites make smart choices about which work to | handle in the server versus the client. | | The intro community discussion page at | https://www.linen.dev/s/linen does need to load 20+ javascript | files for some reason to show the latest messages. | | Whereas messages still show up even if javascript is entirely | blocked, just starting from the beginning in 10/2022 (?). | | So I'm not quite sure if it's as optimized as it can be. | lagrange77 wrote: | Looks really cool and promising, i think i will give it a try! | | I found a 'typo': | | > Get branded colors and logos of your community or company. Your | community should feel like yours and not | | The sentence does not | s1k3s wrote: | Another one: Rocket, a self hosted open source alternative: | https://github.com/RocketChat/Rocket.Chat | anyfactor wrote: | We actively evaluated Linen in launching our community. Although, | we went with discourse as we are going for a forum type community | platform but Linen certainly has fantastic potential. | | One very minor friction point with Linen was, it needs to be a | bit transparent about their pricing for business tier. I don't | think "contact us" pricing strategy is the perfect fit Linen's | target audience. | sideproject wrote: | I've recently launched HN+ | | https://www.hn.plus | | For anyone interested in HN-type forums (with lots of other | features we've built) | Aeolun wrote: | Hmm, I feel like this could do with a different colored top | bar. Making it look exactly like HN makes me feel more like | 'why not use HN then'? | nonethewiser wrote: | Well for one, you can't moderate hackernews | capableweb wrote: | > Love HackerNews? HN+ includes everything you love about HN | to start your own. | | Obviously HN+ is missing the single most important thing | about HN, the users. | | Also, did you really have to steal the name too? Would | probably been better off if you called it something | different. | | By the way, you should read your own terms of service and | maybe start following it yourself if you ask others to follow | it too? | | > Your site is not getting advertised via unwanted electronic | messages such as spam links on newsgroups, email lists, other | forums and web sites, and similar unsolicited promotional | methods; | | > Your site is not named in a manner that misleads your | readers into thinking that you are another person or company. | For example, your site's URL or name is not the name of a | person other than yourself or company other than your own; | and | cheeseblubber wrote: | Sorry about that. It was a vestige of Linen's first version | being very Enterpise sales heavy and we haven't updated it. At | the moment it is 150/month for 5000 members for our paid tier | and 50/month more for every 5000. Will update it this week! | | We just shipped our self checkout flow last week: | https://github.com/Linen-dev/linen.dev/commit/61c482cab5d5aa... | | Just hadn't got the chance to update it on the landing page yet | tomrod wrote: | Reasonable for enterprise, but that's pretty high for my | tranche in small business. Any possibility of matching Slack | pricing for super small (<20)? | cheeseblubber wrote: | Oh yeah we're planning on introducing pricing for teams | soon. Right now we've been focusing on communities. So will | have something out for teams soon! | [deleted] | Aeolun wrote: | Does that count active users? Or total users? Be a bit sad if | you were perpetually paying for some rando that posted a | message 5 months ago. | sandGorgon wrote: | this is very cool! what things of slack does it NOT have - | genuine question here. Like private channels, etc etc ? | | can it replace slack basically ? what will i have to do ? | 2h wrote: | seems private chats are not a thing. which is a dealbreaker for | me coming from Discord. I asked in support so I guess we will | see. | [deleted] | rado wrote: | The "Join" modal should trap focus. | rahimnathwani wrote: | It might be worth testing different variants of the landing page | copy. The version I see is this: Google- | Searchable and community focused | | Slack alternative Sync your Slack and Discord conversations to | Linen and get SEO benefits while reducing customer support load | | The latter sounds like I need to be a Slack or Discord user, and | Linen makes the conversations searchable on the web. But the | title (Slack alternative) makes it sound like I can use Linen | _instead_ of Slack. | | Which is it? | Aeolun wrote: | Yeah, I had the same questions. Is it a chat app, or an | indexing app? | | After spending some more time it seems to be a chat app that | allows importing. | CSSer wrote: | And that's a pity because I got really excited by the | prospect of the alternative. It made my gears start spinning | for viable ways to accomplish that. Oh, the ideas I'd work on | if I had unlimited time... | wilg wrote: | I won't run any apps over 480 KB unfortunately. | nonethewiser wrote: | Why 480? | peoplearepeople wrote: | I'm pretty happy to run anything below 640 KiB myself | ronsor wrote: | That should be enough for anyone, anyway | a3w wrote: | Found the time traveling Bill Gates on HN | SLWW wrote: | thanks for the laugh! :) <3 | [deleted] | bee_rider wrote: | For me, it will happily fit into L3 cache and it isn't very | close to fitting into L2, so I guess it is fine. | exabrial wrote: | Can we run this locally and _not_ on the cloud? | freeqaz wrote: | I'm pretty sure it's Open Source here: | https://github.com/Linen-dev/linen.dev | cassianoleal wrote: | Yeah but there are no instructions on how to deploy and | operate. No user docs whatsoever that I could find, either on | their website or on Github. | asar wrote: | I think linen definitely solves a lot of issues OSS communities | face when the majority of issues are answered on discord/slack. | The need for such a tool should decrease as docs mature however. | So maybe a tool to integrate with or update the docs could be | cool. | | On a general note I think you should link back to your landing | page from the navigation of a project. Especially if people enter | via a search engine, they are essentially locked within an | organization. The only way out is to manually navigate to | linen.dev. | robot wrote: | show me the demo | otterley wrote: | Feature request: Can we get sign-in with Apple, please? It's the | only single-click auth integration I trust for privacy. | Manjuuu wrote: | The size is only one of the factors, it can be small but slow, | especially when the history grows. | cheeseblubber wrote: | Definitely. This is why we also do things like optimistic | updates, setting query performance alerts, and when possible | reducing as much DOM elements. | KMnO4 wrote: | I agree. | | while(1) malloc(1000); | | Is only 0.02kb and will bring your computer to a crawl. | connordoner wrote: | This made me giggle more than it should have. | einpoklum wrote: | 500 KB + Tens of millions of lines of code of a browser + a bunch | of backend code. | | Want a lean Slack alternative? Use IRC. Want a fancy Slack | alternative? Use Matrix. | oblio wrote: | I don't want to host a server and I want my messages to be | synced between multiple devices including mobile ones. | | I want rich messages, images, links. | | I want threads. | einpoklum wrote: | > I don't want to host a server | | Given that we're talking about search-engine-visible logs - | just use an existing, public server. | | > I want my messages to be synced between multiple devices | including mobile ones. | | I actually believe it's better for people _not_ to have Slack | on their mobile, so as not to be pestered, but if that's what | you want, then you want the "fancy" alternative. Matrix | clients can offer you that. | | > I want rich messages, images, links. | | So, Matrix. | | > I want threads. | | If that's the case, maybe what you really want is a Discourse | web-forum rather than Slack. | nottorp wrote: | > I want threads. | | Anyone has usable threads yet? For the life of me I can't | follow Slack threads. | doodlesdev wrote: | What about a Google-searchable alternative to any of these? I | think this would be one of the main selling points of Linen. | einpoklum wrote: | I believe several (most?) IRC servers support logging channel | transcripts; and those can be easily made web-accessible. If | you're not running the IRC server, you can use a logging bot | to do that. | | See discussion 7 years ago on serverfault.com, and the links | therein: | | How to set up a IRC server that logs all messages? | https://serverfault.com/q/190069/113898 | | How to Offer Searchable IRC logs? | https://serverfault.com/q/36886/113898 | | The bot option should be valid for Matrix as well, although | there I'm not sure the bot world is well-enough developed to | be 100% sure that a bot exist for every common desire like | saving channel logs. | zimpenfish wrote: | There's also Mattermost which seems a reasonable Slack | alternative (and self-hostable.) | steve_adams_86 wrote: | I highly recommend front end devs add a step to their CI pipeline | which extracts bundle size information from the build and | includes it in pull requests, or something similar. It's great to | have eyes on how heavy your bundle is, and keeping an eye on how | it changes over time (easy to add as part of the pipeline) can | help the team understand when things are trending the right way | or not. | | It's usually a call you need to make based on what you're | shipping, but at the very least, it'll ensure you don't blow up | your performance because something slipped by. | | Finally, looking at the components of your bundle if you haven't | already is well worth it. Like the people over at Linen noticed, | they were shipping a ton of icons they were never using. This is | happening all over the internet, and it's a real drag on the | network, parsing, and executing phases in a browser. If you | benchmark, you'll see significant differences when you trim | things back. | | If you have customers using lower powered devices, this is even | more crucial. | cahoot_bird wrote: | It always seemed to me the basics of a messenger app would be the | easy part to be accomplished. It's the marketing that would be | hard seeing as there are already existing solutions such as Slack | and Discord. | [deleted] | what-no-tests wrote: | Wow I was thinking "slackware" and was amazed it would be only | 500kb. ___________________________________________________________________ (page generated 2023-04-26 23:00 UTC)