Discord is ditching Electron and its new app uses less RAM
Posted by archb 1 day ago
Comments
Comment by the__alchemist 1 day ago
GPUI from comments? I meant to try GPUI, but backed off after an announcement pending its maintenance would be in question (?) a few months ago, and Zed broadly ending up being a false messiah, for my uses. (Not on the tier of JetBrains IDEs, a bug with a long thread they closed which (still I believe?) causes it to open cached versions of files, then clobber edits made since the cache, e.g. by other programs. I.e. the sort of bug which renders software too dangerous to use. I will not switch to a GUI framework from a group that ignores bugs of that severity reported by many people)
Comment by earthnail 1 day ago
" (And it's not Tauri, it's GPUI, so good guess everyone.) "
Comment by sphars 1 day ago
[0]: http://zed.dev/
Comment by ethin 21 hours ago
Comment by tensor 21 hours ago
Comment by ethin 21 hours ago
Comment by ecshafer 19 hours ago
GP you asked if there is accessibility P response: yes, here You then respond that worries you and dismiss the proof?
Comment by ethin 18 hours ago
Apologies. I was noting that the lack of accessibility worried me (well, and weird accessibility breakage too).
Comment by rat9988 9 hours ago
Comment by ethin 51 minutes ago
Comment by d1sxeyes 7 hours ago
It's reasonable to be concerned that Discord may not have focused on accessibility while rewriting.
It's less reasonable to be concerned that it may be impossible to write accessible apps using GPUI, as that is now possible (https://github.com/zed-industries/zed/blob/main/crates/gpui/...) although this is a fairly recent addition.
It's also less reasonable to assume that an app made with GPUI Kit will automatically be accessible. You still need to put effort into it.
Comment by somenameforme 1 hour ago
Comment by ethin 54 minutes ago
Comment by marcprux 17 hours ago
I haven't exactly "launched" it yet, but I'm already shipping apps through the App/Play Stores. See https://daybrite.dev/showcase/ for the 5-minute tour.
Comment by tommica 10 hours ago
Comment by nextaccountic 20 hours ago
So Discord using gpui could mean it may get the needed features
Comment by Klonoar 2 hours ago
You can’t exactly lump them together.
Comment by tensor 20 hours ago
Comment by ethin 19 hours ago
Comment by tensor 19 hours ago
Comment by the__alchemist 20 hours ago
I think in the specific case of Discord, I.e. from a big company, I agree they should handle this properly. As a broader standard, I am not as concerned.
Comment by ethin 20 hours ago
Comment by veverkap 20 hours ago
Comment by ethin 19 hours ago
As for me doing it? According to prior comments in this thread it's already done, although I haven't tested it so I don't know how complete it is. Adding UIA support to a framework is different from making that support good (screen readers can be very picky). As an example, say you have a label of an edit box. If you position the label just right within it's parent container a screen reader will pick it up automatically and just announce it as you focus the edit box. But if you don't, all you'll hear is "edit <contents|blank>". There are ways around this (e.g., you can override label detection) but the "ideal" state is that the screen reader picks up that stuff automatically and you just give it the bounds of the various controls and UI elements.
Comment by Forgeties79 20 hours ago
Comment by anthony-eid 20 hours ago
Comment by ethin 18 hours ago
Comment by davkan 20 hours ago
Comment by lsaferite 23 hours ago
Comment by porphyra 21 hours ago
[1] https://gpui.rs/
Comment by drcongo 1 day ago
Comment by thisismyanon2 14 hours ago
But gpui-kit is slop for clankers. The name change from gpui-component to gpui-kit was messy with lots of dangling links remaining for weeks. What little documentation exists is impenetrable Claude speak or buried in "skills.md" files. The APIs are typically incomplete in a way that a human would've never signed off on. e.g. there's no way to enumerate the backing contents of combo boxes, there are multiple tooltip APIs (but even then only buttons can get tooltips). Mac support is clearly just a checkmark that no human has ever looked at (e.g. the way in which menus are mangled). The examples are unhelpful here because, well, see the second point.
Not a bad showing for what's mostly a one man show. But that raises the second problem. Zed's largely distanced themselves from the open source version of gpui and gpui-kit has one human developer. It's a rickety foundation for a commercial app (which is likely why Discord appears to have forked gpui).
Comment by drcongo 8 hours ago
Comment by slashink 22 hours ago
Comment by z0al 17 hours ago
Comment by slashink 11 hours ago
Comment by z0al 4 hours ago
Yes please. The GPUI ecosystem is too fragmented
Comment by marcprux 17 hours ago
Comment by superdisk 13 hours ago
Comment by indemnity 12 hours ago
[x] smallcaps headings
[x] it's not this, it's that
[x] comically overselling marketing language
[x] detached third person perspective
slop confirmed
Comment by marcprux 12 hours ago
And do you really think that? Did you look at https://daybrite.dev/showcase/?
Comment by marcprux 12 hours ago
Comment by superdisk 12 hours ago
Comment by marcprux 11 hours ago
How about you step back and take a 5-minute look at the project and check your own snark.
Comment by yownie 10 hours ago
Comment by 1024bits 23 hours ago
The one major concern I have with this framework, and with rust UI frameworks in general, is accessibility. That's something you get for free or nearly-free in other ecosystems but seems to require a fair bit of elbow grease here.
Still, I would wholeheartedly recommend Iced, with the one caveat that it hasn't yet hit 1.0 and version upgrades could be a little painful, and might bring big changes.
Comment by hbn 1 day ago
Comment by anthony-eid 20 hours ago
Comment by the__alchemist 19 hours ago
Opened a year ago. Still comments this week.
Comment by satvikpendem 22 hours ago
Why do people not use adblockers even this late since their introduction?
Comment by dmix 18 hours ago
Comment by satvikpendem 17 hours ago
Comment by kayson 1 day ago
> div() .flex() .flex_col() .gap_3() .bg(rgb(0x505050)) .size(px(500.0)) .justify_center() .items_center() .shadow_lg() .border_1() .border_color(rgb(0x0000ff)) .text_xl() .text_color(rgb(0xffffff)) .child(format!("Hello, {}!", &self.text)) .child( div() .flex() .gap_2() .child(div().size_8().bg(gpui::red())) .child(div().size_8().bg(gpui::green())) .child(div().size_8().bg(gpui::blue())) .child(div().size_8().bg(gpui::yellow())) .child(div().size_8().bg(gpui::black())) .child(div().size_8().bg(gpui::white())), )
Comment by ogoffart 1 day ago
Your example would look like this:
export component Hello inherits Rectangle {
in property <string> text: "World";
width: 500px; height: 500px;
background: #505050;
border-width: 1px; border-color: blue;
drop-shadow-blur: 15px; drop-shadow-color: #0008;
VerticalLayout {
alignment: center; spacing: 12px;
Text { text: "Hello, \{root.text}!"; font-size: 20px; color: white; horizontal-alignment: center; }
HorizontalLayout {
alignment: center; spacing: 8px;
for c in [#f00, #0f0, #00f, #ff0, #000, #fff]: Rectangle { width: 32px; height: 32px; background: c; }
}
}
}
More on why we chose a DSL vs code in Rust: https://slint.dev/blog/domain-specific-language-vs-imperativ...Comment by thisismyanon2 12 hours ago
Here's a more idiomatic version of the previous example. IME gpui (and iced) is a lot easier to extend than something with a DSL, and if you check out the gpui example you'll see that gpui provides convenient methods to get consistent styles vs the Slint example where you hardcode widths and sizes. Those hex color abbreviations give me a facial tic every single time.
use gpui::{black,red,green,blue,yellow,white};
let Self{text,..} = self;
v_flex()
.gap_3()
.bg(rgb(0x505050))
.size(px(500.0))
.justify_center()
.items_center()
.shadow_lg()
.border_1()
.border_color(black())
.text_xl()
.text_color(white())
.child(format!("Hello, {text}!"))
.child(
h_flex()
.gap_2()
.children(
[red(), green(), blue(), yellow(), black(), white()].map(|color|
div().size_8().bg(color)
)))Comment by c-smile 20 hours ago
That's is not about just Rust ... Any domain has its own optimal or sub-optimal language describing it. Criteria of optimality is a bit subjective of course. Like: INI, TOML, YAML, etc. are better (YMMV, again) for user facing configs than JSON or XML and so on.
I think that HTML is better for defining hierarchical UI structures and CSS and CSS selectors are (arguably again) better to define UI styling.
My Sciter[1] was initially using .FRM alike inputs (VisualBasic forms, good for IDE but bad for a human) but I quickly discovered that having styles, structure and code-behind-UI in single PL makes non-manageable mess. So Sciter uses HTML, CSS and JS we all familiar with. Not 100% match of course but good enough.
Comment by ivanmontillam 18 hours ago
They have no shame in deploying a 300 MB hot mess bundle.
Comment by MisterMunchkin 19 hours ago
Comment by ogoffart 9 hours ago
Btw, a rug pull can happen under even the most permissive licenses. As we've seen in the past with some project changing license or direction. That's more or less already happened with GPUI when Zed refocused development on its own needs rather than other GPUI users resulting in several forks.
Comment by LittleLily 17 hours ago
Comment by IshKebab 19 hours ago
It even added ANSI colour support... which I am still on the fence about but it did make the very good point that it means the logging is exactly the same in GUI and CLI mode.
Comment by ordu 1 day ago
I'd like to know it. I don't think that it can be substantially better. You have to compromise between the amount of customization you are allowed to do and the amount of options you have to pick values for.
I can't vouch for GPUI, I don't know how good its compromise is, but it bears enough similarities to other modern UI-toolkits. I don't think there is a better way, but if you know one, I'd like to know about it.
And, well, don't forget, it is a front-page example, that is not necessarily an example how one should compose their code, it demonstrates what you can do with GPUI. In real life code you'd probably move those children's construction into separate named functions, maybe you'd use some predefined styles to apply to individual elements, instead of picking fg/bg/text-colors, maybe sizes and some other attributes for each one explicitly, and maybe some other tricks.
Comment by eviks 1 day ago
Instead of
.border_1().border_color(rgb(0x0000ff))
You get
.border(1 0x0000ff)
(guess, this can only be in a macro)
Or at least have "color" which understands that it's allied to border instead of having to repeat "border"
> I don't think that it can be substantially better
Don't give up too early, there is no way it can't be, we don't really have any good systems optimized for ergonomics to reach anything great
Comment by c-smile 20 hours ago
After 10 or so of those you'll start dreaming of
border-left: 2px solid rgb(0 0 100%);
right?Comment by eviks 9 hours ago
┠
or more explicitly
├2
that'd be perfectly paired with a dream-like visual designer that doesn't exist?
Comment by tcallred 23 hours ago
Comment by CupricTea 1 day ago
Comment by vazark 1 hour ago
Comment by odo1242 22 hours ago
Also, this is basically what Tailwind code looks like.
Comment by kalleboo 1 day ago
Comment by tomburgs 3 hours ago
On a more serious note I feel like it's not bad but could be improved if they managed to break it down by styling domain (sort of like SwiftUI).
Something along the lines of .flex(gap: 2).text(size: "xl", color: ...)
Comment by ijustlovemath 1 day ago
Comment by desolate_muffin 1 day ago
Comment by Jonovono 1 day ago
Comment by satvikpendem 1 day ago
Comment by alexaholic 1 day ago
Comment by Swiffy0 1 day ago
Sure, a Rust implementation will perform better and use less RAM, but it's quite obvious that the transition to Rust will be done almost entirely by AI.
Don't get me wrong, the AI coded Rust version of Discord will most likely work just fine. The thing I'm wondering about is if it's a good idea to rewrite your whole codebase (which I assume is handwritten since Discord predates AI coding) with AI because now there is nobody that knows how it really works - I'm wondering what's the value of having a human-written codebase + the people who wrote it. Just feels like one shouldn't throw that into the trash like it's nothing?
Comment by kombookcha 1 day ago
Comment by beardbandit 40 minutes ago
Things ship and change way too fast and the changes are massive.
Comment by stackbutterflow 1 day ago
Comment by theLiminator 20 hours ago
Comment by robswc 14 hours ago
Because most AI generated code is incredibly verbose and noisy. This can be true for any codebase, but it is especially egregious in AI codebases. It is hard to prevent that by just saying "be concise" because knowing exactly where to be concise is the measure of true skill/intelligence.
Every time I have success with AI coding, it is because whatever I need done can work as a pure function, where the probability I have to return to it is very very low.
Making sense of a codebase is like putting together a puzzle. A purely AI generated codebase is like trying to put it together without a picture on the pieces.
Comment by port11 6 hours ago
Comment by throwaway_new_1 12 hours ago
I think if people change their mind in six months, let alone 3 years, they would just rewrite it again with something different, or just double down on the AI rewrite to rewrite the rewrite to fix the gaps and so on. It's a rabbit hole.
What people are completely missing with AI is that when a company/someone makes the decision (which is most these days) to go heavily on the AI route, they are probably going to keep going that way.
We don't really know what’s the right balance of AI and People right now.
My personal take would be to leverage AI to fix and improve what already exists in a maintainable way and wait for others to experiment with going heavily AI. It's worked great for Apple who is generally years behind in a lot of things because they wait it out for others to experiment with things.
Comment by SoftTalker 20 hours ago
Comment by moralestapia 18 hours ago
Comment by kombookcha 9 hours ago
Comment by moralestapia 4 hours ago
Comment by CamperBob2 20 hours ago
You won't want it back. How much time do you spend surfing through your .o or .obj files today?
Comment by fao_ 18 hours ago
But there are still libraries where familiarising yourself with the header is important, for example stb's libraries. man(1) and GNU Info were both invented to be computer-stored reference manuals, and indeed to this day you can type `man 3p open` to get the POSIX documentation of the system up in front of you.
I am not aware of many codebases that have manuals as complete as this, but back in the day (1970s-era to the 1990s-era) there would be internal documentation written as par of course for the specification created by the waterfall model of development. Post-2010 companies are very lackadaisical about documenting internal interfaces and libraries because they come from startup cultures where "move fast and break things" is the name of the game.
Comment by dieortin 5 hours ago
Those are not the source of truth for the application logic. But the higher level code is.
The application code describes the behavior of the program and the compiler translates it into a different representation following a set of known, deterministic rules. This is unlike an LLM producing code from a prompt, which is why the source code is still the source of truth, and not a bunch of prompts.
Comment by superxpro12 34 minutes ago
the native app wins every single time. Give me native or give me death!
Comment by 7bit 48 minutes ago
Comment by spunker540 23 hours ago
If a model can tell you anything you’d hope to have a human tell you, what’s the difference? It’s a different point of failure— models can go offline, but employees can also quit anytime too.
Comment by port11 6 hours ago
Comment by mahart 19 hours ago
Comment by petra 1 day ago
Comment by j_w 1 day ago
Comment by lukax 4 hours ago
Comment by tlonny 20 hours ago
Consequently, porting my game engine from Java to Rust was more challenging than I had anticipated.
Comment by gjsman-1000 1 day ago
Comment by chneu 1 day ago
The fear of deskilling is very valid and is already messing things up.
Comment by gjsman-1000 1 day ago
Comment by bccdee 21 hours ago
Contrast this with a vibe-coded "airplane" where nobody actually understands the tires and you're basically operating on a set of assumptions. The tires are not rated and there's no trusted organization. Maybe it works, but you don't actually know. Very different; don't play language games.
Comment by nozzlegear 22 hours ago
Comment by subarctic 20 hours ago
Comment by add-sub-mul-div 1 day ago
Comment by wolvesechoes 1 day ago
Of course people do.
Comment by chasd00 1 day ago
Comment by anthk 22 hours ago
Also check the Homebrew CPU running a custom port of Minix 2 with in-place ported C compilers, linkers and assemblers.
Comment by skydhash 17 hours ago
Comment by anonymous908213 20 hours ago
Comment by Emjayen 10 hours ago
Plenty of people have a deep understanding of software/hardware, as that's the context here. I personally can take you from usermode, through the kernel (both NT and Linux), down to the hardware interface, explaining the vast majority of systems along the way, and critically, as they relate to performance concerns.
So can plenty of others who actually know+understand things.
Comment by gamblor956 13 hours ago
Cal used to require EECS students learn how to make a basic CPU. Students at CalTech learn how to make advanced planes as student projects.
Comment by alala-lala-lon 1 day ago
Comment by rvz 1 day ago
Comment by PreciousH 1 day ago
Comment by pjmlp 1 day ago
Comment by odo1242 10 hours ago
Comment by asdff 20 hours ago
Comment by pjmlp 19 hours ago
Comment by atomic_cattlepr 19 hours ago
Comment by fao_ 18 hours ago
Comment by c-hendricks 1 day ago
For reference, my src-tauri/target/ folder is 8.3gb.
Comment by deaton 20 hours ago
Comment by c-hendricks 19 hours ago
Comment by throwaway2037 18 hours ago
> GPU-accelerated UI framework for Rust
Can someone explain to me why a text editor needs to be GPU-accelerated? Literally, you are only blitting a few icons and painting text. What am I missing? To be clear, I am not here to doubt that the toolkit is good. Rather, I am asking why is "GPU-accelerated" important? Most people in 2026 that use an IDE are also equipped with a multi-GHz CPU has has plenty of compute to paint whatever pixels necessary at more than 60Hz refresh rate.Comment by nomel 18 hours ago
It's either you peg a CPU while simply scrolling, or your GPU does a small amount of power efficient, buttery smooth, work.
Comment by throwaway2037 18 hours ago
Comment by hburd 17 hours ago
Comment by dmix 18 hours ago
Comment by danpalmer 16 hours ago
Comment by cush 18 hours ago
Comment by throwaway2037 18 hours ago
Comment by asimovDev 7 hours ago
Comment by falsaberN1 16 hours ago
Comment by pornel 13 hours ago
I don't know about GPUI in particular, but it's possible to make GPU-based rendering use less VRAM by generating graphics with shaders on the fly instead of using pre-rendered sprites/bitmaps like it used to be done with CPU-based rendering (e.g. computed gradients and drop shadows, large text rendered straight from curves instead of a prerendered atlas)
Comment by 7bit 46 minutes ago
Comment by Kuyawa 1 day ago
Goodbye Electron, we barely knew you
Comment by jttnr 1 day ago
Comment by pjmlp 1 day ago
Comment by markbao 1 day ago
Comment by RunSet 1 day ago
Comment by asimovDev 7 hours ago
Comment by hn773746483 22 hours ago
All data packages were missing 90% of my account data (bug? size issue with zip files?), no avenue to report this to Discord of course, because the only words their "privacy team" know is... :^)
I was going to paste exactly what they sent me, but it turns out some of my data request tickets have been deleted by them.
Comment by nonethewiser 1 day ago
Comment by sgarland 1 day ago
Comment by pjmlp 1 day ago
Comment by nonethewiser 1 day ago
If it were simply the Chrome install that would imply Electron is 9GB+ by itself, which it most certainly is not.
Comment by chii 1 day ago
Therefore, if you have an old install and have gone thru several (many) cycles of updates, the installation directory could be riddled with old versions and update files that make up the bulk of that 10 gig.
Comment by flykespice 2 hours ago
Comment by hypfer 1 day ago
Electron rose to fame because one could just do everything with it and it was good enough.
Being able to do everything also means that the thing can do everything everywhere all at once, which is many lines of code.
___
The magic of electron was that it was "cheap", however, with code being all AI-generated, that's even cheaper. So now everything will be some slop rust until the point when people realize that there is a cost to be paid after all.
For electron, that has been RAM and performance. For the vibeslop.. well. We shall see.
Comment by delta_p_delta_x 1 day ago
Operating systems developers should be looking to profile everything. Benchmarking and profiling used to be horribly time-consuming; nowadays, with agents, this is almost trivial. Then valuable engineer time can be spent looking at actually solving and optimising the workloads, from the kernel, to drivers, to user-mode libraries, to vendored applications.
About a decade ago programming was expensive, and we decided writing everything in JavaScript was OK, and wasted everyone's memory instead of using programmer time to write fast and efficient native applications. This is no longer the case.
Comment by throwitaway222 13 hours ago
Comment by hypfer 1 day ago
Depends.
There is a lot of value in man-made software where the man knows exactly what happened where when why.
If you just revibe in rust, you get something that works at this point in time, but this deep architectural knowledge is completely lost and you're at the mercy of Dario not locking down your account for wrongthink.
That can still be fine for smaller tools where the cost of recreating them from scratch is alright, but revibing your core business thingy is likely a horrible idea, which I encourage people to do, as I'd love to have the business opportunity to take over their frustrated customerbase ca 5 years from now.
Comment by delta_p_delta_x 1 day ago
I've mentioned in another comment, but my biggest pet peeve is that AI agent applications (Claude, GPT, etc) are themselves just Electron wrappers over their web pages. What a waste.
Comment by nonethewiser 1 day ago
Inference cannot be controlled. The models are already out there. It's too late.
Comment by hypfer 1 day ago
That needs claude-like capabilities.
It also should not be done at all. But that approach needs it.
Using open weights models like GLM-5.3 can also speed up rewriting, but then you're rewriting and not revibing, which is a lot slower.
Comment by upcoming-sesame 17 hours ago
Comment by gear54rus 1 day ago
who downloads this? there's a website available
Comment by saghm 1 day ago
Comment by TingPing 1 day ago
Comment by saghm 19 hours ago
Comment by chandlerswift 11 hours ago
Comment by mintflow 1 day ago
I launch codex with astra+ultra on my tauri project because webview sometimes cause blank screen on user device to let it to rewrite the tauri projec to GPUI
It did those stuffs for me
- get rid of the CGO and MINGW toolchain for cross building windows on Linux
- wrote a compatbility layer to communicate the original app backend written using rust
- Achieve not ideal but acceptable UI/UX as the tauri project
- The new build using 24MB memory which is quite good and I do not even bother to check the tauri version
It amazing time to rewrite, though I still can't remember joy of old days that manual coding, but my lower back ask me to just embrace the Agentic coding...
Comment by stasomatic 21 hours ago
Comment by abdullahkhalids 14 hours ago
But the kicker is, if everyone buys faster computers, the developers will correspondingly stuff more "features" in there to make it slower so the same number of people are still screwed. This is the recorded history of software engineering.
Comment by literallyroy 20 hours ago
Comment by lstodd 20 hours ago
Comment by mvdtnz 20 hours ago
Comment by PUSH_AX 18 hours ago
Comment by nophunphil 20 hours ago
Comment by stasomatic 18 hours ago
I run Slack, Discord, Signal, Bitwarden, Asana, VS Code, GitHub - all idling quietly on a 16GB MPB M2. Was the same on my M2.
It's overblown, I don't care about Electron, how it's made (I understand how), who makes it, no dog in the hunt, but there is too much FUD about it, IMO.
Comment by skydhash 16 hours ago
Comment by drdexebtjl 15 hours ago
It’s kids playing Roblox on a decommissioned school laptop in a third-world country.
Comment by asimovDev 7 hours ago
Comment by viraptor 20 hours ago
Hot take: We should be able to comfortably run generic office desktops today with 4GB ram. We don't because too many people think "Who cares?"
Comment by stasomatic 18 hours ago
Comment by viraptor 17 hours ago
1. You can't imagine that <8GB is enough for office work. It still is with enough care.
2. You can't imagine that a lot of this usage is waste. Sure you can buy more ram, but what if you needed half the memory and didn't swap?
I've got 30GB in use (some of it already compressed) and around 20GB of that is useless copies of some browser engine in various apps. It's insane that anyone is accepting that as table stakes and tells the user to "suffer the consequences" rather then raging at the current state of the industry.
We ran quick and responsive office suites in a fraction of that decades ago and 4GB in a common office machine should handle this just fine. (And still can on 8GB on a well configured machine. 4GB is tight but may be still comfortable on Linux)
No. I want the great native rewriting and de-Chroming to start, and I want the companies that don't follow to suffer the consequences of getting rejected from the more lean machines.
Comment by Telaneo 15 hours ago
Comment by nozzlegear 12 hours ago
Amen. I hate Discord, and I loathe that I have to use it just because "gamers" use it and it became the default for video game communities.
Comment by protocolture 16 hours ago
Windows doesnt leave you a lot of change from 8GB these days.
I used to have issues as Firefox would open a tab, cap out my available memory and 3cx would start stuttering causing voice issues.
The solution was to move to a carbon with 32GB RAM, but like, I should probably expect more out of Windows/Slack/3CX/Firefox in the first place. Feeding the beast more RAM is no longer a financially viable alternative for a lot of people.
Comment by stasomatic 49 minutes ago
Comment by WhitneyLand 21 hours ago
It makes sense and I think they are going to be more teams moving in this direction.
Now that agents are good enough to one shot native UI from a Figma spec, these extra layers will be seen more as adding unnecessary complexity and ram bloat.
Comment by Telaneo 1 day ago
I just pray that Vencord will continue to work in some form, if only so I can use whatever font I want. I'm not a fan of many other changes they've made and I've thus had to reverse, but I'm willing to trade away the flexibility of CSS for an app that uses 5 times less RAM. Even better if it doesn't go away at all, but we'll see.
Comment by RankingMember 1 day ago
Comment by Telaneo 1 day ago
Comment by pndy 8 hours ago
Comment by Telaneo 3 hours ago
Discord could be knobheads about it, but I think they realise there's little point in actually implementing any checks and banning accounts unless said accounts actually cause problems. That section of the terms of service is probably there just as a catch-all just so they have a reason to ban, just so they don't need a good reason.
Comment by asdff 20 hours ago
Comment by Telaneo 16 hours ago
Comment by rapist 2 hours ago
Comment by magackame 18 hours ago
Comment by throwaway2046 1 day ago
Comment by thoughtpeddler 16 hours ago
Comment by Tmpod 2 hours ago
With a native app, which I still welcome for perf/mem reasons, I'll have to configure opensnitch (or smth of the sort) to take care of the outgoing telemetry calls... A system-wide uBO would be a nice to have!
Comment by Telaneo 16 hours ago
Going by me and my friends, no.
> striking the best balance between resource footprint
If this is the best balance possible, then that balance is horrible. Having to pull along a whole browser is a massive ball and chain on any program that I wish I could cut off anywhere I see it.
> no additional local apps on their device
This isn't an advantage for my use cases, nor any of my friends apparently.
> still preserving their native UI
As in preserving Discord's or your OS's UI?
I don't care about the former. I'd use DiscordMessenger[1] if it was mostly feature complete and Discord didn't ban third-party clients.
The latter isn't really preserved in any meaningful opinion by shoving it into a browser. The difference in UX post-install between a PWA and a seperate browser window (or a seperate app) is zero to me. It's still not native.
Comment by bagacrap 14 hours ago
Electron apps do this. PWAs do not because you are already running the browser.
> > no additional local apps on their device > This isn't an advantage for my use cases,
It objectively is, because (a) you don't have to run Electron next to a browser (b) your Electron app lags behind in security fixes compared to Chrome or whatever you use to browse, and (c) PWAs have a much stricter permission/capability model than native apps, so you can run PWAs from publishers you don't trust that much.
Comment by Telaneo 13 hours ago
Sometimes, I might actually not be running the browser. And even if I am, a native app is still better.
> you don't have to run Electron next to a browser
I don't quite see the point you're making here?
> your Electron app lags behind in security fixes compared to Chrome or whatever you use to browse
Any app I download is sandboxed to the point I don't see this as a benefit of any magnitude.
Not to mention I might want the option of not updating (although I think this is an option with PWAs nowadays, although I've never actually tried).
> PWAs have a much stricter permission/capability model than native apps
Ditto.
> so you can run PWAs from publishers you don't trust that much.
I don't want to do that in the first place.
Native apps can do all those things better already. Can we please just have native apps instead?
Comment by arisudesu 4 hours ago
Comment by Klonoar 1 hour ago
Comment by Venn1 1 day ago
Comment by satvikpendem 1 day ago
Comment by tensor 21 hours ago
Comment by satvikpendem 15 hours ago
Comment by happyPersonR 22 hours ago
Comment by Scaled 22 hours ago
Comment by lukan 21 hours ago
Also, what real choices of owned plattforms besides old school forums are there?
Comment by Scaled 21 hours ago
And you might be impressed how far forums have come. Open source Discourse forum now has built-in Discord like voice and video chat, along with real time text posts. (It also powers some extremely large communities with millions of users.)
Comment by lukan 18 hours ago
Comment by Scaled 17 hours ago
Comment by bigyabai 19 hours ago
ActivityPub, AT Protocol, Nostr, to name a few.
Comment by Daedren 1 day ago
Activities will apparently still use Tauri. Is that going to be a compatibility nightmare due to WebKit? (At least until CEF comes out)
Comment by tensor 21 hours ago
Comment by eviks 1 day ago
Comment by drcongo 23 hours ago
Comment by mintflow 1 day ago
Comment by smolder 1 day ago
Comment by krystalgamer 1 day ago
Comment by gucci-on-fleek 13 hours ago
Comment by gizmo385 13 hours ago
Comment by ssivark 13 hours ago
Comment by lyorig 1 day ago
Perhaps Discord caught wind that this is now possible, and don’t want to be left behind?
Comment by Tmpod 2 hours ago
Comment by Jonovono 1 day ago
Comment by wackget 1 day ago
Also naming your company "__slop" is a bold move!
Comment by Jonovono 1 day ago
Thanks haha hitslop, it means "a property used to increase the interactive touch area of a component beyond its visible layout boundaries", which I thought was so funny when I came across it. Owned the domain since 2020, knew it would come in handy eventually!
Comment by mahboi 23 hours ago
Comment by asow92 1 day ago
Comment by cloverich 1 day ago
I think what we're seeing here - and likely to continue to see - is new versions of web UI that eschew a lot of the historical baggage given they don't need to support older websites. And possibly something more powerful. So I guess re-writes or partial ports that take only the parts we need. Presumably a bunch of people will try and hopefully, a few succeed.
Comment by bigstrat2003 1 day ago
Neither of which is actually good for your users. Look like other apps on the platform, FFS.
Comment by Rohansi 18 hours ago
Comment by taschmex 1 day ago
While you _should_ put some effort into tuning and fixing these things for your specific project, you will "mostly" get things like cross-platform support for all major desktop operating systems, some support for accessibility-tools like screen readers and voice over, devtools and debuggers, application installers, (push) notifications, caching, some aspects of security and cryptography, log handling, and file handling for free, or at least get a reasonable push in the right direction, with Electron.
The alternative is either getting each of these things from a different third party source, or making them all in-house. With a popular abstraction layer like Electron + a web stack, you will to some extent encounter the same problems, mysterious log messages, design considerations and other issues as everyone else. This means that you can find documentation, stack overflow questions, new hires, consultants, blogs, LLMs, etc. that have the skills and knowledge you need, instead of researching and solving everything in-house.
Comment by philistine 1 day ago
You're falling in the trap of the cross-platform dream. Electron takes insane decisions about how your app is going to achieve cross-compatibility in the name of allowing web devs to do the work. It is simply the wrong tool for the AI age, since a versatile web dev can turn to an AI to help them achieve the work.
Comment by nubinetwork 23 hours ago
Comment by slashink 22 hours ago
Comment by reinhash 1 day ago
Comment by greatquux 1 day ago
Comment by grim_io 1 day ago
Comment by fbnlsr 1 day ago
Comment by WorldMaker 20 hours ago
Of course, being the Teams org they'd likely still find a way to end up with a bloated mess even after a Rust rewrite.
Comment by xnx 22 hours ago
Comment by lookeey 1 day ago
https://nitter.click/svishnevskiy/status/2118081920194203799
Comment by HelloUsername 23 hours ago
Comment by throwaway2037 18 hours ago
Comment by vmg12 18 hours ago
Comment by diath 17 hours ago
Comment by Rohansi 18 hours ago
Comment by HoldOnAMinute 22 hours ago
Comment by wpm 1 day ago
Comment by renehsz 18 hours ago
Comment by pipe01 1 day ago
Comment by pjmlp 1 day ago
Comment by cuzezzzbbfofai 19 hours ago
Comment by nonethewiser 1 day ago
Comment by Insanity 1 day ago
Comment by himata4113 1 day ago
Comment by slashink 22 hours ago
Comment by Scaled 22 hours ago
Comment by Insanity 22 hours ago
But there’s other teams and forces at play as well. So I agree with your overall sentiment but the SDEs who worked on this are perhaps not the ones shovelling adware into our faces.
Comment by Scaled 21 hours ago
Comment by Insanity 18 hours ago
Comment by slashink 20 hours ago
Comment by positron26 21 hours ago
Comment by unrented7977 21 hours ago
Comment by Scaled 21 hours ago
Comment by himata4113 20 hours ago
Comment by 4yeyeyeyey 21 hours ago
Comment by cfbradford 1 day ago
Comment by hmry 23 hours ago
They're not exactly friendly to that sort of thing, I wouldn't be surprised if they add some traps to catch people making their own client.
So I'd +1 the sibling comment's suggestion to consider alternatives to Discord, if you're setting up your own community
Comment by writtenone 21 hours ago
Comment by 10111001 21 hours ago
How, it sounds like they're trying to catch you, e.g. I took...
> and they have banned people for it in the past (if they do something detectable, like enabling A/B testing feature flags that their account ID doesn't match :/)
...to mean they push out changes just to detect the clients who don't conform. I'm sure they could be very sneaky about it in a way that would be hard to "just do better" For instance: have some client behavior change that's hidden behind a feature flag or even calendar date, wait a long time until all official clients are updated, then trigger it and ban the laggards who can be assumed to be using an unofficial client.
Comment by sellmesoap 22 hours ago
Comment by Scaled 22 hours ago
Comment by sellmesoap 20 hours ago
Comment by uproarchat 1 day ago
Comment by nekusar 22 hours ago
FLOSS, easy to self host, and works nicely.
Comment by apetresc 21 hours ago
Comment by toomuchtodo 1 day ago
Provide it the official client and point it at public api endpoints (or an LLM operated mitm proxy), set it to work to reimplement.
Comment by ChocolateGod 23 hours ago
Comment by rbits 1 day ago
Comment by muddi900 1 day ago
Comment by rs999gti 1 day ago
https://www.tomshardware.com/tech-industry/artificial-intell...
Comment by pjmlp 23 hours ago
Comment by techjamie 1 day ago
Edit: A couple queries with it indicate it will still assist with malware analysis and considers it beneficial. Hopefully it stays that way.
Comment by esseph 1 day ago
Comment by TheGoddessInari 1 day ago
Several others have done similar to greater or lesser degrees in calendar 2026, but the pressure is there across the board to limit what the open models can do without modifications that could largely only be found locally and not from online providers.
Comment by inknight 21 hours ago
Comment by swat535 21 hours ago
I'm not surprised Anthropic and OpenAI are trying their best to ban / severely handicap competition and crack down on opensource. It's a major threat to their existence.
Comment by breakwaterlabs 1 day ago
Comment by abirch 23 hours ago
Comment by pyreko 1 day ago
Comment by rs999gti 1 day ago
Comment by not_a9 1 day ago
Comment by odo1242 22 hours ago
Comment by not_a9 15 hours ago
It’d probably be trickier with multiplayer games given the slopmachine would probably assume you wanna cheat in it
Comment by sunaookami 21 hours ago
This is what an Anthropic dev said:
>"to steer it away from recreating someone else's specific game"
This just means exact clones, not reverse-engineering. The article is blatantly lying. And easy to disprove by... trying it yourself.
Comment by rs999gti 20 hours ago
Comment by TremendousJudge 1 day ago
love this term, knew instantly what it means
Comment by himata4113 1 day ago
Comment by odo1242 22 hours ago
Comment by ecshafer 1 day ago
Comment by tomhow 7 hours ago
Comment by bakugo 1 day ago
Comment by alala-lala-lon 1 day ago
Comment by chasd00 1 day ago
Comment by jarjoura 22 hours ago
Comment by andix 22 hours ago
But most frameworks don't come even close to CSS and all the possibilities to create custom controls. It often requires to build everything from scratch in code, which is really hard for more complex layouts.
Comment by nottorp 21 hours ago
Comment by Telaneo 15 hours ago
Comment by HoldOnAMinute 22 hours ago
We developed on Windows NT and deployed onto HP/UX and Solaris.
Comment by nottorp 21 hours ago
Comment by tcfhgj 22 hours ago
Comment by tmpz22 1 day ago
A bit like a translator who doesnt speak the language but has Google translate and a few beers in them right?
For example, is there still a massive .clone() problem in LLM generated Rust?
Comment by cloverich 1 day ago
Personally I was surprised how quickly I surpassed my original code, feature wise. Will it stand the test of time? Too early to tell - need to see if I'm still using the native version of the app in a year. But its been more fun and informative - and fast - than I'd expected.
Comment by arecsu 1 day ago
Comment by tmpz22 23 hours ago
For what it's worth I wholly agree with your point and that mirrors the personal project I have. But making personal projects a bit more fun and fluent is not the $10T proposition being championed at the professional level.
Comment by mahboi 22 hours ago
Comment by nozzlegear 22 hours ago
Comment by bigstrat2003 1 day ago
Comment by satvikpendem 1 day ago
Comment by pjmlp 23 hours ago
Comment by satvikpendem 22 hours ago
Comment by pjmlp 20 hours ago
Comment by satvikpendem 17 hours ago
Comment by HoldOnAMinute 22 hours ago
"I can do it, and you didn't do it, therefore you must be lazy, because I certainly am not lazy"
What's lazy is not diving into the reasons that people may or may not do things.
Comment by bccdee 21 hours ago
Incidentally, I think it's kind of ableist to toss around the concept of ableism this lightly. Disability is a set of concrete barriers which go unacknowledged and a set of real accommodations which go unimplemented. Disability activism entails acknowledging those barriers and implementing those accommodations; it does not entail the idea that everyone is always trying their best and nobody is ever negligent.
Comment by gib444 21 hours ago
Comment by leofree 1 day ago
Comment by cloverich 1 day ago
Comment by mahboi 22 hours ago
Comment by HoldOnAMinute 22 hours ago
"No one gets TWO sticks of RAM until everyone has at least ONE stick of RAM!"
Comment by mahboi 27 minutes ago
Comment by sharts 23 hours ago
Comment by anthk 1 day ago
On the netbook, well.. CWM, UXterm, Dillo, CLI/TUI mail, usenet, IRC and so on clients, groff, nsxiv, mpv, MuPDF... it runs snappier than the NUC for what it does. Programming? Golang for networking stuff -security, not like Rust, but far better than C-, simple C99 for small software, or S9/JimTCL. Otter Browser for emergencies (JS pages from public institutions/govts in my country).
Comment by dirtbagskier 1 day ago
Comment by superxpro12 36 minutes ago
electron is a blight on computing
Comment by tomkarho 9 hours ago
Comment by AlbinoDrought 1 day ago
Comment by stefanos82 21 hours ago
Comment by ftchd 19 hours ago
Comment by yigalirani 23 hours ago
Comment by devinhades333 20 hours ago
Comment by 1nxpired 21 hours ago
Comment by vallode 21 hours ago
Comment by nottorp 21 hours ago
Comment by resters 1 day ago
Comment by wolvesechoes 9 hours ago
Comment by xnx 21 hours ago
Comment by ddejohn 9 hours ago
Comment by WhereIsTheTruth 22 hours ago
Comment by musha68k 1 day ago
Maybe we should collectively use more of our personal tokens to re/write, extend and mix up the common(s) stacks at this point?
Comment by leolastforce 19 hours ago
Comment by j45 15 hours ago
Comment by asdff 20 hours ago
Comment by hobo_mark 1 day ago
Comment by dist-epoch 1 day ago
Such a rewrite would have been unthinkable 2 years ago, but now it's table stakes.
Comment by bufio 19 hours ago
Comment by xmichael909 1 day ago
Comment by paxy 1 day ago
Comment by pseudony 21 hours ago
But.. maybe, maybe this is the opposite of google translate in the 00's - maybe, if you keep porting back and forth, you will eventually arrive at perfection :P
Comment by __s 10 hours ago
I've found multiple passes with different models & 100% line coverage help. Need to push further with fixing. Coverage requirements also cut down on duplication (not entirely, still need to be vigilant) since it increases effort having to include coverage on new code
Comment by kogasa240p 22 hours ago
Comment by jmyeet 1 day ago
I've always disliked Electron apps in principle. The idea was you could write once, run anywhere, which is something we've heard before so many times but it never really works out that way. Back in the early days of Java we heard this mantra with applets and Java desktop apps and the reality was "write once, test everywhere".
The cost is simply too high. Nobody wants an entire browser engine packaged to run a desktop app. Security-wise, this is a nightmare. It's such a huge attack surface (eg [1]). And resource-wise it's also a nightmare. Honestly, Electron apps can't die fast enough for my liking.
What I think we'll see is a return to desktop apps because the cost of porting them to new platforms is dropping like a rock.
There are modding issues with Discord's migration but I believe modding itself is going to be an issue in a world where it's going to be increasingly easy to find and use exploits.
I also wonder if Discord is the best we can do here. I've always hated Discord from a UI/UX perspective. Nothing about it is intuitive (IMHO). There are like 3 different settings buttons. You join a Discord and you get yet another custom flow of having to go to this channel and select roles and do something before you can do something else blah blah blah. Everything feels shoe horned. And Discord channels are a worse repository for information than the old forums were.
[1]: https://www.sentinelone.com/vulnerability-database/cve-2026-...
Comment by Kuyawa 1 day ago
15 years reading the verge without subscription. What happened?
Comment by pjmlp 1 day ago
Comment by hypfer 1 day ago
Comment by insane_dreamer 21 hours ago
Comment by 1209387114555 1 day ago
> It’s not clear when Discord will make the full switch over to Rust, but Vishnevskiy says the company “hope to get it into testing with users soon.”
soon™
And yeah, The Verge was one of my favorite resources earlier too but I've stopped visiting it due to subscription requirement on most articles.
Comment by abofh 18 hours ago
Comment by Varelion 21 hours ago
Comment by anocna 1 day ago
Comment by arbor-group 1 day ago
Comment by acdev_app 1 day ago
Comment by acdev_app 1 day ago
Comment by chmorgan_ 20 hours ago
Comment by thrwaway73637 1 day ago
Comment by hendrikmans 1 day ago
So, yeah, enjoy rebuilding complete browsers, I guess? I'm sure they'll run more efficiently than the rendering engines that have been refined and tweaked over the course of now multiple decades.
Well, unless you leave out the annoying stuff, like a11y, IME, RTL, but who needs those things anyway, am I right.
Then you find out that iterating on a fully Rust-based app is sloooow, so you add a scripting layer, maybe integrate a little Lua VM or something that lets you execute JavaScript?
Congratulations. You've built a browser, just with fewer features, more bugs, and probably higher RAM usage. Good job.
Comment by vmg12 1 day ago
Comment by hendrikmans 1 day ago
Comment by ogoffart 1 day ago
Compared to Electron, there is no browser, so binaries are a much smaller, use less memory, startup is fast. And the attack surface is also much smaller (no XSS)
Comment by bigstrat2003 1 day ago
Comment by the__alchemist 21 hours ago
Comment by delta_p_delta_x 1 day ago
There is absolutely no reason for Discord—a chat application—to run everything a browser does. Why do I need to play videos in the chat application? Why do individual avatars and even tags have to run custom shaders? It's called scope creep.
> a11y, IME, RTL
All of this can be done at the platform level. Win32 did this three decades ago. Comes with entire language packs.
> so you add a scripting layer, maybe integrate a little Lua VM or something that lets you execute JavaScript
See above: scope creep; features for features' sake.
Comment by gobdovan 1 day ago
Chat apps are literally the central example of why Electron is a God-sent. Here's a video from a Rust guy explaining why there are quite a bit of reasons to do it https://www.youtube.com/watch?v=hnaGZHe8wws .
Comment by cstdr 20 hours ago
Comment by sophacles 23 hours ago
Now i consider that a must have.
Similar for emojis...
It turns out a chat app is about human interaction, not exchanging text, and in human interaction context is a big deal. All these things add context to the chat environment.
Fortunately IRC still works, and you can go enjoy your text only environment if you want!
Comment by hendrikmans 1 day ago
You know exactly that the moment that Discord launches a new version that no longer plays videos, people will whine about it.
> All of this can be done at the platform level. Win32 did this three decades ago.
Yeah, but they're porting to Rust and GPUI and not that.
Comment by post-it 1 day ago
Maybe not anymore. I don't work on any Chrome-sized Rust codebases so I don't know, but iterating on anything is so much faster that it might work out fine.
Comment by sgarland 1 day ago
Comment by the__alchemist 1 day ago
Comment by hendrikmans 1 day ago
Comment by the__alchemist 1 day ago
Comment by tredre3 19 hours ago
The way you phrased it, it's not. However if you've used Discord, you know that to render it you're essentially rebuilding a web browser due to the sheer variety of formatting, images, animation, audio, videos, languages, widgets, and whatnot that must all coexist in arbitrary forms in every server/room/forum.
Comment by hendrikmans 1 day ago
Comment by easywood 1 day ago
Comment by hendrikmans 1 day ago
Comment by spunker540 23 hours ago
Comment by hendrikmans 23 hours ago
Comment by eviks 1 day ago
What top-level engineering experience led you to believe the magic of multiple decades guaranteeing improvements?
Comment by hendrikmans 1 day ago
Comment by eviks 9 hours ago
But to your point - sure they are, not only in RAM, but also disk space, battery use, and startup speed etc. Some parts of them are fast, but in that suboptimal stuck-in-a-slow-niche kind of way like V8, which a better alternative would just get rid of (no doubt, great engineering once you learn about the almighty "trade-offs" that can excuse any performance failure)
Comment by anthk 21 hours ago
Artcraft it's doing that in every software application;
> so you add a scripting layer, maybe integrate a little Lua VM or something that lets you execute JavaScript?
Every Arftcraft software can be command line driven and it's still fast and small compared to your bloated crap.
Comment by elevaet 1 day ago
edit: there is one https://github.com/Sidenai/sidex haven't tried it yet
Comment by teekert 22 hours ago
Comment by eastbound 1 day ago
If all products ditch Electron, it satisfies the NSA requirements of having AI-generated backdoors on your computer, while allowing you to reduce your RAM consumption and letting this precious silicon for Sam Altman (He's quoted saying RAM is better spent in data centers than in personal computers - and in an era where everything is Cloud, one might wonder why the base Macbook Pro has 32GB).