News for hackers. Stuff that matters.
Re:I've spent the last two years building a new email client by SyneRyder on Wednesday May 02, 2018 @05:12AM (#16975199)
This looks pretty cool, I'm really pleased to see people writing new email clients, and you've clearly worked very hard on this!

I have a bunch of questions that I couldn't find out from the website (but are obscure enough that I shouldn't expect to):

* Is this a purely native app, or an Electron / Javascript app? Personally I'm only interested in native apps & Electron would be a deal breaker - but I'm weird, most people won't care.

* What format are you using for email archives? Mbox, Maildir? Can I import my Thunderbird / Postbox Mbox archives of 21 years of email?

* Can I turn off threaded & conversation views?

* Do you support POP3? (You only mention IMAP... I'm sure that would be fine, but I still have accounts configured via POP3.)

* Can I change priority of individual messages after they arrive? I sort my inbox by priority and then date-descending, not by date.

I'm a hardcore Postbox user and email is critical infrastructure for me, so I probably won't try it or switch anytime soon... but I'm always keeping an eye on powerful desktop email clients, in case I ever need to switch, or find something dependable that really blows away Postbox.

Well done! Looks very promising!

Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @05:23AM (#16975265)
1. It's an Electron app, but it is built to use as little RAM as possible, when I run it on my old Macbook Air, it consumes only around 300mb of RAM maximum, which is less than what Finder consumes, and I consider everything over this limit to be a bug.

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

Re:I've spent the last two years building a new email client by yani on Wednesday May 02, 2018 @05:30AM (#16975310)
300MB of ram sounds like a lot to me. What are you storing in memory that is that large? If I dont use the app for 1 hour will it stop using the memory?
Re:I've spent the last two years building a new email client by Lio on Wednesday May 02, 2018 @06:22AM (#16975571)
I'm sure that a client like Mutt would use much less but considering that many emails have embed HTML and would ideally use a modern web view to render correctly, how much overhead is there from from using Electron/chromium if you're going to load all of that anyway?

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?

Re:I've spent the last two years building a new email client by chrismorgan on Wednesday May 02, 2018 @06:37AM (#16975643)
For reference, when settled, Gmail in Firefox uses 200MB or a bit more, while FastMail uses around 10MB.

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.

Re:I've spent the last two years building a new email client by jsjohnst on Wednesday May 02, 2018 @08:40AM (#16976319)
> Gmail in Firefox uses 200MB or a bit more, while FastMail uses around 10MB.

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.

Re:I've spent the last two years building a new email client by chrismorgan on Wednesday May 02, 2018 @11:02AM (#16977525)
I sought only to compare Gmail with FastMail, to indicate that Gmail is a poor baseline for memory comparisons.
Re:I've spent the last two years building a new email client by jsjohnst on Wednesday May 02, 2018 @02:35PM (#16979891)
Fair point, I agree there!
Re:I've spent the last two years building a new email client by EGreg on Wednesday May 02, 2018 @10:21AM (#16977109)
How exactly will you cut the fat in Electron? What’s a hello world like?

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).

Re:I've spent the last two years building a new email client by chrismorgan on Wednesday May 02, 2018 @10:43AM (#16977320)
See my update to the comment. Its memory footprint is greater than I expected. I shan’t pursue it any further at present, I was mostly just curious to get an initial feel for it. Taking it (or something like it) to a polished product is something I’d like to do, but I’ve got other, much more important things to do on FastMail and Topicbox, and I don’t think anyone else in the company feels strongly about it, so it’s unlikely to ever actually happen.

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.

Re:I've spent the last two years building a new email client by deagle50 on Wednesday May 02, 2018 @12:45PM (#16978798)
Maybe you can help me understand the outcry over Electron memory usage, especially on HH. I can't remember the last time I ran out of memory on my laptop or desktop unintentionally. Seems to me battery life and jank should be main areas of focus. You can have a 2GB if you cut CPU usage and typing latency.
Re:I've spent the last two years building a new email client by 15charlimit on Wednesday May 02, 2018 @01:11PM (#16979030)
Just because you "can" use a bunch of memory without issues now doesn't mean you "should" not make any attempts to cut resource usage whenever possible.
Re:I've spent the last two years building a new email client by deagle50 on Wednesday May 02, 2018 @01:41PM (#16979352)
Of course you're right. But why does it seem like memory usage takes precedence over battery life and latency? I may be in the minority, but it seems to me a native app's key advantage over Electron is performance/watt and I don't see how reduced memory usage would help.
Re:I've spent the last two years building a new email client by khedoros1 on Wednesday May 02, 2018 @05:58PM (#16981513)
I've run out of memory a few times this week on my Linux VM at work, and also at home on the beater laptop I use in the living room. Those are both stuck at 4GB of RAM, though.

On my laptop with 16GB, it's certainly been at least a few months since I've done anything that made it hit swap.

Re:I've spent the last two years building a new email client by deagle50 on Wednesday May 02, 2018 @09:40PM (#16982698)
I said "unintentionally" as a hedge for corner cases like VMs where you are likely aware of the limits. I probably should have been more clear. I also prefer native apps, which is why I still mostly use Sublime over Code despite the latter's advantages. But it's because of speed and battery life, not memory consumption. If we're going to make a case for native apps, lets at least focus on the biggest pain points, as the proliferation of Electron indicates we're not making an impact.
Re:I've spent the last two years building a new email client by khedoros1 on Thursday May 03, 2018 @12:55PM (#16987619)
Battery life's something that I only rarely have to think about. All of my development has always been somewhere with convenient power. It irks me when the CPU's churning along on a process that should be near-idle, though.

> 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.

Re:I've spent the last two years building a new email client by lallysingh on Wednesday May 02, 2018 @07:21AM (#16975843)
That's it? My Gmail tabs used to take 2GB (the last time I checked, years ago).
Re:I've spent the last two years building a new email client by chrismorgan on Wednesday May 02, 2018 @07:56AM (#16976057)
Actually, that was just from just loading Gmail and letting it idle, a couple of weeks back, not actually using it. A year and a half ago, I recall it being more like 125MB, up towards 150MB as it was used. Gmail hasn’t really changed since then, but the Hangouts widget (which is pretty heavy!) might have, and the browser definitely has (I blame it for most of the increase). I haven’t actually used Gmail since around that time.

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.

Re:I've spent the last two years building a new email client by badsectoracula on Wednesday May 02, 2018 @09:01AM (#16976447)
> considering that many emails have embed HTML and would ideally use a modern web view to render correctly

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.

Re:I've spent the last two years building a new email client by letsgetphysITal on Wednesday May 02, 2018 @07:18AM (#16975831)
My Outlook (2016) client is using ~300MB right now while displaying a full HTML spam mail (taking one for the team, guys). I wouldn't say I'm a heavy user, but there's shared calendars and mailboxes, OneNote integration, task list etc.
Re:I've spent the last two years building a new email client by Jaruzel on Wednesday May 02, 2018 @08:17AM (#16976194)
Concur, my Outlook (2016/365) is currently using 250Mb. That's with 4 mailboxes open, and a heavy HTML email displayed in the reading pane.
Re:I've spent the last two years building a new email client by wilsonnb on Wednesday May 02, 2018 @09:17AM (#16976538)
Outlook is using 46MB for me at the moment. I don't have a particularly large inbox though.
Re:I've spent the last two years building a new email client by tallanvor on Wednesday May 02, 2018 @08:34AM (#16976289)
Outlook is using less than 220MB for me right now, and that's fairly standard. It seems to be fairly optimized.
Re:I've spent the last two years building a new email client by bildung on Wednesday May 02, 2018 @09:21AM (#16976570)
My Claws Mail currently uses 56M, multiple IMAP accounts configured, a few thousand mails, just visited all accounts before measuring. I disabled HTML display, though (most HTML is either spam or newsletter fluff in my experience). Claws is GTK2.
Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @05:38AM (#16975355)
Most of this comes from overhead in Chromium, which currently (the version used by Ivelope) suffers from a few bugs which increases memory usage. I think this will drastically go down as time progresses and new updates of Chromium becomes available
Re:I've spent the last two years building a new email client by wcarss on Wednesday May 02, 2018 @07:34AM (#16975927)
not intended to be a hostile ask here, but do you know any specific bugs to check out?

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.

Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @07:44AM (#16975979)
Specifically the image bug, as another commenter linked to: http://seenaburns.com/debugging-electron-memory-usage/
Re:I've spent the last two years building a new email client by opencl on Wednesday May 02, 2018 @10:35AM (#16977238)
Is this even considered a bug by the Chromium team (i.e. is there any indication of plans to fix it, or is this just the image cache working as intended)?

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.

Re:I've spent the last two years building a new email client by kookoopuffs on Wednesday May 02, 2018 @10:08AM (#16977001)
Why in this day and age are electron apps this big? What happened to memory management? Is this a faulty aspect of JS or electron itself?
Re:I've spent the last two years building a new email client by Lord_Zero on Wednesday May 02, 2018 @10:19AM (#16977103)
Electron is basically Google Chrome. High memory use has nothing to do with JS.

https://en.wikipedia.org/wiki/Electron_(software_framework)

https://en.wikipedia.org/wiki/Chromium_(web_browser)

Re:I've spent the last two years building a new email client by Kliment on Wednesday May 02, 2018 @05:39AM (#16975359)
That's just the base cost of using electron (along with the associated CPU usage). It's terrifying but you get that much usage even if you're not storing anything in memory.
Re:I've spent the last two years building a new email client by brandonwamboldt on Wednesday May 02, 2018 @06:10AM (#16975508)
Well that's just not accurate. With our Electron app, the main process consumes 40mb of RAM, with each window using 30mb of RAM, so if you have a windowed app, thats a minimum of under 70mb of RAM (results will differ, our app is quite large).
Re:I've spent the last two years building a new email client by Etheryte on Wednesday May 02, 2018 @06:28AM (#16975592)
Yeah, this is realistic. I wish people would stop perpetuating the myth that "That's just how Electron is". It's perfectly possible to write Electron apps that don't automatically hog half a gig of RAM.
Re:I've spent the last two years building a new email client by Kliment on Wednesday May 02, 2018 @06:47AM (#16975696)
That's news to me, and people who make electron stuff tell me they can't get it down below a few hundred mb of memory usage. Can you point me to some resources about reducing that?
Re:I've spent the last two years building a new email client by Siilwyn on Wednesday May 02, 2018 @07:21AM (#16975846)
I'm curious too! I found one interesting article about Electron eating memory with images: http://seenaburns.com/debugging-electron-memory-usage/
Re:I've spent the last two years building a new email client by rsynnott on Wednesday May 02, 2018 @11:20AM (#16977735)
Are there any examples of Electron apps that don't do that, though? I've never seen one that didn't like to eat at least a few hundred MB, and most of them seem at least somewhat leaky, too.
Re:I've spent the last two years building a new email client by purerandomness on Wednesday May 02, 2018 @07:07AM (#16975779)
How are you measuring the RAM usage?
Re:I've spent the last two years building a new email client by sametmax on Wednesday May 02, 2018 @07:18AM (#16975832)
Thunderbird takes 425mo of my ram right now.
Re:I've spent the last two years building a new email client by tluyben2 on Thursday May 03, 2018 @01:28AM (#16983549)
I switched from Thunderbird to Gmail because of that; it was quite bad on my laptop. It often started swapping requiring very long waits or a reboot to get back to work.
Re:I've spent the last two years building a new email client by discreditable on Wednesday May 02, 2018 @08:45AM (#16976338)
For comparison, my Thunderbird install with over 60k messages stored locally hits about 220MB.
Re:I've spent the last two years building a new email client by progx on Wednesday May 02, 2018 @08:09AM (#16976143)
Ask native thunderbird developers, why Thunderbird take 400 MB of RAM, only after start the programm.
Re:I've spent the last two years building a new email client by pjmlp on Wednesday May 02, 2018 @08:32AM (#16976280)
Because Thunderbird is not actually native, it uses Electron's precursor XUL.
Re:I've spent the last two years building a new email client by gervase on Wednesday May 02, 2018 @11:01AM (#16977512)
> Do you prefer not having it in a conversation view?

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.

Re:I've spent the last two years building a new email client by jchook on Wednesday May 02, 2018 @11:28AM (#16977843)
Awesome app man.

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.

Re:I've spent the last two years building a new email client by majewsky on Wednesday May 02, 2018 @02:13PM (#16979695)
> 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.)

Re:I've spent the last two years building a new email client by s73v3r_ on Wednesday May 02, 2018 @04:58PM (#16981109)
Those are all advantages for the developer. I don't see anything that the user gets for the cost.
Re:I've spent the last two years building a new email client by tluyben2 on Thursday May 03, 2018 @01:47AM (#16983608)
More features, faster. My gripe is that I pay 1000 euros for a laptop that will be for 50% consumed by 2 (sometimes even just Slack alone, don't worry) 'because it's convenient for the developer' created apps. The amount of money lost here is staggering ofcourse, but why would devs care as they are not on paying for that. I can totally understand it for a one person shop or an understaffed (underfunded) startup, but companies like Slack are just screwing their users here. Then again, if most of them don't mind that, who are we to complain; it seems to be where we are going. I began taking two laptops; a cheapo chromebook with chromeos to run slack, discord etc in the browser and another one to dev on. Works fine and I don't need to grind my teeth every time I look at top (there is no top as I just run chromeos for ease of use).
Re:I've spent the last two years building a new email client by stedaniels on Wednesday May 02, 2018 @05:59AM (#16975453)
I think SyneRyder means what format are you storing emails on disk? If a user uses your email client to download all their pop3 email, is it available in a nice format on disk for whatever reason (backups/file recovery/migration to another client)? Or is it locked up in a custom file format.
Re:I've spent the last two years building a new email client by SyneRyder on Wednesday May 02, 2018 @06:35AM (#16975628)
>* I think SyneRyder means what format are you storing emails on disk?*

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.

Re:I've spent the last two years building a new email client by sashk on Wednesday May 02, 2018 @08:24AM (#16976229)
Recent version of Postbox switched to the Maildir format, which is still, from what I've seen, not production ready in Thunderbird.
Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @06:06AM (#16975487)
Currently it is not a standard format so right now there is no easy import/export - however this is a feature that is coming.
Re:I've spent the last two years building a new email client by BeetleB on Wednesday May 02, 2018 @11:02AM (#16977523)
I still have nightmares about Outlook's non-standard format from 15 years ago.

What is the reason you do not store in a standard format?

Re:I've spent the last two years building a new email client by ryan-c on Wednesday May 02, 2018 @09:35AM (#16976690)
Consider Dovecot's mdbox maybe?
Re:I've spent the last two years building a new email client by on_and_off on Wednesday May 02, 2018 @10:22AM (#16977121)
> It's an Electron app, but it is built to use as little RAM as possible, when I run it on my old Macbook Air, it consumes only around 300mb of RAM maximum

I feel bad but you have already lost me there :/

Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @10:25AM (#16977151)
That is maximum, normal is around 130 - 170 mb
Re:I've spent the last two years building a new email client by ekianjo on Wednesday May 02, 2018 @10:37AM (#16977263)
I think the point is that it's better to have something using the native widgets of your OS if possible. It carries much less footprint and it integrates with your OS much more nicely in the end. Webapps running in Electron is just becoming too commonplace.
Re:I've spent the last two years building a new email client by RussianCow on Wednesday May 02, 2018 @12:43PM (#16978784)
That also means building a separate UI for every supported OS, which isn't usually feasible for a single developer.
Re:I've spent the last two years building a new email client by majewsky on Wednesday May 02, 2018 @02:31PM (#16979861)
Re:I've spent the last two years building a new email client by sincerely on Wednesday May 02, 2018 @03:21PM (#16980293)
Just an fyi, it looks like you need to include the www for the link to load.
Re:I've spent the last two years building a new email client by RussianCow on Wednesday May 02, 2018 @06:20PM (#16981659)
Qt also isn't truly native (it renders its own UI components) and shares many of Electron's drawbacks, so it's only marginally better (and means you have to learn an entirely new platform if you're already familiar with web dev).
Re:I've spent the last two years building a new email client by ekianjo on Thursday May 03, 2018 @07:53AM (#16985092)
> marginally better

Not in terms of resources (CPU/RAM). It's way better than Electron.

Re:I've spent the last two years building a new email client by s73v3r_ on Wednesday May 02, 2018 @05:06PM (#16981158)
I've done it.
Re:I've spent the last two years building a new email client by RussianCow on Wednesday May 02, 2018 @06:24PM (#16981693)
I didn't say it's impossible (I've also done it), but for something that's not a full-time job/project, it's a lot of extra work that could be avoided by simply using Electron, especially if you are already familiar with web development but don't have any experience with any of the native platforms.
Re:I've spent the last two years building a new email client by s73v3r_ on Wednesday May 02, 2018 @07:10PM (#16981952)
But the poster did say this was a full-time project.

And I don't believe that only having experience in web development is a good enough excuse for shoehorning web dev things everywhere else.

Re:I've spent the last two years building a new email client by RussianCow on Wednesday May 02, 2018 @10:16PM (#16982869)
You're right, I missed the OP saying that. But I still disagree: prior experience with a platform is a great reason for using it. Maybe not for a company with lots of resources, like Slack or Microsoft, but definitely for a small team or individual developer. Any time you would have spent learning a new development platform can instead be spent building new features!
Re:I've spent the last two years building a new email client by sp332 on Wednesday May 02, 2018 @10:50AM (#16977382)
How much RAM does your mail client use?
Re:I've spent the last two years building a new email client by BeetleB on Wednesday May 02, 2018 @10:59AM (#16977484)
I use notmuch with Emacs - so very little.

Before that I used mutt - also very little.

Re:I've spent the last two years building a new email client by sp332 on Wednesday May 02, 2018 @11:01AM (#16977521)
Does that support HTML email and images? If not, it seems like a different domain entirely. Other people in this thread have posted Thunderbird numbers and they're in the ballpark. After all, it is rendered in Gecko similarly to how ivelope is rendered in Electron.
Re:I've spent the last two years building a new email client by ams6110 on Wednesday May 02, 2018 @11:36AM (#16977946)
Not directly. You can configure w3m to display HTML email, and it does a nice job within the constraints of text mode. Most normal mail, even with tables, renders well. If you get something really crazy you can pipe the message to a graphical web browser to view.

Native Emacs in a GUI can also show inline images (but not when running in a terminal, obviously).

Re:I've spent the last two years building a new email client by hjek on Wednesday May 02, 2018 @11:47AM (#16978079)
Remote images in email is an anti-feature[0]. And if the images are attached to the email, why not just use an image viewer? Does your email client support video playback?

[0]: https://senglehardt.com/papers/pets18_email_tracking.pdf

Re:I've spent the last two years building a new email client by sp332 on Wednesday May 02, 2018 @12:35PM (#16978682)
That's fine, but there's no point comparing RAM usage between completely different apps like video players and email clients.
Re:I've spent the last two years building a new email client by jonnycomputer on Wednesday May 02, 2018 @01:19PM (#16979095)
Because sometimes discussion centers in and around the images, as in discussion of analysis figures.
Re:I've spent the last two years building a new email client by s_kilk on Wednesday May 02, 2018 @05:48AM (#16975403)
Given that it's an Electron app, is there a chance that we could get a Linux build at some point in the future?

Great work by the way!

Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @05:55AM (#16975437)
Yes, multiple people have requested a Linux version and it is coming in the future!
Re:I've spent the last two years building a new email client by herbst on Wednesday May 02, 2018 @07:28AM (#16975883)
> only around 300mb of RAM maximum

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?

Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @07:30AM (#16975903)
Nope, most is Chromium overhead and a bug that the Chromium team are working on. (300mb is maximum, when it's just running and doesn't run into any of the bugs it consumes around 170mb on my computer) I expect Chromium to use less and less memory as time progresses, so RAM will probably decrease in the future.
Re:I've spent the last two years building a new email client by sp332 on Wednesday May 02, 2018 @10:53AM (#16977429)
How much RAM does your current mail client use?
Re:I've spent the last two years building a new email client by herbst on Wednesday May 02, 2018 @11:30AM (#16977867)
Inbox seems to use about 200mb right now. However this is within Chrome and runs several additional plugins.

When I use mutt I doubt it goes over 20mb.

Re:I've spent the last two years building a new email client by pwg on Wednesday May 02, 2018 @12:16PM (#16978472)
28mb

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.

Re:I've spent the last two years building a new email client by dotancohen on Wednesday May 02, 2018 @08:49AM (#16976355)
Some more questions, as I don't see them addressed on the site:

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)

Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @08:53AM (#16976384)
1) No extension architecture right now. Do you have anything in mind you'd like to build?

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.

Re:I've spent the last two years building a new email client by dotancohen on Wednesday May 02, 2018 @08:58AM (#16976425)
> 1) No extension architecture right now. Do you have anything in mind you'd like to build?

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.

Re:I've spent the last two years building a new email client by WrtCdEvrydy on Wednesday May 02, 2018 @11:09AM (#16977618)
Re:I've spent the last two years building a new email client by maemilius on Wednesday May 02, 2018 @03:18PM (#16980266)
From what I can tell, Electrino is a dead project. Looks like someone picked up the idea and is making another called Quark (https://github.com/jscherer92/Quark) though.
Re:I've spent the last two years building a new email client by muszc-master on Wednesday May 02, 2018 @11:12AM (#16977655)
Sounds very interesting, although Ivelope interacts a lot with the OS, and a lot of the Electron API would need to be added.
Re:I've spent the last two years building a new email client by _o_ on Wednesday May 02, 2018 @09:26AM (#16976604)
Oh its electron :( Sorry not for me, please rather make a roundcube replacement out of it.
[dead]
Re:I've spent the last two years building a new email client by kristiandupont on Wednesday May 02, 2018 @08:53AM (#16976390)
>many people won't use them, mostly for the technical reasons

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.

Re:I've spent the last two years building a new email client by dotancohen on Wednesday May 02, 2018 @09:01AM (#16976449)
There is almost universal hatred of the Slack app in our client relations department, due to performace. All use Mac laptops or Windows desktops, none of them know the term "Electron".
Re:I've spent the last two years building a new email client by mmargerum on Wednesday May 02, 2018 @09:33AM (#16976678)
I wonder why people run slack stand-alone. I run it as a pinned tab in my browser and with browser notifications it works great. Very few issues running it this way and performance seems good.
Re:I've spent the last two years building a new email client by scott_s on Wednesday May 02, 2018 @10:07AM (#16976982)
I have Chrome users for browsing, personal email, work email and Slack. I had Slack in a separate Chrome window, in a pinned tab. I noticed that changing to my communications space was slow. By eliminating windows one-by-one, I discovered, the culprit was the Slack pinned tab. I tried the Slack standalone app instead, and that slowness is gone. I can't explain why, but the standalone native app may actually perform better. I think it's worth checking out.
Re:I've spent the last two years building a new email client by lkbm on Wednesday May 02, 2018 @10:25AM (#16977147)
I've gone back and forth between in-browser and stand-alone, but as my number of Slack teams grows, browser tabs get considerably less appealing. (I have five I monitor regularly and four more I don't care much about.)
Re:I've spent the last two years building a new email client by blowski on Wednesday May 02, 2018 @08:48AM (#16976352)
Can't you build something "to use as little RAM as possible, given that it's using Electron"?
[dead]
Re:I've spent the last two years building a new email client by justtopostthis3 on Wednesday May 02, 2018 @09:07AM (#16976487)
This conversation seems more analogous:

"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."

Re:I've spent the last two years building a new email client by dotancohen on Wednesday May 02, 2018 @09:19AM (#16976549)
I'll accept that! Thank you for the perspective.
Re:I've spent the last two years building a new email client by quakenul on Wednesday May 02, 2018 @09:09AM (#16976499)
That is a tough question but if presented to me in the context of this thread I would probably respond, that it is a poor analogy.

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.

Re:I've spent the last two years building a new email client by kittiepryde on Wednesday May 02, 2018 @09:10AM (#16976504)
Programs do a lot more than they used to. Even though they solve similar problems as their predecessors. 300MB is perfectly fine for a modern app when computer team is measured in GB.
Re:I've spent the last two years building a new email client by andruby on Wednesday May 02, 2018 @09:26AM (#16976609)
> For an application that deals with primarily with downloading, uploading, and displaying text.

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.

Re:I've spent the last two years building a new email client by d-sc on Wednesday May 02, 2018 @08:59AM (#16976433)
I call the F150 pickup I drive small. It is compared to the F350’s and semi that I’ve also driven.

In absolute terms it may be big. But for an electron app it’s probably not too bad.

Re:I've spent the last two years building a new email client by jahvo on Wednesday May 02, 2018 @08:56AM (#16976404)
Telegram is not an Electron app. It's a Qt app written in C++.
Re:I've spent the last two years building a new email client by tincholio on Wednesday May 02, 2018 @09:58AM (#16976894)
At least on Mac you can get the telegram app, or something called Telegram Desktop, which is Electron-based
Re:I've spent the last two years building a new email client by jahvo on Wednesday May 02, 2018 @10:01AM (#16976918)
If you mean this, it's written in C++ https://desktop.telegram.org/

If you mean this, it's written in Swift https://macos.telegram.org/

Re:I've spent the last two years building a new email client by gnastygnorc on Wednesday May 02, 2018 @08:48AM (#16976353)
Telegram is not an electron app. It's native C++ and QT
Re:I've spent the last two years building a new email client by opencl on Wednesday May 02, 2018 @09:22AM (#16976576)
The official telegram desktop client is Qt.
Re:I've spent the last two years building a new email client by arifmeticus on Wednesday May 02, 2018 @08:56AM (#16976408)
>FWIW I use the Telegram client which is an Electron app

What OS are you using Telegram in?

Re:I've spent the last two years building a new email client by dotancohen on Wednesday May 02, 2018 @08:59AM (#16976431)
CentOS 7.3
Re:I've spent the last two years building a new email client by callahad on Wednesday May 02, 2018 @09:10AM (#16976503)
> Electron would be a deal breaker

You say that like HTML emails don't exist. If the client has to embed a web view anyway...

Re:I've spent the last two years building a new email client by jasonkostempski on Wednesday May 02, 2018 @09:39AM (#16976720)
An small library for viewing static HTML is nothing compared to a virtual machine and dynamic rendering engine constantly causing unnecessarily high demand on memory, CPU and battery.
Re:I've spent the last two years building a new email client by Nadya on Wednesday May 02, 2018 @10:56AM (#16977466)
I'm an extreme niche, so I recognize that an email client that intends to be used by the general population would need it, but why would I even want to see HTML emails? Those are 105% of the time just marketing bullshit. Emails are either in plaintext with friends/families/clients/people or have a single link that I can copy/paste to verify an account on a website. As it stands, I never download images in my emails anyway. A few sites have tried serving the account verification code as an image and I just won't validate my account if that's the case.

Designed emails using HTML are used by marketing teams - not by people. I don't care to read emails from marketing teams "as intended to be viewed". Show me the email and let me read an email that's just a bunch of plaintext markup.

Re:I've spent the last two years building a new email client by darpa_escapee on Wednesday May 02, 2018 @09:56AM (#16976877)
My laptop has a limited amount of memory, CPU time and battery life.
Re:I've spent the last two years building a new email client by dentemple on Wednesday May 02, 2018 @10:42AM (#16977311)
So... you make it a point not to read html emails on it?
Re:I've spent the last two years building a new email client by jlgaddis on Wednesday May 02, 2018 @10:52AM (#16977416)
FWIW, I can read HTML e-mails just fine via mutt in an SSH session. One doesn't need Chrome or Firefox to read them.
Re:I've spent the last two years building a new email client by sp332 on Wednesday May 02, 2018 @10:55AM (#16977446)
Could you go into a little more detail about this setup?
Re:I've spent the last two years building a new email client by pwg on Wednesday May 02, 2018 @12:22PM (#16978527)
Re:I've spent the last two years building a new email client by boomlinde on Wednesday May 02, 2018 @11:56AM (#16978212)
Not GP, but there are browsers that can render and dump HTML to plain text, like Lynx. You can of course also run remote X programs, but that seems a bit clunky.
Re:I've spent the last two years building a new email client by orwin on Wednesday May 02, 2018 @05:37AM (#16975351)
You're not wrong on electron: this tech allow devs to be lazy and we all know that when we are allowed to be lazy, most of the time we are.

That said, electron can have a small fingerprint if the dev team is carefull/good enough, and is hte best option when your app have to be able to read HTML (and copy HTML formatted string). To me, an email client is a good way to use electron for an app.

Re:I've spent the last two years building a new email client by lallysingh on Wednesday May 02, 2018 @07:23AM (#16975856)
Re: lazy: some would call that get more stuff done faster and cheaper.
Re:I've spent the last two years building a new email client by dspillett on Wednesday May 02, 2018 @09:25AM (#16976597)
I prefer to use the word "efficient"!

Or for advanced situations "selectively efficient" - using something other than Electron for an app that is intended to be cross-platform because [insert-alternative-here] is smaller/faster/other may be an example of premature optimisation and using something else (especially where that involves learning something else) could mean trading off elsewhere.

Re:I've spent the last two years building a new email client by c-smile on Wednesday May 02, 2018 @04:59PM (#16981116)
"this tech allow devs to be lazy"

Not just Electron but Sciter too in that sense.

"electron can have a small fingerprint if the dev team is carefull/good enough"

Only to some extent. You will have two separate process (at least) in any case and so two sets of the same system libraries loaded in them, IPC between them, etc.

Main task of browser engine is to provide safe browsing experience. Presenting HTML is only second its task and so browser based UI will always be sub-optimal (at best).

Re:I've spent the last two years building a new email client by sametmax on Wednesday May 02, 2018 @07:36AM (#16975935)
And let's not forget that thunderbird ui itself is rendered using gecko.
Re:I've spent the last two years building a new email client by api on Wednesday May 02, 2018 @07:07AM (#16975781)
Every recent new app I can remember installing in the last year is Electron. Native UI is dead. It's more work and all it really buys you is the privilege of being tied forever to one platform or having to code your UI multiple times. The effort of writing your UI three times to use three different proprietary UIs would be better spent optimizing Electron for less resource use.

In the long term web will totally replace desktop UI. This could have been avoided if Apple, MS, and Linux would have agreed on a common desktop UI API 5-10 years ago but the ship sailed.

Re:I've spent the last two years building a new email client by sametmax on Wednesday May 02, 2018 @07:37AM (#16975942)
Or you use qt. Which is cross plateform, native, fast and open source.
Re:I've spent the last two years building a new email client by api on Wednesday May 02, 2018 @07:53AM (#16976033)
Ask yourself why more people don't use Qt:

(1) With web technologies you can write once and run everywhere including mobile to some extent. Writing a UI multiple times is monumentally expensive. Even huge companies don't like to do this, let alone indie efforts and startups. If Slack with its billion dollars doesn't do it what does that say?

(2) The ecosystem is far more active. The web is the largest open source ecosystem in history. There is code to do literally everything and an embarrassment of riches when it comes to libraries, frameworks, connectors, etc.

(3) Qt isn't that much less bloated than Electron, especially when you start styling it and get dynamic.

(4) Long build times mean that I have to wait a lot longer between dev/test. UI development tends to be a whole lot of iterative hack-test-hack-test. With web tech it's literally edit-refresh, which is much faster than edit-make-wait-launch.

(5) To make Qt look good you have to start styling and using its weird surprisingly web-like stylesheets, which takes you out of pure native mode and into a hybrid rendering mode. At that point I'm halfway to browser rendering.

(6) If you code UIs with web tech you also get the web, meaning your app could be run remotely in a browser as well as locally. This is the networked app promise of X11, Citrix, etc., and you get it for free.

Electron is popular because it delivers a ton of value in terms of cross-platform compatibility, reduced effort, rapid development, consistency, and ecosystem. Performance and memory use problems can be fixed.

I have been watching this project:

https://github.com/andlabs/libui

It's a genuinely lightweight wrapper that looks really promising. Trouble is everyone I show it to says "ugly" as their first comment. Everyone wants styled apps today with polished UIs and that takes you down a path that looks increasingly like CSS whether you like it or not. I also have this strong feeling that if I wrote with it I'd be rewriting in 5 years after desktop UIs are abandoned in favor of 100% web technology everywhere. Of course web UIs shift a lot too. Maybe the fate with UIs is to rewrite every 5 years no matter what.

Re:I've spent the last two years building a new email client by dingaling on Wednesday May 02, 2018 @10:56AM (#16977465)
> Writing a UI multiple times is monumentally expensive.

I'm confused by this statement. The point of Qt is that you write the UI once. Your controller back-end might have platform-related pragmas, but not the UI.

> If Slack with its billion dollars doesn't do it what does that say?

When you give programmers freedom to choose what makes life easy for them, end-user experience suffers?

I really think all dev companies should have a lab of 'consumer-grade' laptops with 4GB of RAM and 20Mbit/sec networking. And QC shouldn't let anything ship until it runs adequately on those. Particularly for a company like Slack that is targetting corporate users, the bulk of whom aren't software architects with 2017 MBPs ( who make the choice ) but small-cogs with a five-year-old Dell.

Re:I've spent the last two years building a new email client by api on Wednesday May 02, 2018 @11:06AM (#16977580)
You're right about my first statement. Was a bit of a thinko in that it's talking more about the conditions that lead people to choose Electron in general than responding to Qt specifically.

As others have pointed out in this thread: Qt is not really that much lighter than the web. It draws its own controls and even has css-like styling. I remember Qt apps being relatively slow on small machines... maybe not quite as slow as Electron but the latter could be tuned and improved and made competitive IMHO.

Your main point is valid, but you shouldn't be focusing your anger at Electron or at programmers for choosing it. You should be focusing your anger at desktop vendors for refusing to offer a better way to develop cross-platform apps in favor of an ultimately foot-blasting quest for platform lock-in. By refusing to play with each other desktop vendors have doomed all their platforms to obsolescence and abandonment.

Re:I've spent the last two years building a new email client by badsectoracula on Wednesday May 02, 2018 @09:13AM (#16976515)
> To make Qt look good you have to start styling and using its weird surprisingly web-like stylesheets, which takes you out of pure native mode and into a hybrid rendering mode.

Note that Qt does not have a pure native mode, it always draws its own controls - it just has a very good imitation of the native controls (especially on Windows).

Re:I've spent the last two years building a new email client by jerf on Wednesday May 02, 2018 @09:28AM (#16976618)
"Qt isn't that much less bloated than Electron, especially when you start styling it and get dynamic."

Given how many smart people are working to make the browser techs as efficient as possible, and the way that things like QT get "bloated" as soon as they start trying to do what browsers do, I've pretty much arrived at the idea that once you have images and an engine that can reflow text and load fonts and so on, and you want this rather complicated functionality to perform at a reasonable level, you're looking at browser levels of resource consumption no matter what you do.

I mean, if you start working the math on what it looks like to have a bitmap of the screen in memory (which you may not literally have as a single flat plane, but we've got character caches, images, and all sorts of other things that add up to that pretty quickly, if not surpass it entirely very quickly), on a high-resolution display, a bit of extra memory left over from packing those resources, the dynamic scripting language space, the other support modules, various other bits of uncompressed media even if it's just windowed... you've gotten into the hundreds of megabytes pretty easily there. Maybe you could keep this below 100MB with a lot of work, but in a world where a single uncompressed 4K full-color image/framebuffer is running you at least 24 MB (for RGB, 32MB for RGBA), 10-50MB just isn't going to be an option.

I've got an emacs here with a couple dozen source code buffers loaded and it's running at about 60MB resident. That's a mere 1/5th of the Slack usage that everyone is incensed about, and while emacs can do a lot of things, it's still taking a pretty substantial capabilities hit vs. Electron to get that small.

Yes, I know emacs can have a web browser in it and such. And if I use eww to load news.ycombinator.com, emacs resident usage just jumped 15MB for what is, frankly, a terrible rendering. It isn't even rendering my jerf.org terribly well, which in modern terms is basically built by rubbing two sticks together and sending the resulting sparks down the wire. That's what 15MB on top of the already-loaded emacs bought me.

Re:I've spent the last two years building a new email client by sametmax on Wednesday May 02, 2018 @10:36AM (#16977247)
I agree with that to some extend, but the fact is, except for some very specific cases like vscode, I not only don't need "styling and dynamic", but I don't want it to be.

My OS has UI semantics. I want most of the apps to work the same everywhere. Your app is not special. Stop reinventing a "visual identity". Give me congruency and features.

Re:I've spent the last two years building a new email client by jerf on Wednesday May 02, 2018 @03:51PM (#16980562)
"I agree with that to some extend, but the fact is, except for some very specific cases like vscode, I not only don't need "styling and dynamic", but I don't want it to be."

Actually, I'm not referring to things like colors or fonts. What I'm referring to is the fact that had the web-browser style layout algorithms not been already invented by web browsers, they would have been invented by the inexorable progression of the pressures and features in desktop toolkits by now. If the people using web toolkits want to be able to lay things out without having to laboriously bundle things into horizontal and vertical scaling groups and specify flexing ratios and all the other crappy layout mechanisms used in desktop toolkits since they first came out, but to use a simple (to use, not implement), powerful HTML-esque layout mechanism, you're going to pay for that on the resource consumption.

And the people writing these programs want that, and will use toolkits that offer that, and if that's bothering you, well, spend some time writing this stuff yourself and you'll stop being bothered, you'll happily spend 100MB of the user's RAM to make the pain end. As neat as it is in some ways, and as much as it has been made to sing and dance over the last 50 years, that style of layout really stinks to use.

Re:I've spent the last two years building a new email client by mwcampbell on Saturday May 05, 2018 @11:52AM (#17002304)
> you'll happily spend 100MB of the user's RAM to make the pain end.

And users, at least the savvy ones who hang out here, are saying that this RAM isn't ours to spend. Is there no way that we could spend more resources on our dev machines instead, at build time, to take a piece of code that was pleasant to write and convert it into something that's frugal with resources on the user's machine? C++ and Rust promise abstractions with zero runtime cost compared to the best that you could hand-code. I wonder if the same can be applied to multi-platform GUI toolkits, perhaps through compile-time metaprogramming.

Re:I've spent the last two years building a new email client by api on Wednesday May 02, 2018 @09:43AM (#16976755)
I totally agree.

Modern UIs with support for themes, complex interactions, multiple screen and pixel formats, and every language spoken by Homo Sapiens since Gobekli Tepi was built are large and complex. It's not avoidable. That is the problem domain. If you're doing less than that you'll regret it when more and more users start requesting features you don't have or complaining that your product doesn't look right on X or with X language/font/etc. That's my problem with all these ultralight immediate mode UI libs like nuklear. It's like going back to MS-DOS or CP/M and saying "wow that's simple and fast!" Yeah but it lacks a lot of stuff you will need.

The web's rendering layer isn't perfect but it's better than many alternatives and isn't going anywhere, so putting a lot of effort into making it more efficient and robust is very logical.

Re:I've spent the last two years building a new email client by mwcampbell on Friday May 04, 2018 @10:55AM (#16994996)
> Modern UIs with support for themes, complex interactions, [...]

And don't forget accessibility. That's the part that makes me want to scream whenever I see a new lightweight UI toolkit on HN.

Re:I've spent the last two years building a new email client by mwcampbell on Friday May 04, 2018 @11:06AM (#16995097)
> Trouble is everyone I show [libui] to says "ugly" as their first comment. Everyone wants styled apps today with polished UIs

I don't think I'll ever understand this. What about consistency between apps? Sticking to the OS's native widgets and style will get you that. Do people really like it when each app has its own look?

Of course, I'm no judge of aesthetics. Being visually impaired, my idea of a perfect UI is something with high contrast and large text.

Re:I've spent the last two years building a new email client by imtringued on Wednesday May 02, 2018 @10:53AM (#16977431)
Nr. 1 implies that they (or their users) don't care about efficiency. It doesn't tell us anything about native cross platform development being expensive.
Re:I've spent the last two years building a new email client by khedoros1 on Wednesday May 02, 2018 @06:49PM (#16981839)
> Every recent new app I can remember installing in the last year is Electron. Native UI is dead.

In terms of Electron, I have installed: Slack and VS Code (although I later uninstalled VS Code, and will have to put Slack on a machine with more memory than the VM it's in now).

I can usually spare the memory, at least on my non-crap machines, but I haven't really had the need to.

Re:I've spent the last two years building a new email client by gsich on Wednesday May 02, 2018 @07:23AM (#16975857)
One could have used e.g Qt.
Re:I've spent the last two years building a new email client by LandR on Wednesday May 02, 2018 @10:00AM (#16976914)
> Electron would be a deal breaker - but I'm weird

Guess I'm weird too.