Ask HN: What might be the future of open-source offline-first email apps?

27 points by mwcampbell ↗ HN
Most people are happy to leave email to the big players, most notably Gmail. But many of us would like this aspect of the Internet to remain meaningfully decentralized, as it was in the beginning. And some of us would prefer not to rely on proprietary software for this crucial task.

Probably the most well-known open-source email application is Thunderbird. But it's clearly on life support, and at least in my experience, it has never been very robust. Plus, it's an old-school desktop application, and while some of us (myself currently included) prefer that, most people prefer to do email in a web browser and on a mobile device.

There are open-source webmail applications like Roundcube, but at least last time I looked, they required frequent round trips to the server, albeit with some JavaScript enhancement. In modern parlance, they're not offline-first.

So is there already a good open-source, offline-first email application that can run on multiple platforms (i.e. not something like K9Mail for Android)? If not, what might be the best way to go about developing one? I'm guessing the best starting point would be the email application from Gaia [1], part of the now abandoned Firefox OS.

[1]: https://github.com/mozilla-b2g/gaia

18 comments

[ 12.9 ms ] story [ 624 ms ] thread
Mutt. http://www.mutt.org

"All mail clients suck. This one just sucks less."

I always felt that mutt was needlessly difficult to configure.
With great power comes great configurability.

You only have to do it once.

I'm surprised to hear that. Mostly configuration comes down to pretty much three steps:

* Define where the mail lives (~/Maildir vs. IMAP, etc).

* Define your personal details (sender-address, your name, your sig, etc).

* Define a couple of settings for your preferred editor, and your colours.

Further customization is possible, endlessly, but unless you seek out such things I'd expect most people to be "done" in only a few minutes.

Mutt is for Vim users, Gnus is for Emacs users.

"No gnus is bad news"

My own mail client is strongly inspired by mutt, but features integrated, and complete, scripting support provided by Lua.

https://lumail.org/

My approach is to make a modal mail-client, such that you're always in one of a small number of modes (folder-list, message-list, message-view) which I think makes things nice and clean, but your opinion might differ.

Expect a new release in the next week or two with threading support, again provided entirely by Lua (and contributed by a user!)

Use offlineimap to synchronize your mail. Then use whatever client (webmail or otherwise) running on your local machine.
Offlineimap is slow and buggy; use mbsync instead.
Android's standard mail application talks IMAP to mail servers just fine. It doesn't do much, but it does work well.
I've been using Kmail and I'm really happy with it. I have Gmail/Inbox on my phone and sometimes I use them on the web but Kmail is still my favorite.

It was quite unstable for a few years, but it's solid these days.

Why does it need to run on multiple platforms?

I kinda of gave up on desktop email readers since all of the ones I knew started to suck. I use open source webmail now on my desktops, and K9Mail on Android. Those several round trips to the server aren't a problem, but those webmail servers really aren't as sleek as the desktop clients used to be - the filters don't work ass well, it's hard to integrate with spam filtering, there are many less options for converting text, autoanswering, ordering...

On where to go, well, I do have plans of writing a mail client. But right now I'm focusing on finishing my mail server.

I've found CLI clients built upon Notmuch are quite nice.

Notmuch is an email indexing system. It provides the "full-text search" part. It has an emacs interface and a CLI interface similar to Mutt. If you prefer, it can also integrate with Mutt.

To get emails into your machine, use offlineimap or mbsync, which integrate with the above.

To send emails, use msmtp, which integrates with the above.

This setup has worked well for me for years. Millions of emails can be indexed and searched offline as fast as GMail's search.

As a long time user of Thunderbird, I'm also I'm a big fan of Aquamail. It's probably the richest feature mail client I've found on Android. The developer is incredibly responsible, and it is very performant to the point that I prefer it even on a tablet over anything else.

If it could be available to run on a desktop easily, there might be something to hold me over.

Thunderbird has one piece of robustness that most desktop email apps do not - you can transfer email between laptops and versions of their software. I used apple mail pretty happily for a while until I discovered the dreaded incompatible databases.

If I was to look forward, People are going to start to have more and more email like many of us do already. I'd probably want a tool that uses the best of the established back end mail tech and something multi platform and one code base.

If there's a tool that uses standard java or python libraries that are pressure tested already for backend, and perhaps a front end built in something like electron I'd be seriously interested. As much as I feel I have no other option to use other than Thunderbird as a desktop client across my accounts (google, exchange, etc)

I'd highly recommend checking out Nylas N1 (https://github.com/Nylas/N1). It's beautiful, cross platform (Mac, Windows, Linux) and extensible via a plugin architecture borrowed from Atom. Nylas is currently working on a version that doesn't require the backend "Nylas Cloud" APIs and will connect to IMAP / Exchange directly.

(disclosure: I was the Nylas N1 team lead from 2014-Dec 2016.)

This was a post about offline-first clients, and N1 requires the sync engine to function (which I suppose can be run locally if wanted but you lose some features. )