Hacker News new | past | comments | ask | show | jobs | submit login
I've spent the last two years building a new email client (ivelope.com)
874 points by muszc-master on May 2, 2018 | hide | past | favorite | 593 comments



I put my name on the waitlist, but instantly lost interest and confidence by: “Jump forward 5 steps in the line for every person you invite and get beta access sooner.”

Why? If the product is that good I’ll evangelize it. This is a desktop application, so I don’t see a big boost from a network effect. All this does makes me wonder if the product is more about building hype than value


You are not alone in this attitude, so don't take this personally, but I'm going to reply to you because you're the top comment. This is an incredibly destructive point of view. Promotion is essential to any software project, even open source, and in the vast majority of cases, word of mouth is not enough. This is an ethical, up-front, straightforward ask that costs you and anyone you might contact very little and is optional in any case. He's a solo developer. Cut him some slack.


But what am I endorsing? I haven't tried the product myself yet. It's not unethical, but it's also simply not something I'm prepared to do - I will not recommend something to anyone without having been able to evaluate it myself first.


This.

In a world where publishing is essentially free, reputation is an extremely valuable commodity. The ask here is not trivial.


  reputation is an extremely valuable commodity
But how does pre-use endorsement have any actual value toward a positive reputation? Did the definition of "reputation" change when I wasn't watching?


Whenever anyone makes a recommendation you have to ask yourself: is this person making this recommendation because they have actually investigated the thing they are recommending and found it to have merit, or are they doing it simply because they are getting some personal benefit from making the recommendation. I hope I don't have to explain why a recommendation has much more value in the former case than the latter.

This may not matter much if the thing you're recommending is an email client. But it matters a lot if the thing you're recommending is, say, an investment in a startup company. It also matters a lot if you're, say, Amazon or Yelp or TripAdvisor and a big part of your stock in trade is an enormous volume of product recommendations.


Yes, it is trivial. You have a warped perspective of importance if you think giving the nod to a new mail app is some holy thing.

I tell my friends about new apps, startups, and projects all the time. None of them think I'm staking my reputation when I shitpost about some new thing in Slack.


I don't think the parent is claiming its a holy thing. But I certainly feel the same way.

My reputation is worth more to me, than trying to get higher up in a queue to a product i haven't tried. I don't share things with people lightly, and there are clearly a bunch of us out there.

Any certainly, nobody is advocating that our view of the world is the correct one, just that we hold that view.


This is an awesome debate and one of the reasons I love HN


We are different. If I recommend a piece of software to someone these days, it means it's truly exceptional and they should really check it out.

Apart from that, the e-mail form doesn't let me control what I'm sending.


Recommending a product you haven't reviewed is a form of lying. Some of us value our integrity.


Isn’t this true of all advertising, except in the rare cases where the publisher only accepts ads for products they endorsed?

How can we ever expect a reliable, non-garbage-dominate internet when it is funded by perverse incentives?


The distinction is that if I see a billboard (or magazine ad, or TV commercial) advertising a product I don't think that I have a relationship with the billboard and they know me pretty well and have my best interests at heart... so I don't think that if this particular billboard that knows me so well is promoting a product to me then it must be a pretty good product for me (especially because this billboard doesn't usually go out of their way to recommend products to me).

But if a friend of mine recommends a product to me, well, I do think all of those things.


Literally, nobody said to do that. Good lord, are you aware of nuance? You can make people aware of something that looks promising, without lying.


> You have a warped perspective of importance if you think giving the nod to a new mail app is some holy thing.

You're taking a needlessly confrontational stance here with insulting language, and people are responding to that.


and yet to make this comment you do it from an account created just for this purpose... why? to protect your reputation?


It's almost as if context matters


But you're not giving the nod to it -- you don't even know yet if it's any good or not -- you're only telling them about it because you've got something to gain yourself from doing so.


This is the essence of the crap filled internet. Everyone makes these local trade offs and before you know it we all lose. We are prisoners of the dilemma.


Yeah! Now you've got it! You're just telling people about something. It's not a big deal.


Spam is also "just telling people about something".

Imagine what the world would be like if everyone had the same attitude towards other people's attention and time as you do.

I'm sure this behaviour doesn't seem like a big deal to you because relatively few people are so inconsiderate.


> Yes, it is trivial.

Then why are you posting anonymously?


Then don’t refer anyone.

Or maybe only send to your friends who a new email client would interest?

Is “hey, saw this on HN, this looks interesting” really going to hurt your reputation?

He’s a dev trying to market, that’s all.


I was going to say this.

It's totally optional to invite more people, so if it goes against your ethical views, just don't.


Yeah, but by engaging in this behavior, the dev has convinced me this whole thing is click spam, so I’m done evaluating it before I even downloaded it.


Sure, put my reputation behind something I have never tried. That makes sense.

It's actually dangerous and unethical TO put my name behind this untested product. It's not open source, and I'm being asked to put my seal of trust and approval on their project. That's a hard no.


So don’t? The dev isn’t forcing you to give five referrals to sign up.


"Incredibly destructive"

Incredibly hyperbolic


Extremely redundant and reductive


Spam your friends and sites to jump forward in the line!


I agree with the premise, but please, do it after I tried it, not before. Otherwise it might as well be a smart e-mail harvesting thing. How do you know these days?


Top secret product built in stealth mode rarely achieves success.

Where are the boring products without dumb marketing techniques to generate hype, with actual things to show other than a waiting list?


It's simply a blocker to adoption. What's dropoff rate from people who land on it to people who actually go through with this request?


Well, you don't have to invite anyone to join the waiting list, it is totally optional.


I dislike tricks like this too, especially because in the end you're still going to get access to it. If a product is good enough, as you said, then I'll tell everyone about it. I think technical or non-business people see this kind of trick and perhaps don't think of the deeper consequences of it - it's not quite a dark pattern, though it feels manipulative.


I'm sorry if it came across as manipulative. One of the reasons for having it like this is also so it can give me a metric on who in the waiting list are most interested in the program. And of course also to offer an incentive to share it.


That is not a good metric. There's no way I would take part in that even if I were interested. It's just a big turn off.


Your first sentence isn't supported by your second and third. It is incredibly common to track not just interest but level of interest -- and lots of companies find it a valuable metric for marshalling their resources. Is this perhaps not the best way to get that metric? Now that can be a helpful question to ask and a good thing for this dev to think about, rather than outright dismissing the attempt.


I'm more just saying that I don't think people doing/not doing that action is a good indication of their interest level. My interest level could be an 8 out of 10, but there's no way I'm pestering my friends about it.


A different option I'd suggest that will likely provide higher engagement/response rate is putting some kind of a 1-to-5 star or 1-to-10 ranking - something quick for the user to click (or ignore) - simply asking them "How interested or excited are you about this product?"

Re: Incentive to share it - Just build a good to amazing product - which the comments and upvotes you have on HN are already significant proof of - and you'll get higher adoption in the long run with exponential growth, without adding friction of little tricks like this which will be relatively inconsequential in the long run, other than perhaps causing friction with early adopters who will get turned off by them.


That's a good idea, and in hindsight, you and the other commenters disliking the wording are correct. I just haven't received this feedback on the wording before, will change it!


An interesting question might be, what other ways could you allow people in the queue to jump up in position, without requiring them to share with others?

Maybe a quick survey with questions like, - what email client do you use now? - what is your favorite/least favorite feature of said client? - how often do you check your email? etc


I'm extremely interested.. Me sharing it with other people is a poor way of measuring my enthusiasm.. I'm not going to share it until I've tried it, so that I can vouch for its quality.


Noted. It was a poor choice of words / trick on my part it seems.


Don’t call it a trick. It isn’t a trick. It is a marketing ploy.


Trick is a synonym for trick.


Ahhh. Trick is a synonym for ploy.


I'd advise you to reword it as "Want to join as a beta user? Share".

Frame it as a reward not a punishment.


What deeper consequences are those?


A portion of people find that kind of tactic/trick to be manipulative, cause discomfort, which will add friction to adoption - why do that to anyone who might become an early adopter when you can avoid it? In another reply I go in a little more detail - https://news.ycombinator.com/item?id=16978849


I think that that one email app that got acquired by dropbox before even launching did this and I think people are just copying it.


Yeah, Mailbox app used this prior to it's Dropbox acquisition. Mailbox is now a dead product. RIP.


Why would Dropbox (note: not remotely an email service) acquire Mailbox and then kill it?


They paid a pretty penny too, $100 million to acquire Mailbox. As per the article from Wired (https://www.wired.com/2015/12/dropbox-kills-carousel-and-mai...) they said:

Although Mailbox could presumably fit into that strategy, Dropbox is instead focusing on its new Google Docs-style document editing and collaboration service Paper, which may gain some of the functionality of Mailbox. "As we deepened our focus on collaboration, we realized there’s only so much an email app can do to fundamentally fix email," a blog post credited to "the Mailbox team" reads. "We’ve come to believe that the best way for us to improve people’s productivity going forward is to streamline the workflows that generate so much email in the first place."


Acquihire.


This answer makes the most sense, but is still sad


They probably saw something in their software to strip for Dropbox.


> Jump forward 5 steps in the line for every person you invite and get beta access sooner.

So what you're saying is that Viktor Hn just shot to the front of the line? Well played, Viktor.

Edit: Actually, based on the invite code, it's likely a specific code for HN. The Developer's name appears to be Viktor Jansson, I just assumed Hn was a last name. :)


I find it crazy that everyone is harping on Electron instead of the cool features that this clearly has that most clients do not. Demo looked pretty polished dude. Don't let the typical HN crowd rain on your parade. The fact that you posted an actual product out to the public is more than most can say.

Also: If you can't spare Max 300MB ram and you are complaining on HN wtf computer do you use?


My compute resources are not an all-you-can-eat buffet. I'm sick of inconsiderate developers writing software in wasteful frameworks that waste my electricity and time.

You can make pretty x-platform apps in JavaFX, QT Quick, GTK, hell even Lazarus, and they don't eat CPU and memory like Electron does.

It is a shame that nearly every app released in the latter half of this decade is just wasteful Electron garbage. Don't forget your 300+mb needs to sit along side Slack's 300mb, Discord's 300mb, and so on... fuck even my Crashplan Backup client eats up three processes and another 300mb. It's inconsiderate as hell.


I would normally agree with you but I can actually see the point of Electron for email because you'd need a HTML renderer anyway to display emails (assuming you want the ability to view HTML emails, if not then you're better off with a console client and save yourself even more RAM :p)

Plus Gmail and a few others big names in webmail require a HTTP client for authentication if you want to use their proprietary sync (granted there's also POP3 and IMAP. But while IMAP is good in a number of ways it's still far from perfect).


What does rendering HTML or needing a HTTP client have to do with Electron?

As far as I know, every single usable language comes with a HTTP client, and every single GUI framework has a "WebView" control or equivalent.


WebView's are typically just WebKit / Blink / Trident / whatever embedded anyway. So if you're going to embed Blink then you've already lost any significant memory savings you'd hope to make by avoiding Electron in the first place. Thus you might as well write the whole thing in Blink / Electron from the outset as that will also give you massive developer productivity gains (which it will - such is the sad state of desktop application development these days).

As for the HTTP client point; you can use a simple HTTP API (libcurl or whatever) to perform the webmail authentication but honestly you're in for a whole world of pain because it's really more than just a HTTP call. Ideally you'd want another webview for that as well. Oh how all those individual webviews are going to add significantly to your memory usage. You might as well consolidate them all into one...let's call that new WebView "Electron" shall we ;)


I'm not grandparent but I tend to agree that it's NoBigDeal(TM). I'm no electron apologist but I don't understand why using electron is considered "inconsiderate". It seems like the developer(s) used the platform that they felt was best for this app. If the platform's issues overshadow the product's value, then that's a poor choice and the market will react by not using it.

Is it inconsiderate for Ford to make a larger SUV because your garage doesn't have unlimited square footage and you only want to buy so much gas? Of course not. Why is this any different? You can decide not to buy the SUV just like you can decide not to download this application.


> I don't understand why using electron is considered "inconsiderate".

Because I chose my OS carefully and found that I like the way its native controls work. It has a number of features missing from other OSes and I want to use apps that integrate naturally with it. I have yet to find an electron app (or web app) that is 1/10th as good as a native app at fulfilling that desire. Electron apps feel like generic imitations of native apps. Yeah, they work, but everything is just off. Also, it comes from Google so I can only assume it's doing some sort of tracking of me and/or my machine resources. No thank you.

> Is it inconsiderate for Ford to make a larger SUV

It depends on which dimension they extend it and by how much. If they make it wider to where it doesn't fit in a lane on a normal road, then hell yes it's inconsiderate. That's essentially what electron does.


I'm an developer who's been using electron since it came out. At it's core electron is just a packaged NodeJS instance with a layer to access the OS API. The chrome as a GUI part does not have to be used. This makes electron a great way to distribute NodeJS apps. Instead of getting your users to install NodeJS and use the command line, you can give them an electron version of the app that works out of the box.

If you stick to using the GUI part minimally, it's easy to build very light weight applications with electron. I've been building my own music streaming server with electron and its gotten some traction since it's easier to install. The GUI layer is only used for editing config options, so the app typically runs with under 50mb of memory consumption: https://github.com/IrosTheBeggar/mStream/releases

If used smartly, electron is a powerful tool for developing desktop apps quickly. However thanks to modern frontend dev practices, it's easy to build a bloated pile of crap.


In the US, a Ford XL SUV will get killed by the DOT if it does fit in standard lane sizes, among other considerations. I am sure this is why there comparatively few brands of automobiles here

There is no such governing body for Electron, save for the nebulous "market"; nobody with any authority is forcing them (GitHub et al) to fix their shit or GTFO


> Also, it comes from Google so I can only assume it's doing some sort of tracking of me and/or my machine resources. No thank you.

Electron was developed by GitHub for their Atom editor, actually.


The way I see it, user's resources (and their experience related to these factors) aren't part of the calculus that goes into how most companies choose their platforms. To be fair, things have always been this way -- people have been writing good-but-bloated software in shitty frameworks since forever -- but I can't recall a time that one framework so bloated is so heavily in vogue.

(edit: Flash, maybe? Though people mostly didn't try to write too many full apps in it. And Flash projects could be fairly CPU-efficient if effort was put into it, but way less effort than, say, MS with VS Code)


I'm fortunate enough to work for a company that sees being thrifty with bandwidth and processing as very important.

We have regular audits to find ways to make things lighter/faster, and therefore better. Occasionally "flashier" mandates from on high override those considerations, but so far it's been specific and rare.

It's probably because our target audience isn't developers.


Funny, following that logic one would think that developers would be the most picky about performance...


Old developers. Seasoned developers. Developers who know what they're doing.

But the devs coming out of schools today (and half of HN) believe it's OK to build a skyscraper by stacking frameworks one upon the other.


I agree with you that efficient resource usage is pretty low on the priority list for a lot of development these days. I wish it wasn't too but that's a different discussion.

Electron being in vogue does definitely compound this issue but the benefits from using it (e.g. cross OS development on a familiar platform & language many devs already know) seem to outweigh the resource problem.


That's because the devs are not the ones to face the resource problem.


There are many devs that know regular desktop development as well; Electron lets the project manager hire cheaper and more expendable web devs, or the ability to pile the job on their existing web devs, for their otherwise expensive desktop work.

Do any major code bootcamps teach C#, C++, or Java? Or is it all just webtech?


I wrote a tiny app in flash / AS3 back in the day, a CAD floorplan viewer in a few hundred KB, including baked-in artwork and font. CPU and memory use was quite low. I never considered flash to be bloated or slow. The way most people used it made it bloated and slow, with heavy software-based vector animation, tons of video, and flex. Flex was very developer-friendly but also quite bloated, so I never used it.

I wonder if electron is a bit of the same deal, with the recommended way of using it optimizing for developer efficiency over resource efficiency.


I don't feel the developer used what they felt was best for this app. I feel they used what was best for them.


Assuming the best platform for an app was even something that you could objectively determine, why would you expect a solo developer to write an app in a platform that isn't the best for them?


To write something that's best for the customer, of course. The goal of development shouldn't be to build something that's easy for the developer but suboptimal for the customer.


This isn't open source, and the implication is that they plan on selling it. If so, then what's best for the customer should be paramount.


300mb? You're lucky. Slack is taking up 763mb for me right now, and it's not uncommon to see it cross the 1GB threshold.


God forbid someone spend thousands of hours building a free app in the tech stack they are familiar/productive with...how inconsiderate!


If their tech stack isn't appropriate for the job, then they shouldn't be using it for. We don't have people writing software for space probes in Python.


Yes, but:

- we're not talking about space probes, - this is just one dev who thought "I want to write an email client" and make a tech choice based on his/her own proficiency with that stack and his/her project constraints (time, cost, quality, scope).

It seems unfair to rant so much about it. If it's feature full and good and perf becomes an issue, consider it an MVP and a stack change is doable. If the thing blows, trash the MVP.

Personally I'm far more worried about the first noted limitation about email forwarding with attachments not being available. I'd have wanted that before most of the showcased features, none of which I find particularly interesting. But I applaud the effort and the Polish, and the approach to build the tool that you want/need when. You can't find one.

(Second worry would be: if it's not open source, please make so.)


> if it's not open source, please make so

+1


But we do have people writing some of the most used email clients in the world using HTML and Javascript, so that's hardly a valid criticism in this case.

https://emailclientmarketshare.com/


Apple iPhone, Apple iPad, Outlook, Samsung Mail, and Google Android, together making up well over 70% of that list, are all native clients. Plus, the clients that aren't native are all web-browser based.


So 30% of marketshare belongs to clients built on the browser technologies of HTML and Javascript, the same technologies you claim are "inappropriate" for the new client that we're discussing.


But if NASA let startup hackers write their code, we would be!


As if all work, and all effort, performed anywhere, is inherently noble and good?

Do you praise the builder of that Brazilian skyscraper that caught fire and collapse for the thousands of hours that went into its construction?


I really don't think the problem is Electron, or even JavaScript.

I think the problem is Chrome, which the Electron runtime requires. Each separate Electron app has its own copy of Chromium in memory. (What happened to shared libs?)

I see two ways you can help:

(1) you can try to get memory-usage-reducing fixes into Chromium, or,

(2) you can build an Electron-compatible runtime that uses less memory (maybe by transpiling it into code that runs on a native toolkit, and not having a static copy of that runtime per-app).


Someone posted a link to a new framework called Proton Native... that's a great step in the right direction


Pretty harsh lol. If you don't like electron apps then don't run them. It's hard to describe the actions of developers who use those frameworks as "inconsiderate" when they are a) providing the fruit of their labors for free; and b) not shoving it down your throat.


Electron is becoming more difficult to avoid


Exactly. Can't wait for my boss's reaction when I tell him I'm leaving Slack Enterprise.


> If you don't like electron apps then don't run them.

Done.


The way I see it, without the comfort of using Electron, many apps would simply not exist, because nobody would invest the considerably larger) time and effort.

So it's not electron vs native, it's electron vs nothing.


Given the choice I'll take the "nothing" option. Electron is gaining momentum and things that would have been written in a reasonable native framework are going to get sucked into it's ecosystem and we're all going to be worse off.


While I somewhat agree, no one is forcing you to use this software and this holier than thou attitude is not constructive.

You're free to use gnus, notmuch, mu4e, whatever million other variants if you're so concerned about your "precious" resources. This electron app that's been built has some neat features that a lot of people might find useful, like that search seems pretty cool.


I think you are taking developers' choice in framework a bit too personally.


And I think most users are far too tolerant of bad decisionmaking


Respectfully, losing a single potential user is not indicative of "bad decisionmaking". It may very well have been an excellent decision, particularly if using Electron allowed them to support macOS and Windows out the door - thereby expanding their target audience significantly.

I get why you don't like Electron apps. I share your position in that. I would expect that if Ivelope grows quickly enough to justify it, time will be spent on improving resource utilization. That could be through scrapping Electron or through optimizing within it - but either way, at this stage "time to market" and "speed of iteration" are much more important than resource utilization.


> Respectfully, losing a single potential user is not indicative of "bad decisionmaking"

It's not just one user that they've lost…


They aren't tolerant at all to decisions they think are bad, they are just tolerant to ones that you think are bad.


So you're calling me not a potential user because I don't like the idea of something using 15% of my PCs memory, best case scenario.


Get over yourself. I run multiple electron apps all day long without issue.

> You can make pretty x-platform apps in JavaFX, QT Quick, GTK, hell even Lazarus, and they don't eat CPU and memory like Electron does.

lol, if those are your idea of pretty... The reason Electron is popular is because those frameworks are, and have always been, garbage for garbage software.


Half of Hackernews is discussion about six figure tech salaries, the other half is complaints about 300mb (aka ~$2) ram being to expensive for an app.

https://www.anandtech.com/show/9864/price-of-ddr4-memory-dro...


Yup, but we're all running these apps on laptops, which have a fixed amount of RAM that is sometimes impossible to increase (looking at you, Apple)


> Half of Hackernews is discussion about six figure tech salaries, the other half is complaints about 300mb (aka ~$2) ram being to expensive for an app.

Slashdot got like this eventually. Slashdot was tech site full of luddites complaining about anything new. Worse, slashdot stopped becoming relevant. When the top comment on an article about increased hard drive space was "why does all this stuff take so much space? bloat!! lazy developers!!!".... it's pretty lame.

300mb of ram is nothing. Your OS will swap the software out when you aren't using it and it will be no big deal. People need to stop micromanaging their computer and go do more productive things with their time....


> People need to stop micromanaging their computer

You're so wrong. This hogging literally causes micromanagement. I have to start closing browser tabs and maybe at some point my IDE or a few open files so that just Slack or Discord or some other piece of horrendously bloated software could hog up another half a gigabyte of RAM. When Eight gigabytes stop being enough because of some chat applications it's not okay. Calling people that think software can actually use resources meaningfully "luddites" is counterproductive and damaging to the entire PC ecosystem, RAM and disk space are limited resources on most PCs and people do not want and should not have to spend more just to run a few chat applications.


> Your OS will swap the software out when you aren't using it

Wrong, since Electron apps NEVER sit still.


There are, in fact, people who are not SV software developers.


and what about people who use electron apps that aren't silicon valley programmers?


They can't properly voice their complaints because they don't know why their software is terrible; just that it is terrible.


This is from 2015. RAM prices remain artificially high.


What if all your RAM slots are taken, or your laptop cannot upgrade RAM at all?


To be fair, RAM is much more expensive to upgrade on MacBooks and other premium laptops.


I see where you are coming from. My main work laptop has 24GB (recently refreshed; the previous one had 16GB), so I can trivially spare 300MB, if I want. That said ... I work on open source Linux virtualization (KVM-based), and I fiercely guard my laptop's memory. Why? Allow me to tell my "corner case" scenario.

I have a couple of development virtual machines (VMs), and build containers running on my laptop. They help me with a range of tasks (some are memory intensive). Further, I configure nested virtualization, which lets me setup two level-1 guests (A and B), and inturn run a level-2 guest (C) in either of them. Now I can test live migration of VM C between A and B. So I really try my best to stay away from memory-hogging applications.

That's one of the reasons why 4-ish years ago I ditched Thunderbird, which was hogging memory, and switched to the venerable mutt e-mail client. (Also ditched HexChat for irssi.) FWIW, switching to mutt was one of the best decisions I made for my productivity -- I spend a lot of time wrangling high-volume technical mailing lists; it's unalloyed joy to use mutt on a daily basis (especially if you deal with e-mail based patch workflow).

Granted, it might be a niche scenario. I just wanted to call out that there are damn good reasons to conserve memory.


Have you considered getting a dedicated server for this !?


MS Outlook, the heavyweight in the ring with every conceivable feature, has been running on my machine for days and is currently using 168MB.


every conceivable feature, a UI that leaves me with no idea how to use any of them.


I have no problems with the UI. Then again, I've been using versions for a decade.


It's not about WTF computer do you use, it's about being wasteful. I've been using Outlook and Skype for Business on my machine all day and they're using less than 160MB together.

Wastefulness is not cool.


What kind of computer an I using? I'm using a work computer that needs RAM for the actual work I do. If one auxiliary program used 300MB that would not be a big deal. But we're talking about electron MVP after electron MVP after electron MVP endlessly. Memory hogging electron MVP's are being released at 100x the speed of my computer's RAM growth. I bought a high RAM computer because I already need it for work, not because I want to fill it with Electron MVPs.


Thanks for your feedback!


For this, for Slack, for VS Code, for half a dozen other Electron apps because devs simply are not willing to take the time and effort to learn other languages.


I don't think this puts enough emphasis on the fact that it is a local client and not a web service. I see some people here griping about Electron, but the privacy implications of being a local app are way more important than the performance of the framework used.


Seems to be a proprietary application so app privacy went out the window already.


Privacy is a spectrum. You can choose to be at one end of it, but not everyone shares your opinion. As a local app your data has a different legal status, and you actually have a lot of control over the execution compared to a web service. For instance, with outgoing firewall rules you could ensure that this is only talking to your email server.


It's still better than it would be if it was a normal web app hosted on his server.

Or, at least, it has the potential to be better.


You can audit the code of every Electron app, so why are you acting like it's full of spyware that you'll never be able to have privacy with?


Ever heard of minimized JavaScript[0]?

[0]: https://github.com/google/closure-compiler


Minified js isn't particularly hard to reverse engineer compared to tools that are geared towards actual obfuscation, and regardless, you don't even need to look at the code if all you care about is privacy. A look at the dev console's network tab should tell you all you need to know.


I've done obfuscated Javascript on a CTF. Only a few hundred lines and I can tell you, it's way easier to just write it new from scratch, especially if you have a product that you like and can just copy.


I’ve reversed and broken real-life products written in JS, Java, WebAssembly and native code.

Minified JS and obfuscated Java (DexGuard or ProGuard) are almost identical in complexity, you can restore the actual datatypes still, and you can even restore the rough outlines of where control structures were.

Obfuscated WebAssembly, NaCl or native code is much worse to work with, and often data structures and control structures are gone entirely.


I'd be very interested about your findings decompiling wasm. Do you have a blog, by chance?


From parent's HN profile:

Janne Koschinski, CompSci student. https://github.com/justJanne

Current maintainer of QuasselDroid https://quasseldroid.info/ https://github.com/sandsmark/QuasselDroid


I don’t maintain a blog currently, sorry. And if I had one I doubt I’d be able to write interesting articles about this topic.

Generally I share such info on IRC, and then it gets just forgotten over time.


I agree with you. The discussion has somewhat de-railed off-topic into a discussion about Electron. While that is an interesting discussion, it is pretty off-topic.


Is it off topic though? This is HN after all.


My partner actually has the opposite pain-point:

She wants an e-mail client that stores attachments remotely, only downloading them as requested by by the client. Is there an e-mail service that does things this way?


Apple Mail has this as a setting, works with any IMAP provider.


This is what Ivelope is currently doing :) However there will be a setting for people who want to download all attachments as well.


Can't Thunderbird do that? I'd imagine most IMAP clients do this.


That’s a setting in outlook


Compared to web-based clients. But the best email client (MailMate) is already local.


Thanks for your interest in local email clients, more choice there is welcome!

In the description it is said one can file email with a key, by associating folders to keys. Keyboard operation is very important to me. However direct key/folder association doesn't scale to a large number of folders. Have you considered a feature like the "Nostalgy" extension for Thunderbird? [1]

With Nostalgy one type "s" to file/save an email, then a string which is matched to folder names. It's a bit like helm for emacs (except it's exact match, space is not interpreted as an "AND" like with helm). The commands are go/save/copy, and then string match. This scales very well. That could be an advanced feature, as for beginners the direct key/folder association is simpler. But I guess you will target advanced users too, and for them it may be an important feature.

[1] https://addons.mozilla.org/en-US/thunderbird/addon/nostalgy/


Claws mail had this by default. Thunderbird fortunately via the Nostalgy extension. It's been a lifesaver since claws mail never implemented HTML mail, forcing me to move to Thunderbird for 21st century text formatting ten years ago.


Sounds cool, will check it out!


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!


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


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?


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?


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.


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


I sought only to compare Gmail with FastMail, to indicate that Gmail is a poor baseline for memory comparisons.


Fair point, I agree there!


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


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.


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.


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.


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.


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.


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.


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.


That's it? My Gmail tabs used to take 2GB (the last time I checked, years ago).


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.


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


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.


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.


Outlook is using 46MB for me at the moment. I don't have a particularly large inbox though.


Outlook is using less than 220MB for me right now, and that's fairly standard. It seems to be fairly optimized.


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.


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


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.


Specifically the image bug, as another commenter linked to: http://seenaburns.com/debugging-electron-memory-usage/


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.


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?


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)


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.


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


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.


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?


I'm curious too! I found one interesting article about Electron eating memory with images: http://seenaburns.com/debugging-electron-memory-usage/


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.


How are you measuring the RAM usage?


Thunderbird takes 425mo of my ram right now.


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.


For comparison, my Thunderbird install with over 60k messages stored locally hits about 220MB.


Ask native thunderbird developers, why Thunderbird take 400 MB of RAM, only after start the programm.


Because Thunderbird is not actually native, it uses Electron's precursor XUL.


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


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.


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


Those are all advantages for the developer. I don't see anything that the user gets for the cost.


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


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.


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


Recent version of Postbox switched to the Maildir format, which is still, from what I've seen, not production ready in Thunderbird.


Currently it is not a standard format so right now there is no easy import/export - however this is a feature that is coming.


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?


Consider Dovecot's mdbox maybe?


> 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 :/


That is maximum, normal is around 130 - 170 mb


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.


That also means building a separate UI for every supported OS, which isn't usually feasible for a single developer.



Just an fyi, it looks like you need to include the www for the link to load.


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


> marginally better

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


I've done it.


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.


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.


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!


How much RAM does your mail client use?


I use notmuch with Emacs - so very little.

Before that I used mutt - also very little.


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.


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


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


That's fine, but there's no point comparing RAM usage between completely different apps like video players and email clients.


Because sometimes discussion centers in and around the images, as in discussion of analysis figures.


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!


Yes, multiple people have requested a Linux version and it is coming in the future!


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


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.


How much RAM does your current mail client use?


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.


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.


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)


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.


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



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.


Sounds very interesting, although Ivelope interacts a lot with the OS, and a lot of the Electron API would need to be added.


Oh its electron :( Sorry not for me, please rather make a roundcube replacement out of it.


[flagged]


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


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


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.


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.


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


Can't you build something "to use as little RAM as possible, given that it's using Electron"?


[flagged]


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


I'll accept that! Thank you for the perspective.


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.


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.


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


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.


Telegram is not an Electron app. It's a Qt app written in C++.


At least on Mac you can get the telegram app, or something called Telegram Desktop, which is Electron-based


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/


Telegram is not an electron app. It's native C++ and QT


The official telegram desktop client is Qt.


>FWIW I use the Telegram client which is an Electron app

What OS are you using Telegram in?


CentOS 7.3


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


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.


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.


My laptop has a limited amount of memory, CPU time and battery life.


So... you make it a point not to read html emails on it?


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.


Could you go into a little more detail about this setup?



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.


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: lazy: some would call that get more stuff done faster and cheaper.


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.


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


And let's not forget that thunderbird ui itself is rendered using gecko.


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.


Or you use qt. Which is cross plateform, native, fast and open source.


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.


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


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.


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


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


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.


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


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


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.


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


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


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.


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


One could have used e.g Qt.


> Electron would be a deal breaker - but I'm weird

Guess I'm weird too.


Of course I have to ask if you've looked at JMAP (http://jmap.io/spec.html).

More because we're getting close to finishing the spec, and feedback from someone who's build a client recently about whether the spec suits their needs would be valuable!


Hi! I really like the initiative of JMAP, however I haven't been able to look into it properly - I can give you a better answer once I've done that, my email is in my profile


One of the things we’re really hoping with JMAP is that, by drastically lowering the barrier of entry (because doing IMAP/POP3/SMTP well is hard), people will be able to experiment much more, making things like Ivelope, because they can start making UI almost immediately rather than shaving IMAP yaks first.

I have a talk planned entitled “building a fair dinkum email client in half an hour with JMAP”—because you genuinely can make a basic but useful email client that quickly! (I’m planning to submit it for Strange Loop. Any know of other conferences that would like such content?)

JMAP’s support for both labels and folders may be helpful for Ivelope too.

I love seeing a new approach to an email UI, based on the same old email that still works. Thanks for making it!


I'm not convinced that JMAP existing will make it easier for people to develop things like Ivelope. I don't know in this particular case, but if I were writing Ivelope I wouldn't first write an IMAP library of my own. I'd use an existing one. And all commonly used languages have pre-existing IMAP libraries anyway.

I doubt the ability to do "var client = new JMAP()" instead of "var client = new IMAP()" will lead to a flood of new clients.


I perceive that you haven’t ever tried programming against IMAP or making a MUA, or not seriously at least.

IMAP is a mess if you try to do much beyond the basic “retrieve list of folders, retrieve messages, now just leave it alone”; and most IMAP client libraries are worse than IMAP need be. There are many extensions for many features, poorly supported in various clients and servers, and various things that are slow, difficult, or impossible to do in IMAP that JMAP can express elegantly. http://jmap.io/#why-is-jmap-better-than-imap lists a few reasons. Bugs in clients or servers that cause data loss over IMAP are not unheard of.

IMAP is also only one part of the app: one of the hardest parts is MIME, and figuring out what to show for an email and how to craft an email; there are fewer libraries to do this than there are IMAP clients—and almost none that are any good. (You’ll find some that do the plain parsing of most of the message, but how do I decide what to do with multipart/alternative, multipart/mixed, text/plain, Content-Disposition, Content-Encoding, &c. is answered by no library that I know of.) JMAP doesn’t solve all these problems, but it handles most of them by handing you a sanely parsed message (putting the burden of sanity on the server, and the spec provides good guidance and there’s a JMAP test suite being made to ensure the sanity of the server): things like exposing To, Cc, &c. as lists of addresses; and fields like preview, htmlBody, textBody and attachedFiles to save you the trouble of deriving the crazy convoluted rules of multipart messages. You can send messages without having to implement SMTP and grok MIME, too.

For authors of existing MUAs, JMAP doesn’t have much to offer by this stuff from the last paragraph—they’ve already done the hard slog. But for authors of new MUAs and other programs that might want to do email at all—sending or receiving—JMAP really is “all that”.

Some of the experiments that I’m looking forward to seeing won’t look like existing MUAs at all. They’ll be other things altogether that just happen be able to send or receive emails directly, now, because it’s finally easy enough to.

IMAP is not particularly well suited to being used as a purely-online client with no local storage or persistent cache. You can do it, and many clients have over the years, but you will sacrifice a lot, like the ability to search multiple folders efficiently. We couldn’t make something like the FastMail web UI speaking IMAP; it just wouldn’t work in too many places. JMAP, on the other hand, is designed to work in such a situation, and suffers from few of those sorts of shortcomings. Sure, you’ll probably want to introduce offline support and may want to reimplement search on the client somewhere down the track, but it’s not necessary-work-that-must-be-done-before-the-client-is-generally-useful like it is in IMAP.

JMAP allows you to get started quickly and efficiently. Because it speaks HTTP and JSON and is deliberately designed as a synchronisation protocol, and because it lacks the cruft of decades of fragmented extension that IMAP has¹, JMAP is really easy to work with. Even things like synchronisation and notifications come at very low cost even without a library, especially if you are running in a web browser.

Don’t forget that JMAP replaces IMAP and SMTP for the MUA. And having only one thing to configure and get right, with a standard configuration procedure (SRV and .well-known, so that you can just provide an email address and it’ll figure out the rest) instead of two with no consistently applied configuration procedure is a surprisingly big deal for users.

The talk that I plan will be predominantly live coding, starting from scratch—no frameworks at all—and building a basic but functional MUA in half an hour. You really can’t do that in IMAP/SMTP, but you can in JMAP², and it genuinely gets better beyond there.

I have no interest in making a realistic MUA with IMAP/SMTP, because I know that I would spend weeks on the groundwork, to produce a result that is strictly inferior to what I am confident I can produce in an hour with only a general understanding of the JMAP spec, and access to the JMAP core and mail spec docs.

Oh yeah, I just remembered another absolutely massive thing about JMAP, though the dust has not yet fully settled—calendars and contacts. Because this IMAP/SMTP MUA estimate of mine just went up by a couple of months to handle them for some ESPs, whereas with JMAP that groundwork will take maybe another whole hour.

Seriously, JMAP is a big deal.

---

¹ For now, and it has a more thoughtful design to future extension so that it will avoid some of the troubles of aging.

² I’m delicately ignoring the matter of authentication here, which is omitted from the JMAP spec, and assuming something really basic.


"I perceive that you haven’t ever tried programming against IMAP or making a MUA, or not seriously at least."

Unfortunately for you, your perception is wrong. Writing an IMAP client library is my go-to project when I'm learning a new network stack / language. I am very familiar with the way it works and it's various problems, and have been paid to write software that uses it.

I am not as familiar with JMAP, but I did look into it a year or so ago. I recall at the time that it didn't seem to solve that many problems, and introduced problems that I never previously had when working with IMAP. I triggered a discussion on the IETF mailing list regarding one of these problems (https://mailarchive.ietf.org/arch/msg/jmap/7dSQsqRBJ_YlZ7wF8...). Somebody said at the time that they would look into modifying the protocol to address that problem, but to me (and I could be wrong) it looks like this hasn't happened.

My basic perspective on JMAP is: It doesn't fix enough problems to justify the massive increase in pain it would cause developers of mail clients by having to support both IMAP and JMAP at the same time. I'm totally on-board with replacing IMAP with something better. But it needs to be a lot better, or we should just stick with IMAP. To me, JMAP just looks like it will cause more problems than it solves.


-- get the second page of top-level folders

["Mailbox/query", { "filter" : { "parentId" : null }, "limit" : 30, "position" : 30 }, "R1"]

It's happened.


(Yes: I have personally implemented IMAP, and SMTP, and in fact even Seieve, all from scratch. No: I did not find writing a fully compliant parser difficult, and I have no sympathy for people who seem incapable of writing one.)

> You can do it, and many clients have over the years, but you will sacrifice a lot, like the ability to search multiple folders efficiently.

By "folders", I will assume you mean "mailboxes" (as that is how most, if not all, existing clients and servers choose to represent "folders"). This was addressed in RFC 7377. I realize that you will argue "but what servers actually implemented that?", but the answer is "probably more than have decided to implement JMAP".

That said, JMAP has chosen to unify labels and folders into a term "mailboxes". The same solution applies to IMAP: I think a more correct usage of IMAP is to unify labels and folders into what IMAP calls "flags" (as opposed to what IMAP calls "mailboxes") at which point I think you will find that 90% of the struggles people have with IMAP disappear.

I realize that no IMAP server does this, but that is for historical reasons related to how mail was stored on disk and I think totally ignores what makes IMAP as a protocol interesting. I honestly feel like a lot of people just never took the time to understand either IMAP (or Mark Crispin) (or how to quickly write a parser :/) and then spent decades complaining about the annoying and limited ways people mapped semantics.

That all said, I would at least begrudgingly agree that for some simple use cases, JMAP is likely convenient for certain classes of mail consuming systems. But come on... to try to claim that IMAP is somehow not designed for online usage or is somehow broken for that usage is such a totally disingenuous claim that I will go so far as to say that it outright slanders the memory of Mark Crispin, who seriously seemed to believe people writing offline email clients with persistent caches that required synchronization were embarking on a "fools errand", and (for better or for worse) effectively assumed servers would always be better than local hardware.


Last time I was working on a MUA (which was admittedly a long time ago), within about 3 days I ended up submitting a patch upstream for Ruby's Net::IMAP. It's a fiddly protocol, and there's a lot of ways to get things wrong.

I, too, am quite excited about JMAP, although I have my doubts about ever trying to write an MUA ever again.


It looks like JMAP is on top of HTTP - does this mean a normal browser could speak it directly? How is new mail notification handled? Polling?


Push subscription and EventSource: http://jmap.io/spec-core.html#push

The FastMail web UI will soon (later this year, we plan) be speaking JMAP. What it speaks at present is a precursor to JMAP.


Thanks for that - I'll pop you an email.

I'll be in Munich in June for M3AAWG and then popping over to Paris to meet the Linagora team and chat with them about their JMAP work - don't think I can come up with an excuse to visit Sweden this trip sadly :(

My next trip after that is Montreal in July for IETF102. Hopefully we'll be finalising core and mail specs at that conference, hence the interest in getting feedback now! Easier to fix spec issues before publishing.

I've done a bunch of implementation on two different servers, so I'm comfortable with that half, but we only really have one client implementation in-house (hence wanting to chat to Linagora about theirs!)


Are there any servers supporting JMAP today?


Cyrus IMAPd master is pretty much up to date.

JMAP-Proxy is sitting slightly behind, that's on me.

Less up-to-date, there's a few, atmail, Apache James (via Linagora), a couple that aren't published.


God bless you for working in a space—native email clients—which seems utterly neglected nowadays.


I can kind of see why.

There is a lot of convenience in being able to log into any computer and access your mail. Plus Gmail search beats the search in native clients most of the time.


I agree regarding the convenience, but I'm not impressed at all by the Gmail search function. It doesn't even have any fuzzy matching – which seems crazy given what company we're talking about.


Gmail search is without doubt the worst search I've ever come across. It doesn't even return all the results.

Why do you think it is good?

There is nothing that says that you can't have both web and native mail clients.


It works for almost everything I try to find. It might take a few tries, but I can usually find the mail I was looking for.

Usually when I change jobs I have had another non Gmail account but I have never found the search as good. I have an outlook web client at work and that doesn't find things. Maybe its me being dumb and remembering different phrases from what is actually stored, but I almost always manage to finds what i am looking for in Gmail. I can't say the same with other clients.

Its just a pity that I have to give up my privacy to Google for it.


Well, it can't even find all instances of a single exact ID.

It's what you'd expect of a cloud service though, they really don't want to go through all of that data.

Any native client though will just go at it and return proper results.


Mobile Imap clients are a thing.

And gmail isn't your mail, it's Google's mail. A mailserver that you host yourself is your mail.


This is often heard but I don't think there is legal justification for it. It is pretty clear that it is your data, hosted on someone else's server that you pay by looking at ads and allowing them to read your mail. It is your mail nevertheless.

Additionally, if we are really picky, only mail written by you is your mail. All mail received is normally copyrighted by someone else and belongs to the sender or/and his/her company. Very strictly speaking in some countries you are not legally allowed to forward someone else's mail if it bears any artistic value.

Yes I know, it is off topic. But it was fun, thanks for the spark!


> All mail received is normally copyrighted by someone else and belongs to the sender or/and his/her company

Source please? Shouldn't there be a creative aspect about it? Which is probably not the case for lots of emails.


Correct, that's why I wrote this at the end if the paragraph:

>[...] if it bears any artistic value.

Source: As this depends on the country you live in you would have to look up your country's copyright law and see if it's true for your country.


Using a native email client 99% of the time doesn't prevent you from signing in to a web version when you're away from your machine...


It's not native, looks like an electron app


Maybe 'native' is the wrong word, but I meant non-web-app.


Electron apps are web apps "sold" with Chrome.

Like buy one, get two for free.


The OP clearly means not hosted remotely / not requiring a server to set up, but somehow everyone thinks this is a great opportunity to mention that since it uses the same underlying front-end technology, there's no distinction, and it's actually worse.


Good thing this is hacker news, or I might have missed out on a barely-relevant pile-on of commenters letting me know how terrible Electron is!


I'd prefer to get what I bought - without "free" Chrome.


Analogy: when people are deadly allergic to peanuts, they make very very sure the food they buy doesn't contain peanuts before buying it. If they can't get an answer, they go buy food from someone who can answer their question.


Electron apps are web apps though.


Not sure if there is a common agreement about terminology, but my distinction is

- web app: loads from a server and connects to a backend to perform its activities. Business logic is on the server. If at all, very limited offline capabilities

- desktop app: is installed on the local machine, doesn't need any connection to a backend to work, works offline.

I don't mind at all which technology the dev used to implement. Even nerdy metrics like memory and CPU consumption cannot be predicted from the used technology. So why should I care?


> - web app: loads from a server and connects to a backend to perform its activities. Business logic is on the server. If at all, very limited offline capabilities

You're confusing web apps and client/server apps. Web apps are generally thought of as apps written using web technologies. This means that a web app may not even interact with a back-end server, or a native app may exclusively interact with a back-end server.


I think this is not correct. According to https://en.wikipedia.org/wiki/Web_application, Web applications are applications running in a Web browser. The term was introduced to distinguish Web _apps_ from Web _pages_, not to distinguish _Web_ apps from _native_ apps.


> Web applications are applications running in a Web browser

And Electron embeds an instance of Chromium, to provide a webview for the 'application' interface.

How is that not a web app? It's written in HTML, CSS and JS, it runs inside a browser.

Just because the user can't choose the browser doesn't mean shit. Users couldn't choose the browser to run a lot of Microsoft-stack Web Apps in the early 2000's either, because they only worked in MSIE.


It's not a Web browser because you can't browse the Web with it.

In my view, Electron does not embed a browser, it does embed a HTML/CSS/JS renderer.


And a web app runs on a local server, so where is the problem? On my linux "Apps" run on (X) server too.


“Web app: renders the entire interface in a browser engine” is a pretty simple definition.


This is a simple definition but I think it lacks a couple important things:

1. It doesn't match the words. If that defines a "web app" then where does the web come in? I would think part of being a web app is that you can access it via the web and don't have to install it on your device.

2. Usefulness of the distinction to users. The specific nature of the bundled runtime for the code doesn't matter to anybody. It strikes me as pedantic to insist that because under the hood a thing is running in a browser we should call it a "web app".

I think the most practical distinction is that web apps have a URL as the entrypoint. If you want to use it, you can visit the URL from any browser that supports the app. Web app requires a URL and a compatible browser.

If instead you install the thing on your computer and run it from there, it's not a web app. It's a native app. No URL and it doesn't care what other browser you have installed because it comes with everything it needs. It's independent.

How and why would users be expected to understand anything else?


The word web comes in when “browser” is short for “web browser”. I can’t believe I had to explain that.

As for the second issue: users care because performance is worse, accessibility is by and large non-existent and platform features don’t work.

For example: macOS has tabbed windows at the core - any document based app gets it automatically.

How does that work out for electron apps?


> I can’t believe I had to explain that.

You didn't really have to. I guess I made my point badly. The fact that a "web browser" is somewhere in the chain of what is reading an application does not mean that the application itself has anything to do with "the web", so I think calling it a web app is confusing and pointless. And again, seems like a technicality.

> As for the second issue: users care because performance is worse, accessibility is by and large non-existent and platform features don’t work.

I agree with this in general. It doesn't mean it helps the user to call it a web app. Maybe we need a third, generic term for electron apps and others like them. A name that refers to the potential differences in performance, accessibility, and performance that users may notice?

Web app doesn't work for what you are talking about as far as I can tell. Of course this is an industry where terms and definitions change a lot.


> The fact that a "web browser" is somewhere in the chain of what is reading an application does not mean that the application itself has anything to do with "the web", so I think calling it a web app is confusing and pointless.

In a discussion of 'native apps vs web apps' it absolutely makes a difference that Electron apps are rendered by a browser's web view - they're basically a web page rendered by a local source not remote, but without any of the sandboxing that proper browsers employ for security.

> Maybe we need a third, generic term for electron apps and others like them. A name that refers to the potential differences in performance, accessibility, and performance that users may notice?

Sure. Shit Apps (tm).


> In a discussion of 'native apps vs web apps' it absolutely makes a difference that Electron apps are rendered by a browser's web view - they're basically a web page rendered by a local source not remote, but without any of the sandboxing that proper browsers employ for security.

Those are also reasons not to call them web apps though: web apps run in your browser of choice (ish) with all of the associated security and accessibility defaults, plus your extensions and whatnot. They are apps on the web.

> Shit Apps

You can do better.


> You can do better.

More importantly, so can desktop application developers.


Bear in mind that any email client will need an HTML engine of some form for rendering HTML emails (even if it doesn’t use it for the entire UI), unless it makes the radical decision of being text-only.


Looks great! I'm always curious what it means when people say they've worked x years on something. Was this a full time project @ 40/h a week every week, or more of a few hours on the weekends, or maybe something in the middle?


Hello! It has been full-time for the last 2 years!


Did someone review your code? 2 years working on your own sounds like a caveman.


Yes, I was basically a caveman, and I'm currently looking for more developers


Haha, that's awesome man!


Please don’t take this negatively. The “bus factor” here is 1. That’d be a concern for many users (especially ones who have used corporate email systems and have higher expectations on the longevity of a client). More so when combined with the other feedback I gave on having export options for the mail to standard formats.


This probably means that the software is not going to be free, right?


I hope it's paid. This guy deserves to get paid for his awesome work, and I will trust it more if I'm paying $.


I agree! I'm frequently paying for software even if I won't use it after a year just to test how well it works. Unpaid is not sustainable. But having source code (Maybe GPL?) is also important.


If the choice is between paying with money and paying with my personal data, managing my e-mail is one of the things where I'm happy to pull out the credit card. (That's why my e-mail accounts are on places like fastmail instead of gmail.)

I get paid money for the software I develop too, after all.


For some of us, email is so important that we are prepared to pay a LOT for a really great client. I'm currently paying around $150/year for Photoshop - email is more important to me than Photoshop. For the right program, I would happily pay $99 for a major release. I think that's what I used to pay for Eudora many years ago.

Postbox currently only charges $40 for a lifetime free-upgrades license. In my case, they are definitely leaving money on the table, I would've paid a lot more.


Well I was having a good day until you had to go and remind me about the demise of Eudora... ;)


What features of Postbox do you use that are not available in Claws (or derivatives) or Thunderbird? Serious question, I've love a better email experience.

In any case Postbox is not available on Linux, but I'd still like to know.


It's so long since I've switched that I'm not sure anymore, but Postbox tried to be more Mac-like and had native integration with macOS Contacts instead of separate address books. I think it had some filter rules Thunderbird didn't have, and faster indexed search.

But now, I use the keyboard driven Tagging & Quick Move features [1] a lot. They work a bit like Alfred [2]. To file a message in my Filtered folder, I type "v fil Enter" and by the time I've typed v, an Alfred-like window pops up that autocompletes the full folder names as I type - so by the time I get to 'fil', it's autocompleted to the right one and I can hit enter. Standard keyboard shortcuts too like j to junk, a to archive, etc. I'm sure Thunderbird also has these via extensions, but I like having it in the core product supported by the core developers.

There's a word count warning feature that I use a lot too, because I tend to type a lot. The word count turns red when I go over my suggested self-imposed limit, or you can set a timer for when you've been composing one email for too long.

EDIT: I saw you asked elsewhere about editing the From field, Postbox has a pulldown menu on each message you compose where you can choose from a list of profiles / aliases you create. Each can even have their own SMTP server details & default signatures & are separate from inbox accounts. You can switch signatures on individual messages too.

[1] https://www.postbox-inc.com/features

[2] https://www.alfredapp.com/


Thanks. In fact the time-limits on writing an email is a great idea! I should generalize that into a timer app for writing email, browsing HN, Wikipedia, etc.

Alfred looks interesting. Other than the workflows, almost everything it does is already integrated into KDE. However it looks easy to use and I will definitely check it out if I move to one of the company Macbooks. Thank you!


No problem for paying a good mail-client. I use it every day and if it saves me time (e.g. conversiation view, or better search) i will pay for it.

Would be nice if a bigger company sponsors such a project, then a greater audience will use it and the Developer could concentrate on developing and not on selling.


I hope you make it paid by freemium method!


No offense but unless it’s a 1st party client email clients are something that is very hard to trust.

Who controls your client has access to your inbox with most services even the few that have separate IMAP/POP3 passwords like Hushmail can be compromised through it.

If your client also integrates with encryption or worse takes charge of it my encryption key is also now at risk.

Lastly since email today is pure HTML you also inherit all the possible vulnerabilities that come with having a DOM parser and a layout engine and even modem browsers still get both wrong.

And using something like Electron or even Chromium won’t implicitly save you because the way you implement them matters a lot and now you are tied with their update cycle which might break functionality forcing you to manually backport security fixes which is hard to accomplish.

So unless you have the source or show an audit from a respected firm (c53, isec etc.) its going to be quite hard to recommend to anyone to take the dive and try this out.


I've downvoted you for your sheer negativity.

This is a person who's worked 2 years on a project, in a neglected space where companies don't go because they can't make money.

He deserves praise for taking the time, creating something that's different, and thinking through the idea. Well done!


He isn't trying to take away from the achievement, just highlighting some legitimate security concerns.

IMHO this is justified since people often overlook how critical an attack vector this would be.

Imagine if a state-sponsored "hobbyist" posted a pet project like the OP to Reddit and started harvesting keys/password reset capabilities for huge amounts of users.

Hell, people flocked to use unroll.me and then it turned out they were (predictably) scraping your entire inbox and selling the data to advertisers.

I don't believe that worrying somebody's skepticism might hurt feelings is a legitimate reason to downvote (remember, downvotes aren't about whether you agree with somebody; it's about whether they add constructively to discussion).

Aside: Great work OP. Seems like an incredibly hard sector to make traction with though, so best of luck.


Yea, I kind of feel the same way about it. "Great work but not my cup of tea for reasons A, B, and C" should be valid feedback on a Show HN.


Absolutely. But the OP forgot the "Great work but...". Had they, I wouldn't have commented.


Security concerns are the one of the primary reasons why so many email clients died out mid to late 2000’s when every red team success story was “found XSS in email client pwned admin”.

No body is detracting anything from anyone but there is no way I’m trusting an application that can take contol of a large portion of my life without assurances.

If your email address gets compromised it’s game over for most people every service you’ve registered with is up for grabs which is also the reason why I don’t recommend anyone to use personal domains for email unless they are willing to pay for it till death do them part.

As time and time again after buying a domain that was used by someone else and setting up a catch all email address I got emails from Twitter, GitHub and the likes.


I built a webmail client from scratch many years ago and I agree with the security concerns. In my case the credentials were not a problem with displaying inline HTML securely was difficult to get right. Back then there was no CSP.


Just because someone works on something for two years doesn't mean they "deserve" anything. That's flawed reasoning.


For me, an additional concern is being tied to this client after using it. Every offline mail client has its own storage formats (mbox, maildir, SQLite, another database or a mix of these), and so moving across clients is not an easy exercise unless the clients support multiple formats for import. I would also like to see how the client behaves when one single mailbox is more than 20GB in size, with at least one of the folders being around 3-4GB by itself. Claims that searches happen in milliseconds need to state the size of the mailbox and the folders (and also include enough variability in the content for the index to be large enough).

I certainly like the idea of new email clients, especially those that integrate with Exchange calender (a weak point for Thunderbird even with extensions). But in my view, building a fast, robust and feature rich email client would take about an effort of 10-30 person years or even more, depending on the feature set. This one seems to stand at a mere two person years, and so my expectations would be quite low (though it's still in beta and states upfront some of the important features it's missing).

P.S.: I'm a supporter of Thunderbird and donate money to the project. https://donate.mozilla.org/en-US/thunderbird/


I think the largest inbox ever tried in Ivelope so far is around 10GB and from what I heard from that user, there were no major problems - but I haven't made any measurements. A few people have requested mbox import and it is on the todolist.


Since you responded elsewhere that your client stores mails in a proprietary format, one very important product goal should be an export mechanism that can export to one, if not more, of the common formats (mbox, maildir, etc.). After all, if you’re confident on your client’s features as the USP to get customers, you should also easily allow those who want to move out to do so. I personally wouldn’t try our client for serious use otherwise.


Of course, I haven't put my focus on this yet, but it is on the todo list.


> Claims that searches happen in milliseconds need to state the size of the mailbox

I'd honestly outsource the indexing and searching to something like mairix which is designed purely for this purpose.

(On my 4.5GB Maildir, 57 folders, 111k emails, mairix takes 205s to index from scratch. Incremental updates are <5s. Worst search I've yet done took 0.5s to return 13k hits for 'bank'.)


Or "notmuch" which has integration with Mutt and similar mailboxes, and it has GMail-like tagging and boolean searches.


Interesting, thanks! Trying that now. Took twice as long (13m) to index my folders (and ignoring a whole bunch of fake-mbox files that seem to be coming from my gmail-to-local forwarding) but the searching is about the same kind of speed as `mairix`.


I had a very quick look at the mairix repo on GitHub, and I'm not sure what to make of at least one pull request (about large mailboxes) that has no comments on it for a few years. Though it's an old project, I just wanted to confirm that it's still good enough to use without too many issues and also check if you're using the main one [1] or any of the other forks. [2]

[1]: https://github.com/rc0/mairix/

[2]: https://github.com/rc0/mairix/network


Couldn't tell you offhand, sorry - I'm using the Arch Linux community package which doesn't explicitly state where it's coming from. Currently v0.24-1 if that helps figure it out.


> Lastly since email today is pure HTML

Where did you get that idea? If your email is pure HTML all I'll see is your markup, if it makes it through the spam filter to begin with which assigns a pretty stiff penalty for sending me HTML mail.


On a related note, any email that’s “pure HTML” or mostly HTML is something I don’t even open, mainly because such emails tend to be of the marketing and tracking kind, where viewing it would send various signals to the sender. If anyone has something important for me to read, they better put it in plain text.


Exactly. HTML email is a privacy hell[0]. However, many email clients can work around this, e.g. in Mutt you can let Lynx do a plaintext dump of the HTML email.

Also, the whole issue of JavaScript in HTML emails at least deserves a mention[1]. Since Ivelope is an Electron app, I'd guess it would go ahead and just run everything it receives, right?

[0]: https://freedom-to-tinker.com/2017/09/28/i-never-signed-up-f...

[1]: https://stackoverflow.com/questions/3054315/is-javascript-su...


Are there still email clients that run Javascript? I though that idea had been properly murdered a while ago.


Unfortunately, I agree with you. I'm saying "unfortunately" because it's such a shame that this sector is so closed off to innovation from smaller players just because it has become too important in our lives.

I might try this client with a throwaway email account, but never with something important.


From the landing page:

> Privacy & Security

> Total privacy - we do not have access to your email account, Ivelope only sends your email data and password between your computer and your email server.


Without source code, that's nearly impossible to verify.


As with any other closed source app. What's your point?

If you're really paranoid but still want to try it out, you could run something like Little Snitch to verify the connections the program makes.


No offense, but if everyone thinks like this we better not use email at all.


Few webmail "clients" are open source and many native clients like e.g. Outlook are also not open source, yet these are very popular. Unless you use a highly trustworthy email provider, considerations about client programs are kind of moot anyway.

I'd personally be more picky about my mail provider and not use any offerings by Google or Microsoft, for instance, because they are stock market companies with interests that principally conflict with the interests of their users. In contrast to this, trusting individual developers and small companies makes much more sense. You check out their online presence and decide for yourself. I'd only be wary about individual developers who offer closed-source security applications (e.g. encryption) and have no prior history of working and posting in this field. But an email client? To be honest, I haven't even checked the vita of the maker of my preferred client, claws-mail, let alone those of any of the authors of the plugins I'm using.

On modern operating systems you basically have to trust every developer of any application anyway, since many installers require admin rights and even if they don't it wouldn't be hard for a malicious developer to exploit a security hole. Your kitchen timer application can get your email credentials almost as easily as your email client.


Outlook is trustworthy for the most part at least as far as security goes MSFT isn’t fooling around and it’s an enterprise product.

And yes choose your email provider based on your threat model but there is nothing wrong with Google or even MSFT for most people security wise privacy is a different concern but these are different threat models.

An email client won’t prevent my email provider from snooping on me (E2E maybe), and no email provider could prevent my client from snooping on me either.


You're already trusting hundreds of individual developers by running their software on your computer.

There is nothing wrong with running an email client made by an individual developer unless you have a particular reason to distrust that person.

>as far as security goes MSFT isn’t fooling around

They have a proven track-record of security bugs for the past 20 years and longer.

> there is nothing wrong with Google or even MSFT for most people security wise

I wouldn't use them as my main email provider security-wise and trust my current email provider way more than those companies. (Not because I think they are less secure, but because I think they are attacked more often.) But of course your mileage may differ, nothing to object to that.


The threat and trust models are completely different. It's not just about using a piece of software it's about using a piece of software that can lock or unlock your life because essentially every service you use today is tied to an email address.

>There is nothing wrong with running an email client made by an individual developer unless you have a particular reason to distrust that person.

It's not that i distrust that person but it's that I know how unlikely it is for a single person to be able to validate the security of their product especially when it comes to something as complex as a product with a DOM parser and a layout engine, nor do I think they would be able to maintain it up to date when new attacks and vulnerabilities are discovered even they do use something like electron since electron isn't simplicity safe and plenty of electron based software even fairly well maintained one lags well behind it's update cycle including when security patches are concerned.

>They have a proven track-record of security bugs for the past 20 years and longer. They also have a proven track record of finding and fixing those bugs.

>I wouldn't use them as my main email provider security-wise and trust my current email provider way more than those companies. (Not because I think they are less secure, but because I think they are attacked more often.) But of course your mileage may differ, nothing to object to that.

There are potentially more secure providers but being attacked more often isn't a really good sole metric threat model unless you can effectively estimate resilience responsiveness and compare it to other options.

I used Hushmail as my primary email (still somewhat do) because it was fairly secure and had integrated PGP, I switched to Proton Mail now.


The software runs completely on your desktop - your email & password is only sent between your computer and your email server. There are quite a few security measures in place that prevents HTML vulnerabilities, both built-in into Electron and others. I'd very much welcome an audit of the code from a respected firm!


No offense but unless it’s a 1st party client email clients are something that is very hard to trust.

This seems an odd position to me.

Online clients are well known to be scanning your emails, necessarily involve giving access and control to third parties, are impossible to use while retaining control of private encryption keys, and so on.

Local clients might have some of those problems. If they're open source then in theory you could audit them and find out, but in practice even that gives a false sense of security because no-one has the resources and willingness to undertake that work every time they install a new version.

Ultimately software security is still all about who you trust, the same as always.


Tust is everything.

What does it change if you have an c53 audit of Version 1.0.0 and 1.0.1 has malicious code?


That is correct but it's a slightly different threat model that I don't want to tackle here.

I'm not going to make claims that a developer would maliciously embed code into their own product but I do care about the quality of their code and their security practices at large (specifically how secure is their code promotion and binary distribution supply chain).


There's not a lot of attack surface when JavaScript is disabled. If there's a HTML/CSS vulnerability in Chromium, then your email client is the last thing you have to worry about.


Do you run any non-sandboxed software from any non-"first party" on your computer? If you do, that software also already has access to your entire email inbox.


So unless you have the source or show an audit from a respected firm (c53, isec etc.) its going to be quite hard to recommend to anyone to take the dive and try this out.

Please. How many times a day do you enter a password somewhere on your computer? Do you look at the source or ask for an audit for every one of those apps?


Not as many times as you'd think and again that us utterly irrelevant.

It's not how many time you put it in it's into what and then what that thing can do with it.

Not all passwords are equal and for most people their primary email is the domain admin/root credentials for of their life.

And it isn't relevant if I personally audit every application or not I can build a trust model based on my risk appetite and the threat models that are relevant to me and the situation and everyone does it even if they are not aware of it.

I can put my trust in a specific vendor based on their business model, their reputation, the resources they have available and my experience with them and the legal frameworks surrounding the service/product. I can put my trust in the community at large in the case of open source products because while individually neither myself nor most other user validate every line of code and every commit it is possible and the community at large does do that.

Let me ask you this I this wasn't and email client but say a thick client for your online banking would you still ask me the same question? bare in mind that having your email compromised today is considerably more damaging than someone logging into your online banking as it's much easier to sort the latter and there are also considerable mitigating security controls around it.


Pretty much everything you said is bullshit, fwiw. Nobody gives a shit about your name drop of firms, nor will not having an audit from any of them impact the target market for this app.


> Total privacy - we do not have access to your email account, Ivelope only sends your email data and password between your computer and your email server.

I wish this was the default assumption these days.


Has anyone tested this using https://www.emailprivacytester.com yet? If not, please do so and report back here. I would test myself but I'm stuck in the queue for access.


This looks great. I have two questions:

- Is this open-source? What is the license and where is the source-code?

- When can we expect a linux version?


Super cool!

ctrl+f on "price" or "cost" turns up nothing. Well then, what is your business model going to be?


This looks very impressive. I'm currently looking for a new email app but my biggest concern with email applications is their longevity, do you have any plans for funding this? (I'm not so concerned what the model is, just that there is one.)


Yes there is a plan, and I have on-going conversations with some interested parties :)


There is also the option of Patreon


I agree this looks very good. I'm waiting for people to try it out and write some reviews to be sure it's not just a dream...


This looks amazing, I can't wait to try it out. My main problem with Thunderbird is that it doesn't have a conversation-based UI, but this looks like it does. Good stuff!

(By the way, typo: "accessable" should be "accessible")


There is an extension for Thunderbird called Thunderbird Conversations [1] for a conversation based UI that provides a look similar to Gmail (though it may not look like chat, which is possible and would look nice only for those who exchange short one or two sentence emails). As that addon says, "Don't forget to hit View > Sort By > Threaded in the menus." to use it. Perhaps this extension would help you.

[1]: https://addons.mozilla.org/en-US/thunderbird/addon/gmail-con...


I consistently have performance problems with that extension.


Thank you for your comment, will fix the typo!


This is awesome. And very well done. It is clear that a lot of effort and time went into building and polishing this, especially for a single person. Impressive! I signed up for the list too. Looking fwd to trying it out.


Thank you!


Speaking of desktop, has anyone else seen Proton Native?

https://news.ycombinator.com/item?id=16978901


The product looks great. Feed is a fantastic idea, love it. Good luck!


Thanks for your comment :)


Are you familiar with outlook.com's sweep feature?

It's the ultimate email management tool. And I hope you can add it fast.


I will definitely look into this!


It looks wonderful! Finally a good candidate for a successor of Thunderbird! I just hope you'll manage to finish your project.

By the way, when do you plan to release the beta?


Thank you! Version 0.9 is out right now, and I have released it to a few people in the waiting list, I'm fixing bugs and iterating, so expect to get a download link pretty soon


Does this do any kind of telemetry at all? Looks nice, would be interested to take a look if/when a Linux build was available


Will definitely try it out, it’s really hard to find a perfect client.

I wonder when will we be ready to finally drop copying the entire fricking thread with each email, since all email clients automatically build the thread. If you need to forward it to someone, it’d be easier to replicate that functionality on the client side.


Thank you! This is one of the problems I'm trying to solve - although not fully implemented yet in the beta


Whats the business model around this or funding plans? Freemuim, paid software, ads, selling data?

How sustainable is this project?


What would be the reason to limit access to the beta with a waiting queue? I can see reasons to use this approach for a web app, for which you have to ensure that it scales with the number of users. There is no such problem for a standalone desktop app, though.


You are right in this respect, the reason for limiting access right now is that I don't want hundreds of people to experience and report the same bug, if I let a few users at a time try it, I can fix the bugs they report so the users in the next batch won't experience these bugs.


It looks really great!

Which frameworks/libraries and languages did you use?

What were the main challenges you came across?


Thank you! This is built using Electron, so it is basically JavaScript. Given the interest of this post I'll try to make a blog post later on all the challenges and lessons learned


Wow, people really feel personally attacked by an app released using Electron. Weird.


It's funny how everyone has a extremely specific set of requirements, most of time for technical reasons. Does say something about e-mail in 2018 I guess.


What is the reason to build it as a native software instead of a webapp? Seems like a lot of email clients are now webapps and I can see the arguments why.


Because of Privacy concerns! The thinking is that few people would enter their email and email password on a 3rd-party website, having it as a downloadable software ensures the privacy of users


Although, in reality, that doesn't make it more secure.


On a desktop app, you can see what kind of request the program makes and which servers it contacts. With a webapp, you'll never know what the app does.


You can do the same in your browser by opening the developer tools and in fact it comes built in to the browser whereas on a desktop you'd have to install another app like Wireshark/Fiddler to see those requests.


That only tells you what your browser sends to their server. It doesn't tell you what connections their server makes.


Nothing will. The vulnerability of what happens to your data after it is sent to a third party is the same for any app, web or native.

The biggest difference is that it's way easier to see where you're data is being sent in a browser, since it has built in tools. It's very hard to monitor native app traffic that is sent over SSL.


When the app is native there no requirement for a third party server.

You, Your mail (provider) server.

Vs

You, the server hosting the web app, your mail (provider) server.


How so? It's quite simple to tell what a web app does in my understanding. Chrome has many good monitoring tools.


The webapp can send your data wherever once it has the data, chrome won't log http requests if they were made server to server etc


A native application can do that too.


Isn't it the case for any app?


The logic is a native app can make a direct IMAP connection to the mail server and you can check it is doing so where as a web app has to send the login details to a server which does IMAP for the client and you can not see this last part.


> With a webapp, you'll never know what the app does.

Unless you run uMatrix or uBlock Origin (same code in both as far as this feature is concerned), of course.


Nonsens. Every traffic can be monitored, web app or native app, that is not important.


It's not possible to make a web-based email client that speaks to the IMAP/SMTP server directly. Only a "native" (electron can do this) client can use those protocols.


That depends on the user.


If it's proprietary it makes no difference at all. The app could be sending my password off to a remote server and I would have no way of knowing.


You can still see to which servers the software connects, ostensibly the only servers would be those for sending and receiving your emails. If you're feeling particularly paranoid you could enforce this behaviour using a firewall. For web based email anything could happen and you would have no way of knowing, even after the fact.


This doesn't make any sense as a motivation, let alone the primary motivation, to build a native app in the age of web apps. There's no real difference in security here and the user perception gain is marginal and ephemeral.


Would love to be able to self host this though and access it through the browser... That'd be awesome.


Why is that preferred for you, may I ask, over running it as a local desktop software?


Running it locally is fine, but a hassle if I need to access my mail on someone else's hardware (or my phone). I think this is one of the main reasons Gmail is so popular.


What's the reason not to, other than not knowing how to build it as native software?

Possibly only to render the HTML in some emails (and why not, then, just open them in the user's existing browser window,) but otherwise, there seems (to me) to be little about email that requires the overhead of a browser engine and associated Node dependencies and whatnot.

A native app could be smaller, faster, and use less RAM.


Most users have the mail client open all day and multi-task between reading/writing mails, reading websites, working in an office application, etc.

What would be the reason to cram the mail client into the browser instead of making it a first-class application on the same level?


Speed. Performance. Memory usage.


Does this have support for OpenPGP? If not, you might want to take a look at https://github.com/openpgpjs/openpgpjs which does all the heavily lifting for you. Although it would also be useful if it could talk to a locally running gpg-agent so it would work with smartcards/yubikeys etc.


Doesn't support it as of yet, however it has been requested by many and is on my todolist.


Is there a public tracker for these requests? I'd be happy to be informed when OpenPGP support is available. Enigmail started to behave really weird since version 2 and your client looks incredible!


I always thought it would be nice if the major os vendors provided some way of building these types of local run web app using a shared engine the os provided. Not just a web view, but a way to build the ui using web tech but also exposing the file system and other things. I guess it would be hard to secure but it’s not any worse than running unsigned eclectron apps.


looks nice - too bad it is not available for Linux.


I've been getting a few requests to release it for Linux, and as the other commenter here, since it is Electron, it will not be very long before it can be released on Linux (compared to if it were a 100% native app)


Its electron, so hold on. Its going to be a matter of time I think!


Maybe sounds weird, but does it it support Usenet (NNTP) protocol? Or maybe make it support plugins so people can add features they want.

Thank you!


Would be nice to see a feature comparison with Thunderbird. What exactly can this do that Thunderbird can't?


To give some examples: quick-move folders, conversation view, feed view, one click filter-creation and newsletter/promo filter


Seems like a lot of these are covered by Thunderbird plug-ins with the added advantage of having a native application.


This looks very neat! Does it have quick to use keyboard shortcuts like the Fastmail or Gmail web interfaces?


Yes it does!


Looks very interesting. I personally would appreciate knowing I am entering my email into a waiting list rather than getting access. Also, why does there need to be a waiting list - to help stem the flow of analytics? Honestly curious.

I really want a good, modern email client and I hope this can be it.


The reason for having a waiting list is so that I can release it to a few people at a time. I don't want to release it to everyone at once, because if there is a large or annoying bug I haven't found. If I release it to a few people, let's say 50, only they will experience this possible bug and not everyone at once


Can the filters be exported for import into gmail, etc?

I have a lot of gmail filters for auto archive or auto forwarding. I like to keep them at that level so that changing clients doesnlt mean I lose my filters. Does make it a pain to make new filters though if I’m in a 3rd party client.


This is just advertising... showing a product on HN, but requiring you to "invite" others? Too bad, I was actually willing to try the software.

I'm not going to invite others if others can't use the software, or without trying it for myself first...


I'm sorry if it came across as advertising, let me clarify: you NEVER have to invite others to get access, however if you do, you have the chance to get access sooner - I think this is fair. I definitely understand your concern of not sharing it and you do not have to share it to get access.


That sounds reasonable enough, but how fast is your queue moving? I'm 3,800 something - will I remember this show HN when I get access? :)


Looks great. Would love to try it out when it goes out of beta.

For testning the privacy when it comes to email rendering, have you tried this excellent service?

https://www.emailprivacytester.com


Yes I have and in the latest release which I'm working on, I've included features trying with the goal of fully complying with this tool.


Forgive my ignorance - can someone do a very short explanation of the killer features here?

I don't send or receive a lot of emails - none of the features jumped out at me as doing something gmail or the default mac mail app is missing and I wish it had.


I've searched the page for the word "offline", was disappointed. Searched this thread for the word "electron", was disappointed again.

Then I've signed up nevertheless, because the need for a good modern email client is strong.


Another browser running on my computer ? Thanks but no.

Also, what kind of software license does it use?

Is it open source?

is it free software?

Is it proprietary?

Once I sign up, how will my email address be used?

Will it be abused?

It did not ask for any permission nor I agreed to any terms. He seems to be from Sweden, doesn't he know about GDPR?


This looks interesting. One can see the two years of work that went into this. Is there a way to follow the development as a bystander? Something like a newsletter, blog, twitter or any other kind of feed?


Thank you for your feedback! If you sign up for an invite, I'll let you know once something like this is up and running.


I love the implementation, I can't wait to play with it, and even use it!

A question, is it a pure email client, or an email client behind a value added service (it relies on a server you run somewhere)? Thanks!


It's a pure email client! We do not have a third party server processing your emails, your data goes only directly between your computer and your email server.


Excellent, thank you much! In queue. :-)


Found it on your website: > Total privacy - we do not have access to your email account, Ivelope only sends your email data and password between your computer and your email server.

Neat!


This looks fantastic, I was just thinking about so many of these features being released in gmail. Like the chat bubble. Those things really speed up reading information. Kudos!!

Btw where are the electron haters?!


> Btw where are the electron haters?!

Hi! I'm here! ;)

I mentioned Electron in my comment, and Electron is a deal-breaker for me... but I would much rather encourage the work and effort that is going into this. If the product is successful and profitable, maybe it can be ported to native frameworks a few versions later. And considering the rumours about macOS, probably wise to avoid writing native Mac code just now.


> And considering the rumours about macOS, probably wise to avoid writing native Mac code just now.

What rumors?


Apple is dropping Intel chips & replacing them with their own CPUs in Macs in 2020 [1], and working on a unified development API where you'll develop one app for iPhone & iPad that will also run on the Mac, so you won't need to write Mac specific apps anymore [2] [3].

It's all rumour & could be wrong. But there's some who feel macOS only has a couple of years left before being discontinued. In that climate, an Electron app is smart because it will be easy to port to iOS / newOS.

[1] https://www.bloomberg.com/news/articles/2018-04-02/apple-is-...

[2] https://www.bloomberg.com/news/articles/2017-12-20/apple-is-...

[3] https://mjtsai.com/blog/2018/05/01/scuttlebutt-regarding-app...


I wish them luck, but Microsoft tried this already (Universal Windows Platform).

One thing I fear is that keyboard shortcuts, particular the F-keys, will become a thing of the past.


Apple has in the past been quite good at supporting old software even across hardware chip changes. Sometimes requiring only a recompile, sometimes not even that. Whether the Apple of today is the Apple of old, hard to say.

Seems difficult to make development choices today based on rumors, in any event.


The rumor they just started by saying there are rumors!


Thank you! Yes I was expecting some comments about Electron, however I don't think it is really deserved. It is possible to build Electron apps that doesn't use >1gb of RAM, and this is what I've also been trying to do, when I've tested it on my old Macbook Air, it consumes around 300mb of RAM


Yes exactly. Also, there are ways to offload some of the background tasks to Rust. If you can do that, your app is gonna be consuming way less memory even with new features. Please consider it!


Good idea, will look into it!


Quite a challenge you chose for yourself, I respect that! There are very, very few passable email clients in this world: Thunderbird, Mail.app (macOS and iOS) and GMail Web client.


Indeed it was and is. My goal is to put Ivelope on that list


Nice! This has a ton of potential and I really like the way that you've approached things here.

Does the calendar sync up to the various calendar providers (Google, Apple, etc) as well?


It will very soon, that's one of the most requested features by my current beta users


Love the work you put into this and the detail put into describing the features. One thing missing from the site. Why did you make it?


I felt that email clients hasn't changed much in the last 20 years and that there is a lot of improvements that can be done in this space, please note, the features that exists now in Ivelope consists of just a small percentage of what will come...


Looks fantastic - a long queue for the beta, but would like to give it a try. Early yet - but any plans to support plugins?


Can't wait to try out the Linux version!


Its made with Electron so my understanding is it should work on Windows/Linux/Mac out of the box!


Electron? The obvious snarky comment has to then be "oh and it should manage to be slower than Thunderbird out of the box, too!"

I hope he's had better luck integrating spell check than the RamBox devs have ;)

edit: yes, I would love to test it and provide numbers rather than just snark - I just have to wait for the ~5,000 people ahead of me in the queue to have their software pressed to disk and posted to them before it's my turn o.0


Haha "pressed to disk and posted" that was a fun remark :)


I'm baffled as to why I have to queue for something that's neither a physical product nor a service platform. Doubly so when the link posted seems to just bump someone else up the queue.

As a hacker news link it does strike me as a form of clickbait (and it honestly winds me up); "Hey HN! come look at this thing I've built that I'm not letting you look at!"


Since I am only one developer currently, and there will probably be bugs, I don't want thousands of people having the same bug, this is the reason I'm not releasing it right away.


This seems like a totally legitimate reason - but in that case maybe the announcement on HN (the tech website keeping the slashdot* effect alive) should have come once there was a public RC.

Also, if it's bugs and the reporting of that you're worried about, maybe publish a proper bugtracker (github is both adequate and free) rather than just an email address?

* slashdot effect; as in taking a webserver down just with the amount of people viewing it. Or to put it another way, if you wanted lots of people viewing your project, let them. If you don't, then don't advertise it to them!


Some stuff needs to be sorted out and adapted to Linux so it might take some time before it's out on Linux. However, a lot of users has requested a Linux version which makes this a priority


Ahh sorry for spreading misinformation then. I started playing around with Electron a bit when I discovered that both my Discord and Slack apps are Electron and its pretty awesome tech.

Best of luck with your client!


Not a fan of the logo in the top bar. It looks like one of those tacky “gaming” keyboards with a logo on the space bar.


The demo looks great!

Consider crowd-sourcing an american voice-over actor, it might add a lot of value for very little cost.


Is there any pricing information?


No Linux version (yet?), unfortunately. Looks nice though from the screenshots!


The field really needs this so good luck. I'll test the first release that works on my os.

I


Electron = no thanks. I might as well use my provider’s web interface then.


I see you have registered a company. How do you plan to monetize?


Just a guess after reading on LinkedIn what projects he has been working on previosly, he might monetize by in-app purchases to unlock features.


What about default search engine integration? How one makes such deal with Bing or Google?


Hope @pg will see this - as he called for better email years ago


how did you sustain yourself working on this fulk time for free?


Noodles and savings


> Use Ivelope with your current email adresses.

adresses -> addresses


Oops, second typo found. (I'm not a native speaker if that's an excuse :P)


Congrats on working hard and shipping an app!


I love it.

The fwd with attachment should be no 1 to fix though


Thanks for the feedback, fwd attachment priority noted


The chat-like interface looks great! kudos!


Thanks!


having recently heard of autocrypt and delta.chat, I thought time is ripe for somebody to use this view in a regular email client. The demo video seemed to have exactly implemented this, I'm impressed.


Sweet!!

Will you support PGP?


+1 for the Office Space references


Fuck man, just let me use it.


What's the features you're mostly looking forward to? I'll see what I can do :P


Well, I am curious. Seems so hard to get an email client right. I would not mind paying (GPG integration is a must).

If you don't go the mutt/alpine route, there aren't much options. Basically Thunderbird and Evolution. Never really got Clawsemail and iscribe to work with my IMAP server settings.

To make things worse, people do understand email less and less. Often, all ports except 80 and 443 are blocked and you can't even use IMAP/SMTP. And if you complain they tell you "What are you talking about? Gmail works...."


During development of this client, I fully understand why there aren't more email clients out there. GPG is coming!


I think GPG might be a killer feature. Well, for some people, I'm not totally sure how many people care.

I care... but the convenience of a webmail client accessible on any device is just so great. But there's no good way to really have secure end-to-end encryption in a webmail client. That's about the only thing that would make me seriously consider a desktop client.

Really, I'm not sure what the audience size is for email you can't see on your phone though.


Actually, there is another feature from Evolution you may want to offer for Gmail accounts.

Evolution somehow stores a cookie or can log in via webbrowser or something like that. Evolution will never get you logged out of your Gmail account (yes, I have one that I use for some things). I travel a lot and Thunderbird will always get blocked by Gmail (Please log-in via Webbrowser to confirm your identity).


Also, Gmails search function is a blast. Much worse in Thunderbird, annoying in Evolution.


Gmail searching isn't really that great, it doesn't do stemming while searching, offline clients should be able to do better than that.


I recently switched from Thunderbird to Evolution and I have to say the search in the latter is bordering on completely useless...


You are not weird. More and more people think that Electron is bad


We detached this subthread from https://news.ycombinator.com/item?id=16975199 and marked it off-topic.


Please stop censoring views that don't align with the hackernews majority. Just because these complaints are so common that HN hipsters now like to hate on them does not invalidate them.


This seems contradictory, since hipsters would never align with the majority.


This is an "all my friends voted for..." argument.

Electron applications such as Slack, Discord, and VS Code have ballooned in popularity over the last year or two. Hacker News comments are not representative of the whole.


It is not about popularity, it is about the resources Electron apps use vs native. The apps that you mentioned do not have good native alternatives. I cannot see anyone preferring a native app over Electron app if both offer the same features.


I prefer VS Code over native alternatives. Don't conflate your anecdotal evidence with facts. Many users don't know much RAM a process consumes or what an Electron app is, they just care about what the app can do, how fast it is, etc.


>I prefer VS Code over native alternatives.

That's because, as the parent said, there are no good (e.g. equivalent) native alternatives.

If there was a native editor with feature parity with VS Code (including the number of plugins and dedicated MS resources speeding up its development, and free), nobody would be using it.


> If there was a native editor with feature parity with VS Code (including the number of plugins and dedicated MS resources speeding up its development, and free), nobody would be using it.

Is it possible that VS Code (for example) exists (in its feature specific incarnation ) only because Electron is a cost cutter in terms of portable development?

In other terms: Maybe the portable native full featured VS Code is the middle of the cheap-fast-good venn diagram.


>Is it possible that VS Code (for example) exists (in its feature specific incarnation ) only because Electron is a cost cutter in terms of portable development?

It could -- though I doubt it.

But I was concerned with a more limited question: if there was a good VS Code alternative that's native, would many still prefer an Electron version?


> But I was concerned with a more limited question: if there was a good VS Code alternative that's native, would many still prefer an Electron version?

I understood what you meant. I respect you disagreeing with my premise, but in the scenario where that premise is true, your question is not applicable.

Scenario: Would anyone choose MDF boards at IKEA if they could choose plywood or natural wood, or assemble their own furniture if given the choice (at the same price)? Barring a few applications, probably not. But IKEA wouldn't be IKEA if they were just another producer of wood furniture, meaning they got to market and stayed there because of the shortcuts and limitations they could justify when reaching a price.

Same thing here (IMHO). VS Code could have some cross-platform code and some platform specific code, but the cost would be higher and the output velocity would likely be lower. Assuming that is true, your question is misleading, albeit not on purpose.


Most people wouldn't care unless there was a performance difference between the two.


> That's because, as the parent said, there are no good (e.g. equivalent) native alternatives.

There is sublime text.


Which is what I use. But ST3 doesn't have the full power of a 20+ strong MS team behind it, but a single person (and another hired to help here and there), and so doesn't have the same momentum -- and it's getting behind in features as well.


I never kept tabs on the development effort on neither VSCode nor Sublime Text, but it was always my impression that much of the power either editor has comes from 3rd party extensions rather than the editor core. As such, I believe it was the hype around Atom and VSCode that drove people to write extensions for them, leaving ST behind.


>but it was always my impression that much of the power either editor has comes from 3rd party extensions rather than the editor core

A lot of it, yes. But VSCode also invests a lot in core functionality (in what in other platforms would be plugins). The Git integration is one such example -- or the ability to debug Chrome in it.


>>I prefer VS Code over native alternatives.

>That's because, as the parent said, there are no good (e.g. equivalent) native alternatives.

But that's not true. I use Sublime Edit and have happily used BBEdit and TextMate. Emacs is fine for many people, and I still use vim for fast edits in terminal mode all the time. There are plenty of other great native editors for just about all platforms.


BBEdit is excellent. So is Notepad++.


I prefer Sublime Text.


Do you mean, you cannot see anyone preferring an Electron app over a native app?


That's almost never the choice though is it? Who offers an Electron app and a native app?

So the choice becomes use an Electron app or something else entirely.


The choice is actually more interesting. Although big companies such as Slack potentially have resources to support development for multiple platforms, even they can implement new features faster due to Electron. Think about all those small teams that just wouldn’t be able to port their apps anywhere without it.

So in some ways I’d probably prefer a good Electron app.


For this, a mail client, I doubt there'd actually be much saving going native - it's going to need browser level HTML either way. So here Electron may have negligible cost. Thunderbird easily goes over 300M when it's been running a while for instance.

For other things I'm far less keen as Electron is often a sign of a needless memory hog - 100M pomodoro timers and such like.


Probably. Spark takes up around 200M on my laptop, so it's not that big of a deal.


Nobody, but many offer an Electron app for things where equally good native apps exist.


Not true. Look at the various Skype clients, e.g. for Linux. Memory usage ballooned after they wrote their Electron based client. It uses 4 to 5 times the amount of memory of the old Qt based client and idle CPU usage is through the roof, too. And it can't even handle long conversations smoothly.


Electron app versus using their website I guess. In which case I use their website.

But I agree, it's almost never a choice, but it's a hypothetical


All other things being equal of course not.


> All other things being equal

All other things will never be equal.


Absolutely equal no, or else it would be the same app. But that's contrived.

My point is that given two apps that both have the features a user considers "must have", few, if any, would pick the Electron one over the native, precisely because of the extra burden in cpu/memory/speed of Electron.


An electron-apps can use and call native code. I see Rust getting some attraction being bundled with electron apps. This should be a thing every electron app maker out there. Rust or otherwise.


You discounted an "all my friends voted for..." argument with a different "all my friends voted for..." statement.


Popular does not mean good. In fact, it often means the opposite.


Profitable?


Slack is probably the best example for a bad Electron application. So slow.


Totally agreed. I dare to download an Electron app these days. Some days I wish it was 1997 and all apps were native :)


Most end users don't know what Electron is.


They know what slow is though.


[flagged]


...another electron app that wouldn't exist if the UI has to be done with a GL based UI lib by a single person.


Why so?


> Show HN: I've spent the last 2 years building a new email client

Where is the corresponding "Ask HN: What requirements should I consider before writing a new email client?"


> "Ask HN: What requirements should I consider before writing a new email client?"

Oh boy. I've written a mail client [1] (two actually) and I've found that people have widely conflicting requirements.

Me? I wanted to replace mutt with something that was similarly console-based, and would use the same Maildir hierarchies.

Other people demand GUI access, sometimes with IMAP, sometimes with POP3, and sometimes (very rarely) with just local Maildirs.

If I were to begin again I'd probably abandon Maildirs, and instead just work via notmuch, or some other indexed-store. That would allow "virtual folders", and other neat things.

I don't think I've got the patience to start again though, as my current client is already the second version.

1 - https://lumail.org/


Is it mandatory to consult HN before starting on something new?


Why do you spend 2 year of your live to build a new email client? Aren't there enought software for this scope?


I have a side question for those who dislike electron apps (or prefer native):

1. Which OS do you use use? I'd love to know if it's skewed to a particular OS to know which platform to prioritize a native client.


It's not a client, when gmail changed it's TOS to use your messages, I wrote gpgmda. Found sup!? alot? notmuch.

https://github.com/jakeogh/gpgmda


Why do you spent 2 year of your live to build a new email client? Aren't there quite software per this scope?


It's unfortunate that this wasn't build with a cross-platform core, but native, first class UIs for each respective platform.

Edit: I realized this was worded very badly. I’m saying I wish this was written with a cross platform core, and native, platform specific UIs for each respective platform. For example, MS Office is written this way.


I'd personally think "amazing" is a better adjective than "unfortunate" here - the value of an e-mail client, at least to me, lies almost entirely in its user interface. If using a native stack can squeeze out a few more tidbits of usability here and there, that's a good job well done. There's still a lot of value in native if it's done properly.

Electron and similar technologies are in my opinion not quite at the point where they can compete with the best that native platforms can offer. I'm sure that will change one day, but we're not there yet.

GTK integration on windows and mac is also less than perfect - I've been using geany on multiple platforms a lot recently and it's a great tool, but there's small annoyances like that the "swipe to scroll" speed varies massively between it and Notepad++.


Whoops, see my edit. We’re totally advocating for the same thing - my wording was just very very bad :(


Notepad++ is also portable (can run from USB drive).

Electron apps' installation process is just madness. It breaks every convention. You can't even choose the install path FFS!

I think of Electron apps as BonziBuddy for today's hipsters.


?!

I would've said the same thing with joy!

From the title I was immediately hoping that this was not yet another bloated electron thing.


But how do you think this is bloat?


I don't need yet another Chrome installation on my PC, one is enough.


I’m with you. See my edit, and sorry for the confusing wording. It’s late


Native UIs are how you get fast and responsive applications that don't chew up memory and CPU.


He had 2 years not 5+


That is a matter of skills doing native UIs.


Yes, exactly! Not everyone has the hardcore skillset to make great cross platform software. So much so that even behemoths like Microsoft write electron apps to get work done.

He is using his web skillset to make a product that runs everywhere. If anything, this shows some serious good qualities in the developer that he wants to get the product to multiple people and not ponder over perfection.


Giving up 1% of performance every day will give you an app that is twice as slow.

I think its a trade-off between productivity and performance. This skillset used to be non-hardcore just a few years back, just like programming using ASM used to be a non-hardcore skillset before that. The middle ground could be managed languages like C# or Java.

>So much so that even behemoths like Microsoft write electron apps to get work done.

But getting work done != release code. Sure, everyone writes ugly hacks to get stuff done, but usually its either an internal tool or a temporary stop-gap.

>If anything, this shows some serious good qualities in the developer that he wants to get the product to multiple people and not ponder over perfection.

If you're competing with other mail clients that already exist (not identical clones, but more or less similar) , would you want to release something that works or something amazing that takes time, but also has a high chance of not succeeding? Depends on your philosophy. Some people choose the latter.


Actually I meant that 2 years should be enough as well not 5+, given the adequate skillset.

As for Microsoft, I think that have been invaded by JS devs on their way to re-invent and refresh the company's culture.

Regarding the OP, yes he should be appreciated by taking the effort of spending two years doing this software, it is just a pity that it yet another Electron app.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: