Hm, we're too deep it seems. So replying to myself.

> You must be aware that notmuch is only the search backend, and for a full MUA you need frontends.

Absolutely. I tried to imply that with my wry parenthesis; but it's absolutely worth pointing out clearly to unwary readers. In no way is it fair to either notmuch or sup to compare the two as equals.

I'd probably lean towards mutt-kz[mk] for an out-of-box "notmuch" mua (but... mutt. Meh ;-) There's also "alot"[a].

> Another contender in the space (label- and search-centric) is mu and its ui, mu4e [1]. Something else to have in mind.

Right. See also:

http://dev.gentoo.org/~tomka/mail.html

Recently discussed on hn:

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

> Now if you want something that works on desktop and mobile, something worth a look would be using SQLite and its built-in full-text search... see how far you can go with that. SQLite is available pretty much everywhere, Android even allows full-text search. Now what you have to do is synchronize SQLite dbs. It "shouldn't" be too hard to remove old emails from the db so you can keep X MB worth of it. You can even shoehorn it into couchbase-lite [3][4] so that sync is automagically taken care of.

I've considered sqlite for some of these reasons. But couchbase-lite != sqlite, right? (Or does it use sqlite in a meaningful way; ie: can/should one use sql to interface with the stored data?). Btw, looks like you're off-by-one, in your references ;-)

If using sqlite, there are a couple of schemas one might use for inspiration, such as dbmail:

http://dbmail.org/dokuwiki/lib/exe/fetch.php/dbmail-er-model...

Or archiveopteryx:

http://archiveopteryx.org/db/schema

The main sticking point, is do we really want(need) to re-index everything everywhere, how do we transparently do search local-first, while supporting hits from the server along with fetching hits/mails that are missing locally (what k9 calls "cloud search") - how do we consolidate/sync data (the two hard things in computer science is caching and naming things...).

I'm not entirely convinced sqlite+built-in full text search is the best approach (I envision a useful search across some gbs of mailing list threads -- not convinced about the ranking -- but I could very well be the victim of premature optimization. And I'm a little wary of abandoning maildir for storage (on the server) -- but that might be useful anyway.

> JMAP looks cool (definitely more interesting to implement than IMAP) but it seems to be more a query API than a sync API, although there are facilities to "get changes since last time" (a HUGE improvement from IMAP as deployed everywhere).

Yes, that's pretty much what I gathered from the heliotrope story, that syncing was a bit of a mess.

> OTOH if you can shoehorn it into couchbase-lite, you can use a generic sync protocol that can be used for other things too (caldav/carddav).

Exactly. All the hard work done! For free! But seriously, couchdb was born from the ashes of lotus notes, and at least in spirit it was made for this kind of stuff... so couchdb sync, and some kind of half-assed search might be the way to go (on the server, elastic-search would probably work fine... not sure about on something like Android).

> Heck, you've piqued my curiosity, I see something doable here. I'd love to hear more. I might even hack something just for fun.

Great :-) If you do, please feel free to drop me an email (see profile).

[mk] https://github.com/karelzak/mutt-kz
[a] https://github.com/pazz/alot