89 karma · joined July 22, 2018
Currently building: https://marcoapp.io
IMAP _seems_ to be a straightforward (but nasty and stateful) protocol, until you find out that every major provider ignores RFCs and does things slightly differently.
It's a hellscape.
The fix is surprisingly straightforward: own your domain, use a provider that focuses on email, and keep your client separate from your provider. Standard IMAP means all three pieces are interchangeable. If one fails, swap it out.
(I work on Marco [0], an IMAP email client. The number of people looking to decouple from Gmail/Google has been growing steadily, definitely a current trend.)
We're building a cross-provider, cross-platform email client, and literally had to build special cases for all Gmail actions:
The upside is that it's fast... The downside is that it's NOT IMAP!
Especially these days, you could vibe-code something an order of magnitude better within a day or two and not be locked into a single author's rat's nest of code.
Just curious, if this is a completely greenfield project, why IMAP instead of JMAP?
This is coming from someone who works with IMAP on a daily basis and has rightfully grown a disdain for it.
I hear you on that. I'd even go a step further and say Apple Mail on desktop is a joke too.
That led me to build Marco, an IMAP‑primitive, offline‑first, cross‑platform email client for web, iOS, and macOS:
I've got 100k+ threads in my inbox and full text search is single digit ms.
IMAP search itself is unusable. SQLite on the other hand...
I've written about my experience and motivations here:
https://marcoapp.io/blog/marco-an-introduction
Gmail does indeed _intentionally_ provide poor IMAP service. But the long and short of it is that Apple Mail simply isn't a first-class product. It's an afterthought.
Shameless plug for a client with true offline-first IMAP support: