I couldn't find exact figures for MS Outlook but Office 365 seems to require 1Gb as a minimum.
A quick look at the Gmail tab I have open in Chrome seems to be taking roughly 390Mb so this would seem to be an improvement over that.
As a genuine question, what sort of size would you expect for an optimised native app with the same functionality?
I’m tempted to make a FastMail Electron app just to demonstrate that Electron/HTML/CSS/JS doesn’t need to mean slow and heavy (it just normally does).
Later: OK, so on Windows a trivial Electron “just load https://www.fastmail.com/login (and then log in)” app uses ~230MB of RAM. Not what I was hoping for, though it doesn’t surprise me a great deal—Chrome is quite happy to use lots of memory. Interestingly, when I reduce it from 3000×2000 to 1600×1200 (device pixels, it’s a 2× display), it goes down to about 160MB after a bit, and minimised to 180MB or 120MB for the two window sizes. Still very snappy despite this memory usage, though, for FastMail is fast.
Yes, but that’s not a fair apples to apples comparison with his 300mb number. Your looking at the memory used for that tab, not the shared memory used by the browser across tabs. Open Firefox with no sites open and check your baseline memory usage. Add that to the numbers above for a direct comparison.
I’m tempted to make a FastMail Electron app just to demonstrate that Electron/HTML/CSS/JS doesn’t need to mean slow and heavy (it just normally does).
One avenue would be to use a different, more light-weight engine; https://github.com/zserge/webview, for example, can use the local platform’s engine, which is likely to be somewhere between a little and a lot more efficient than Electron/Chrome. Running FastMail with the MSHTML renderer via the Rust bindings for that (DPI scaling issues, but meh), it starts at about 60MB but is easy to get over 80MB with some use. Still quite a lot less than Electron/Chrome.
On my laptop with 16GB, it's certainly been at least a few months since I've done anything that made it hit swap.
> I said "unintentionally" as a hedge for corner cases like VMs where you are likely aware of the limits.
I was aware of the limited memory of the VM, but almost everything I run there is a text-mode application, so it usually doesn't matter. Honestly, I thought that Slack would fit easily in the free memory, but I'm logged into 3 teams, so it ate more than I expected. And it's a spinning rust drive; swapping sucks, and it slows down the host OS at the same time.
It's an avoidable situation; just run Slack under the host's Windows, instead of in the Linux VM. But it remains the case, in my uses, that memory has caused more issues than CPU, and that CPU has caused more issues than battery drain. I don't know why everyone else focuses on memory so much...I perceive my own issues as kind of a corner case.
For reference, I’m using the explicit/window-objects/top(…) figure from about:memory. This is not an accurate representation of the full footprint, but is close enough.
It might be me, but i prefer them to be rendered incorrectly in a text-only view :-P. I use email since the 90s and so far i do not think i can come up with any case where the HTML in an email was actually useful and not used for fluff (which i do not mind but can do without), branding (which i do not care at all about) or -way way more often- advertisement.
Also almost all HTML mails i've seen come in text-only version too and any useful bits are attachments anyway.
As a past (very minor) contributor to chromium+webkit I'm curious if there's anything one can do to help, but I haven't kept up with their status in a long time.
It's a 10 year old project and memory usage has always been fairly high, I don't see any indication of a major focus on reducing it anytime soon.
I don't hate Electron apps or anything, but the ones I already have open are using up enough of my memory that there isn't much left to run more of them. I really do hope this improves in the future though. If not I may just have to buy more RAM.
I strongly prefer to disable conversation view, because the time (recency) and time interval (frequency) are obscured, at least from the inbox view of most readers.
There is a big difference to me between a thread with 10 emails in one morning, versus one with 9 emails over a week, followed by one this morning.
150-300MB seems more than acceptable for a local email client. A pedantic, vocal minority may be over-represented in this thread (it IS HN after all).
IMO Electron apps present significant advantages that justify its negligible cost, eg skinnable with CSS, inspected live with a web inspector, cross platform etc.
All of these have been possible with Qt circa 2006. (There is no inspector out-of-the-box, but KDAB made one that could be injected via LD_PRELOAD.)
Yup, that's what I wanted to know. Since Thunderbird & Postbox both used the same Mbox Unix format for my 20 year email archive saved on disk, it was very easy to switch between them. And since it's an industry standard, I'm reasonably confident I could export/migrate it to a new email client when I have to - or find someone who has written software to do it.
What is the reason you do not store in a standard format?
I feel bad but you have already lost me there :/
Not in terms of resources (CPU/RAM). It's way better than Electron.
And I don't believe that only having experience in web development is a good enough excuse for shoehorning web dev things everywhere else.
Before that I used mutt - also very little.
Native Emacs in a GUI can also show inline images (but not when running in a terminal, obviously).
[0]: https://senglehardt.com/papers/pets18_email_tracking.pdf
Great work by the way!
For a email client that is still more than I ever would accept. Do you hold all conversations in the RAM for searchability or something?
When I use mutt I doubt it goes over 20mb.
But then it is mutt running inside a screen session in an xterm.
Screen is using 4m, and the largest xterm open is using 2.4m. So even adding in screen and xterm overhead that's still only 34.4mb.
1. Is there an extension architecture, that I might be able to write my own extensions?
2. Can I edit the "From" address on outgoing mail, and will it remember my preferred "From" address on a per-recipient basis?
3. Does it have extensive keyboard shortcut support, or does it require a mouse?
4. Does it work well with both of the Linux clipboards, the standard system one and the X-provided middle-click one? (Other Electron apps, such as Postman, do not)
2) Not at the moment, but it supports multiple email accounts at once and you'll be able to move emails effortlessly between accounts in the near future.
3) Yes, it has extensive keyboard shortcut support
4) It hasn't been released for Linux yet, but once it will, I'll make sure to try to address this issue.
Not yet, but I assure you that I will! Especially if the answer to the next question is negative...
> 2) Not at the moment, but it supports multiple email accounts at once and you'll be able to move emails effortlessly between accounts in the near future.
I have literally thousands of "accounts" as I have a catch-all domain that I've been using since 2001. I need the ability to edit the "From" address, minimum. And if I'm going to use the email client regularly, then it needs to remember the "From" address to use on a per-recipient basis. That is what extensions are for!
> 3) Yes, it has extensive keyboard shortcut support
Terrific!
> 4) It hasn't been released for Linux yet, but once it will, I'll make sure to try to address this issue.
You are welcome to contact me for testing. muszc-master splat dotancohen spot com.
I really don't think that's true outside of the HN echo chamber. Like OP, I am using a Macbook Air which is hardly a supercomputer and vscode runs perfectly fine on it.
"I raise elephants, but they are bred to be as small as possible."
"They're _either_ elephants, _or_ bred to be as small as possible."
Why do we have to make this complicated? The creator is using Electron, and within that given framework putting focus on RAM optimization. Moving on.
Emails have become much more than that. They can contain almost everything a webpage can.
Most browsers use a ton more ram than 300 MB.
In absolute terms it may be big. But for an electron app it’s probably not too bad.
If you mean this, it's written in Swift https://macos.telegram.org/
What OS are you using Telegram in?
2. Currently not supporting Mbox/Maildir but downloading emails directly from the server, however an import of this is on the todo list
3. Re: turn off conversation view: not at this time. Do you prefer not having it in a conversation view?
4. No POP3 yet
5. I think you can achieve this using folders/labels in Ivelope
Thanks for the positive encouragement!
Edit: formatting