12 ms·
Nylas N1 – extensible open-source mail client
- mdeebz22 11y agothis is INCREDIBLY cool - have been waiting for this for a long time. Way to go team! nicely done!
- deleted 11y ago[deleted]
- grinich 11y agoHi HN-- Michael from Nylas here. We're super excited about this launch, and happy to answer questions about N1, including plugin architecture, design, features, etc. A few Nylanauts will likely hang out in this thread today. Would love to hear what folks think! :)
- zx2c4 11y agoHow "natively" does this deal with GMail? My experience with most non-google mail clients is that the GMail support is almost always broken or ugly in some way. Does it archive correctly? Label correct? Does it make use of GMail's IMAP extensions for doing the right things? If not, how does it work? What level of integration into the GMail workflow is there? I have for a long time desired a good desktop client for GMail, but all of them rely on an unacceptably bad mapping between IMAP and GMail idioms that I still have not found an acceptable one. How does N1 differ?
- grinich 11y agoYep, it does all the right things. All the "heavy lifting" here is done by the Nylas sync engine which works natively with Gmail labels, actions, search, etc. and those same semantics are exposed in N1. We've spent almost 2 years building the sync technology, so it's very stable and flexible. You can check out the IMAP code here: https://github.com/nylas/sync-engine https://github.com/nylas/sync-engine
- zx2c4 11y agoWow awesome. If this works entirely locally, this is something I've been looking for for a long time. I might wind up making command line utilities out of it. Or even apply for a Nylas job. Email is something I care about an awful lot. If, on the other hand, this makes use of some Nylas-hosted server, I'm a bit bummed out, since this would mean all my data is transferred through Nylas servers. Which is it? Or should I just bite the bullet and read the source?
- grinich 11y agoIt's both! Most users are fine with hosted infrastructure, so they don't need to run+maintain it themselves. But you totally can if you want. The code for the sync engine and API is here on GitHub: https://github.com/nylas/sync-engine https://github.com/nylas/sync-engine We're working on putting together a better doc that outlines how to set up the entire stack locally. Ideally this could even be a Docker container. And you should always read the source! ;)
- zx2c4 11y agoAnd N1 has some easy way of integrating with a locally hosted sync engine, spawning it at N1 startup, and shutting it down at N1 tear down? Or is it the sort of thing were I'll need to host my own infra running this sync engine, and then hand tweak some config file to connect to my infra instead of yours?
- grinich 11y agoProbably the latter-- though you can do it any way you want!
- rspeer 11y agoWhat about the aspects of Gmail that less obviously map onto things a client should do? Can it use Gmail's classification of e-mails as "important", "not important", "updates", or "promotional"?
- oDot 11y agoHi, congrats on launching! The FAQ sent me to the README for a completely-local installation instructions that I would like to try out, but they're not there. Where can I find them? Thanks :)
- grinich 11y agoA few things to get started here: https://github.com/nylas/N1/blob/master/CONTRIBUTING.md https://github.com/nylas/N1/blob/master/CONTRIBUTING.md Also, want to jump in our community Slack channel and chat with us? Getting a full environment set up can sometimes be a bit tricky and we can walk you through it. :) http://slack-invite.nylas.com/ http://slack-invite.nylas.com/
- alexcwilliams 11y agoVery nice client. The only issues I'm seeing are around HTML email rendering: https://www.evernote.com/l/AAI3x17h1EJCnZcbJV19q5AUB6G_vgOzI_Q https://www.evernote.com/l/AAI3x17h1EJCnZcbJV19q5AUB6G_vgOzI...
- grinich 11y agoWoah, that is totally busted. Can you create a GitHub issue with the email HTML? Or if you feel comfortable, forward it to support@nylas.com. Thanks! https://github.com/nylas/N1/issues/new https://github.com/nylas/N1/issues/new
- z1mm32m4n 11y agoThe three features that my ideal mail client has are: 1. ability to snooze emails 2. rich handling of things like calendar invites, flight reminders, attachments, etc. 3. Vim keybindings for message composition From other comments, it sounds like you're working on (2). How about (1) and (3)? I took a look at some of the documentation for plugins. Do these sound like features that could be easily added through plugins? For example, Atom has a package for Vim keybindings [1]. How far from has N1 diverged from "dropping Atom packages in"? [1]: https://github.com/atom/vim-mode https://github.com/atom/vim-mode
- bengotow 11y agoHey! I'm an engineer on N1 and I can talk about (1) and (3): 1. Snoozing emails would be great. You could totally do this client-side in a plugin using our current developer APIs, by moving snoozed threads to a label/folder, and then moving them back after a prescribed time. Might be a fun project! Feel free to ping us on our community slack channel if you want to try. 3. N1 uses the exact same package structure as Atom, but we're using the CommandRegistry less, and introducing our own UI layer concepts like the ComponentRegistry (for dynamically injecting React elements.) There are probably a handful of Atom packages you could load into N1, but probably only well-contained ones with very minimal UI. Our composer unfortunately doesn't share any code with Atom's text view - we needed to do rich HTML editing, so we wrote our own composer based on `contenteditable`. Vim keybindings for the composer are also a great idea. There's actually an API for creating `DraftStoreExtensions` (https://nylas.com/N1/docs/DraftStoreExtensions.html https://nylas.com/N1/docs/DraftStoreExtensions.html), and if you implement `onInput` in your extension you can probably re-create vim keyboard handling. Unfortunately, that's a bit low-level: right now, the composer is not as easy to extend as Atom's editor. We've put a lot more effort into extensibility of the thread / message panels and views. Enjoy! Feel free to reach out on the community slack channel if you have any other questions.
- wodenokoto 11y agoI looked at your webpage, and other than "beautiful layout and nice fonts" I had trouble finding any sales pitch towards end-users. Why should I download this client? What does it benefit me, that mail.app, outlook, mailbox or Thunderbird can't give me?
- ultim8k 11y agoGood question. * This mail client is hackable which can lead to many plugins created on this. * It is open source and if they embed the sync part in the app will ensure your data are safe. * And its design belongs to 2015.
- zx2c4 11y agoSource: https://github.com/nylas/n1 https://github.com/nylas/n1
- charlesdenault 11y agoI'm super excited about this. I'd love to see a serious collection of apps/extensions for the platform. I love the ecosystem around gmail, but I despise using their web-ui. I'd love to have the flexibility baked into a modern app. I've tried every email app and none of them cut it. They start off promising, but quickly degrade into feature-bloat (Airmail) or development is discontinued (Sparrow, Mailbox?).
- deleted 11y ago[deleted]
- natrius 11y agoGoogle has all my data, and that allows them to build incredible features for me, like Google Now and Inbox's automatic parsing of travel and event emails. I'd rather have all my data myself so I could pick great features from anyone who makes them. Nylas sounds like a part of the puzzle to make that happen. I wish you guys the best of luck.
- drdaeman 11y agoIf you want to have your data yourself, self-hosted mail system is a way to go. In terms of privacy, the experience is good. I must warn, though, it's quite unpleasant in terms of dancing pigs and bunnies[1]. You won't get anything fancy. The age of protocol development had passed long ago and mail protocols (IMAP) aren't evolving anymore. Almost all the modern stuff is proprietary to services and their APIs and clients. This limitation doesn't apply to mail filtering and automated parsing, though. Mail filters and processing for self-hosted email is way more powerful one can normally get with third-party services. [1] https://en.wikipedia.org/wiki/Dancing_pigs https://en.wikipedia.org/wiki/Dancing_pigs
- 9248 11y agoWhat do you mean by mail filters and processing? Is there anything fun I can get, may you point a few links for further reading? It happens that I'm right in the middle of configuring my own server. I've got only postfix and dovecot for now, nothing fancy yet.
- drdaeman 11y agoDovecot has great support for Sieve, which is a neat and fairly powerful scripting language for mail filtering: http://wiki2.dovecot.org/Pigeonhole/Sieve http://wiki2.dovecot.org/Pigeonhole/Sieve If this is not powerful enough, you can make sieve plugin invoke external program and pass it MIME-encoded email message for further processing. This way your server can, for example, add events to your calendar software or do the accounting based on receipt emails (and I forward my SMS to my IMAP server too) Before Sieve I've used tools like procmail (http://tldp.org/LDP/LG/issue14/procmail.html http://tldp.org/LDP/LG/issue14/procmail.html), although I'm currently only using Dovecot/Sieve setup for my own mail. Some servers I've configured, for example a DIY SMS gateway at the company I've worked for, use just postfix+procmail (+ custom bash and Python scripts). As for the spam filtering, I've had a good experience with rspamd (https://rspamd.com/ https://rspamd.com/), which is light on resources, integrates with Postfix quite nicely, usable out-of-box and is scriptable with Lua. Hope those few pointers would help.
- Jemaclus 11y agoDid anyone else get an email from Nylas that they never signed up for? I don't recall ever signing up for newsletters, so I'm curious as to how I heard about this in my inbox instead of on HN. Kind of annoying.
- craigmccaskill 11y agoThey use to be called inbox app, maybe you signed up for info before the name change?
- grinich 11y agoWe used to be called Inbox (www.inboxapp.com) but we changed the name last year (after Google shipped a product with the same name). You may have signed up then! Lots and lots of folks from HN certainly did. :)
- mfkp 11y agoI got the email this morning and was very confused as well, this makes sense. Maybe in the next email should write "Nylas (formerly inboxapp.com)", otherwise I'd imagine your unsubscribe rate is going to be very high.
- Jemaclus 11y agoYep, I already unsubscribed.
- Jemaclus 11y agoAh, that makes sense.
- ultim8k 11y agoNow this is big bold news! Kudos guys! I'm extremely excited!
- ar7hur 11y agoI've used the Nylas API for 9 months for my side project iOS email client. It works very well and the team is super responsive. Documentation is clear and complete. It makes it super easy to build any email client. Eventually though, I decided to stop using it because I'm not confortable with having all my messages stored by "one more" entity in the cloud. Back to good old IMAP with all the pain it brings. I'm often wondering if such an API could work in a full end to end encrypted mode, i.e. messages would be encrypted as they arrive before they are stored on the server, and only the client would have the key to decrypt them.
- 33degrees 11y agoI've recently started working on an application using email and was considering using Nylas but have hesitated for the same reasons as you. But IMAP is such a pain that I may go ahead anyway. Have you considered running their sync engine yourself?
- iuguy 11y ago> But IMAP is such a pain Any chance you could tell us what the pain is that you're experiencing with IMAP? I don't think I've ever had any problems with it, aside from offline (but for that there's POP) so I'm interested to hear your experience.
- tonyarkles 11y agoThere's two things primarily that burned me a few years ago when I was working on an MUA: 1. Message Identifiers/Primary Keys - if I recall correctly, IMAP doesn't have a way to definitively map a message and a unique identifier to the message in a way that is guaranteed to persist long-term. 2. Not exactly IMAP, but malformed messages. When I was working on this, I was using my GMail corpus, which goes back to about 2006 or so. Somewhere around 30-40,000 messages. Turns out it was a ridiculously good test case for parser robustness. Messages that claim to be ASCII-7bit, but have extended characters. Messages that claim to be UTF-8 but have invalid codepoints. Messages with malformed MIME headers. Messages with a text/plain section with garbage in it, while having a nicely formatted text/html section. Messages with embedded CSS that tries its hardest to blow yup on-screen display. I think that through the duration of the project, I only had to submit 2 PRs to the upstream net::imap ruby library, but damn were there a lot of heuristics in place to try to successfully grab an email from IMAP and display it on screen.
- drdaeman 11y agoBeware: from what I understood, this isn't a self-sufficient MUA in traditional sense, it's a thin client that offloads the interaction with the actual mail server to a remote system. That said, the credentials to access the mailbox are entrusted to a third party. > See the README for full instructions on setting up the sync engine, API, and N1 on your local machine. Sadly, there is no instructions in the linked document yet. I wonder, can the sync engine and whatever else be bundled with a client, so it'd be a self-sufficient standalone piece of software?
- e0m 11y agoCheck out https://github.com/nylas/N1/blob/master/CONTRIBUTING.md https://github.com/nylas/N1/blob/master/CONTRIBUTING.md We've added (and are continuing to add) more documentation about how to get the open source sync engine setup.
- kstenerud 11y agoActually, I kind of like this. It means I can run a dockerized backend that will keep a copy of all my email from various servers and present it uniformly to any N1 client I happen to be using. Existing email protocols aren't nearly that flexible.
- grinich 11y agoHere's what you need to install to run the entire stack locally: https://github.com/nylas/sync-engine https://github.com/nylas/sync-engine Sorry-- launch day craziness :) More docs to follow soon!
- devit 11y agoI don't quite understand how the business model of the Nylas platform that this client depends on works. Since it provides up to 10 accounts for free, it looks like that end-users (for whom 10 accounts are more then enough) are not supposed to be the paying customers, but rather other companies that want to integrate with Gmail, etc. But... does this mean that these companies are supposed to encourage the user to connect their e-mail accounts to the company's Nylas platform account, thus giving Nylas all the user's e-mails and weakening e-mail privacy even more? Or is the business model something else...?
- wanderfowl 11y agoWe're not paying for it, so we can only assume that we (or more likely, all of our emails) are actually the product here.
- zeromantic 11y agoOr it could become an e-mail version of the google play store.
- grinich 11y agoNylas CEO here-- we build infrastructure that powers apps and developers pay us to run it (like AWS). Check out a few here: https://www.nylas.com/use_cases https://www.nylas.com/use_cases N1 is a new platform, and fits within our free usage for developer accounts. Paid features (potentially via paid plugins) are coming later. For now, we're focused on ironing out the UI/UX bugs, scaling onboarding system, and opening the codebase to developers. We're a product company, not an advertising company. We have no plans to sell user data or build the kind of targeting/tracking systems used by Facebook and Google. Our goal is to build rich new experiences and tools on top of email that empower developers and end-users. Privacy and security are obviously hugely important to us, and we know that it's our job to earn your trust every day. It's one of the reasons we've open sourced nearly all of our codebase. We make money to continue developing this product. Does that make sense? Happy to dive in more if you'd like, or you can ping me directly: mg@nylas.com
- tapoxi 11y agoAny hope for an RPM or Yum repo for us Fedora users?
- spang 11y agoYep, the only reason we didn't have one for launch is a lack of time. :) You want to help? First step is making sure `script/grunt mkrpm` works from https://github.com/nylas/N1 https://github.com/nylas/N1!
- kawera 11y agoTerrific job, congrats to all the team! Curious to know why you choose MySQL and not PostgreSQL.
- grinich 11y agoHonestly, the main reason is that I previously worked at Dropbox and knew we could reliably throw ~petabytes at MySQL. Or at the very least, when we started scaling I could call my friends from Dropbox and Facebook to help out. :) Most of our complexity is in the sync later, so we spend more time tuning our Python sync server. For example, we wrote a custom statistical profiler: https://nylas.com/blog/performance https://nylas.com/blog/performance
- masida 11y agoHow hard would it be to create a backend for PostgreSQL? I'm currently in doubt to move to either Mailpile or your platform on my personal server. However, PostgreSQL would be a big plus for your platform, since I don't have any experience with MySQL in recent years, and I rather do not run it on my VPS just for mail.
- spang 11y agoWe saw some folks start working on PostgreSQL support here: https://github.com/nylas/sync-engine/pull/132 https://github.com/nylas/sync-engine/pull/132 It's not something we're likely to support officially in the near future since we don't run PostgreSQL and don't have the ability to test it well with production loads, but it'd be neat to see a working community fork.
- grandalf 11y agoI've been using Mailbox by Dropbox for a while and it's still very rough, not even beta quality by Google standards. Most frustrating is that search doesn't work at all. I have multiple accounts, but if I didn't I would still prefer the gmail web interface to any thick client app I've used (so far).
- polpo 11y agoIs JMAP [1] support on the roadmap? Once email providers (namely Fastmail, who wrote the spec) start supporting it, of course. [1] http://jmap.io/ http://jmap.io/
- spang 11y agoWe'll consider JMAP support if it reaches widespread adoption. For now, it wouldn't add much value, and we have a lot to build!
- deleted 11y ago[deleted]
- cjbprime 11y agoCongrats, this is great! What's the Nylas story for mobile?
- grinich 11y agostay tuned ;)
- nicksergeant 11y agoI love this and want to try it, but I find it strange that they emailed me to tell me about it being available, when I can't actually use it without an invite code.
- grinich 11y agoIt was available when we sent out the newsletter. Turns out we got a bigger response than we were expecting! Hopefully invites will go out over the next few days. Thanks for your patience.
- brianjking 11y agoInterested...hesitant though with the idea of giving up more access to my private files. Signed up, looks like I hit a waitlist.
- mundanevoice 11y agoMutt FTW :D
- spang 11y agoI used mutt until I started this company, so I couldn't agree more. :) Reading HTML emails piped to w3m gets kind of old after a while though!
- fredoliveira 11y agoIt gets about as old as mutt, one might even say ;)
- grinich 11y agoHey folks-- sorry about the invite system. I know we sent out download links, but it turns out way more folks have signed up than we originally planned. Relatedly, if any experienced devops/sre folks are looking for a new job, please ping me. ;) mg@nylas.com
- numbsafari 11y agoPlugins via JS ... another sad day for GNU Guile. ;-)
- 4tacos 11y agoI'd pay for this....
- humility 11y agoCongratulations and thanks, had been looking for one for eons now. Looks promising!
- anonbanker 11y agoThis looks like a fantastic roundcube or rainloop competitor. Thank you!
- kstenerud 11y agoDamn. Was hoping I could just build it myself, but the bootstrap script is broken. ---> Cleaning apm via `apm clean` dyld: lazy symbol binding failed: Symbol not found: _node_module_register Referenced from: /Users/karl/tmp/N1/apm/node_modules/atom-package-manager/node_modules/keytar/build/Release/keytar.node Expected in: dynamic lookup dyld: Symbol not found: _node_module_register Referenced from: /Users/karl/tmp/N1/apm/node_modules/atom-package-manager/node_modules/keytar/build/Release/keytar.node Expected in: dynamic lookup /Users/karl/tmp/N1/apm/node_modules/atom-package-manager/bin/apm: line 28: 27072 Trace/BPT trap: 5 "$binDir/$nodeBin" --harmony_collections "$binDir/../lib/cli.js" "$@"
- bengotow 11y agoHey kstenerud, Thanks for checking out N1! I work on the client. Unfortunately `keytar` is a bit of a nasty module. Try using `nvm` to run script/bootstrap with Node 10.x. I think this might be the issue you're seeing: https://github.com/atom/apm/issues/195 https://github.com/atom/apm/issues/195. If you run into anything else, feel free to ping us on the Nylas Community slack channel (http://slack-invite.nylas.com/ http://slack-invite.nylas.com/)
- ori_b 11y agoIs it too much to request a modern mail client that supports threads in the UI? I find it hard to follow conversations without some form of visual indicator of who replied to what within a thread.
- favadi 11y agoSometimes I wonder how people can use mailing list without thread view, it is a mystery for me. :)
- grinich 11y agoYeah, it's a tough design decision (assuming you mean nested threads HN-style). We may add something like that soon. I agree that it's superior in some situations. But most folks are familiar with Gmail, so we opted for linear threading for the first release. Would love to see a plugin (or several) that explore new thread UIs! Here are a few you can look at to get started: https://nylas.com/n1/examples https://nylas.com/n1/examples
- pbreit 11y agoThe only feature I really care about these days is automatically grouping "important" and "non-important" emails (and notifying on important).
- grinich 11y agoWe expose Gmail's Important and non-Important via labels in the UI. And you can write your own plugin to sort mail based on any heuristics you want!
- j0hnM1st 11y agoTried the documentation for setting up the sync-engine, I must say its bit confusing. Can we install on say, on a AWS VM ?
- spang 11y agoYou can, but remember the sync engine doesn't provide any authentication layer by default, since people use it in so many different ways. You'll want to run it proxied behind some sort of authentication service. (With AWS, you can do this with different subnets via VPC.)
- arsalanb 11y agoFinally! Always wanted something like this! It looks beautiful! Sorry if this sounds to flimsy but how an app looks is probably a huge factor for me to consider using it. This always pushes me away from open source because they aren't designed (visually) as properly as their proprietory counterparts. Love this project!
- grinich 11y agoTotally agree-- thanks for checking it out! :)
- stuaxo 11y agoKind of reminds me of Geary.
- ashemark 11y agoHi, do you plan on putting together a pkgbuild for arch linux based systems?
- spang 11y agoI don't expect that we'll have time to put this together officially very soon. If you'd like to help though, the best way would be to figure out how to get N1 building on arch from the open source repo!
- tylermenezes 11y agoHere's a PKGBUILD that works for me: https://gist.github.com/tylermenezes/c1934bf72e4db8816690 https://gist.github.com/tylermenezes/c1934bf72e4db8816690 I can't fully test it yet since I don't have an invite. It starts up, though.
- sam_goody 11y agoFirst, we had SquirrelMail and its ilk. Then, Roundcube became the standard. Their dominance is being eroded by Mailpile, RainLoop, and Nylas. Around the edges, we have Peps[1], Mailr[2] & Kite[3] which may all someday take off. Zimbra and the well known groupware vendors (OnlyOffice, Horde, Citadel, Kolab) are competing in more-or-less the same space. Probably dozens of other projects that are on the same level that I have never even heard of. I would love some sort of comparison, even a biased one written by the respective teams. Anyone have useful links? [1] https://github.com/MLstate/PEPS https://github.com/MLstate/PEPS [2] http://pusto.org/en/mailr/ http://pusto.org/en/mailr/ [3] http://khamidou.github.io/kite/ http://khamidou.github.io/kite/
- grinich 11y agoKarim, who built Kite a few years ago, is actually now an engineer at Nylas :) https://nylas.com/about https://nylas.com/about
- jbb555 11y agoI thought this looked nice until I saw that it's not an email client at all, it's an interface to a backend service. Sure, you can get the backend and run it yourself but who wants to do that. Pity, it looked nice.