EmailEngine vs Nylas

From time to time, people who are looking for alternatives to their current email API vendor, usually Nylas, ask if EmailEngine could be a replacement. Both provide easier access to email accounts via an API. Is EmailEngine cheaper, maybe a more limited version of Nylas?

So, is EmailEngine an alternative to Nylas?

Though seemingly similar, I usually advise people to reconsider. The similarities are mostly superficial. Yes, both have an API, but the system behind it is entirely different. Using EmailEngine as a drop-in replacement will probably only cause frustration instead of whatever the initial goals were.

For starters, the most obvious one – Nylas is a managed service, while EmailEngine is a software you download and run on your premises. The less obvious while even more important difference is how these services handle email messages.

Nylas supports a variety of email backends, while EmailEngine supports only the most common one – IMAP. If you expect to provide services to sales teams on old Exchange systems without IMAP support, this is a deal-breaker for EmailEngine.

Nylas makes copies of all the emails on synced accounts to their database. EmailEngine, by default, only keeps a local index without any message content. Nylas retrieves the requested info from their local database when you run an API call, while EmailEngine has to run IMAP commands against the IMAP server.

If you enable the Document Store option for EmailEngine, which would keep a local cache of all emails in an ElasticSearch cluster, then for message retrieval and listing queries, EmailEngine would work similarly to Nylas. All write operations and attachment requests would still go directly against the IMAP server.

Also, EmailEngine is slower for many operations than Nylas because it can only run a single command at a time against the same account on the IMAP server.

If you make five parallel API requests against the same synced email account, that require running commands against the IMAP server, then EmailEngine does not process these requests in parallel. Instead, it queues these and processes requests one by one. If one of these requests takes a long time to complete, all the other pending requests are on hold and could even time out.

Feature-wise, there is a bunch that EmailEngine is missing and probably will never have. EmailEngine does not detect plane ticket information or the general sentiment of the email content. All these would be on your own.

So I would say that EmailEngine is more of a DIY solution. You are responsible that it is up and running. Or the Redis database that powers EmailEngine's index is appropriately backed up. Or, if you decide to use the Document Store for faster response times, you also are responsible for managing the ElasticSearch shards and indexes. You also have to consider the limitations when running parallel requests, etc.

So given all that, EmailEngine being somewhat slower in responding and having fewer features, is there any reason to consider it over Nylas?

– If your application mainly acts on webhook notifications. Even though message processing with EmailEngine might be slower, you will get webhooks faster from EmailEngine than from Nylas, as there is no processing step in between. As soon as the email server lists a new email or an email is deleted or updated, EmailEngine will send a webhook without delay.

– EmailEngine is much easier to start with (download and run). As EmailEngine would be running on your machine when developing, there is no need for webhooks tunneling or any advanced setup as it's all local. For development, you can even disable authentication to write those curl commands by hand. All you need to remember would be the following, that's it:

$ curl localhost:3000/v1/accounts | jq

– EmailEngine gives better control as you would know what kind of user data and where exactly your service stores.

– EmailEngine is also way cheaper. You can run as many EmailEngine instances and sync as many email accounts as you want for the fixed yearly subscription price. If you already manage some servers, and running EmailEngine would not add additional overhead, EmailEngine could be ten or even twenty times cheaper than Nylas (not including the hosting costs).

Nylas does not have public pricing. Interviews with customers who have switched from Nylas to EmailEngine indicate that for 100 email accounts, it is around $5k per year, each additional account priced separately. With EmailEngine, you can process thousands of email accounts at no extra cost. Even considering the server costs, there is no setup configuration where Nylas would be cheaper than EmailEngine, or even close.

– When running queries against the Document Store, not IMAP, to fetch messages, there is no rate limiting. You can run as many requests as your servers can handle.

The catch, and also another difference with Nylas, is that you're mostly on your own. I'm a single-person operation, and there is no customer success team to help set up the integrations. The upside is that all customer issues will land at the person who actually builds the thing, not on a support person in a three-tiered support organization.

Are there companies who have moved from Nylas to EmailEngine? Yes, there are a few. There are also hybrid setups, where some accounts are kept on Nylas and some on EmailEngine.

Do you want to hear more about EmailEngine? Join our Discord channel.