Summary: The old approach we were using to track unread counts by category was really complicated because it involved computing changes to counts in javascript and then syncing them back to the database, from each process that was making queries. Rather than try to fix that, this diff moves us to a new approach where the counts are maintained by executing a query before and after threads are modified to unapply / reapply them from the counters. Doing this in the database in the same transactions as the thread modifications themselves ensures the counts are internally consistent with the Threads table. This SQL approach is also able to compute initial counts way faster - initializing totals and unreads in a 1GB edgehill.db in about 1 second on my machine. Test Plan: All old tests removed, new tests coming Reviewers: evan, juan Reviewed By: juan Differential Revision: https://phab.nylas.com/D2757 |
||
---|---|---|
apm | ||
build | ||
docs | ||
dot-nylas | ||
examples | ||
internal_packages | ||
keymaps | ||
menus | ||
script | ||
spec | ||
spec_integration | ||
src | ||
static | ||
.eslintrc | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
CHANGELOG.md | ||
CONFIGURATION.md | ||
CONTRIBUTING.md | ||
ISSUE_TEMPLATE.md | ||
LICENSE.md | ||
N1.sh | ||
package.json | ||
README.md |
N1 is an open-source mail client built on the modern web with Electron, React, and Flux. It is designed to be extensible, so it's easy to create new experiences and workflows around email. N1 is built on the Nylas Sync Engine which is also open source free software.

Want help build the future of email? Nylas is hiring!
Download N1
You can download compiled versions of N1 for Windows, Mac OS X, and Linux (.deb) from https://nylas.com/N1. You can also build and run N1 on Fedora. A Fedora distribution is coming soon!
Build A Plugin
Plugins lie at the heart of N1 and give it its powerful features. Building your own plugins allows you to integrate the app with other tools, experiment with new workflows, and more. Follow the Getting Started guide to write your first plugin in 5 minutes. To create your own theme, go to our Theme Starter guide.
If you would like to run the N1 source and contribute, check out our contributing guide.
Plugin List
We're working on building a plugin index that makes it super easy to add them to N1. For now, check out the list below! (Feel free to submit a PR if you build a plugin and want it featured here.)
Bundled Themes
- Dark
- Darkside (designed by Jamie Wilson)
- Taiga (designed by Noah Buscher)
Community Themes
- Predawn
- ElementaryOS
- Ubuntu
- Ido — Polymail-inspired theme
- Solarized Dark
- Berend
- LevelUp
- Sunrise
- Less Is More
- ToogaBooga
- Material
Bundled Plugins
Great starting points for creating your own plugins!
- Translate — Works with 10 languages
- Quick Schedule — Show your availability to schedule a meeting with someone
- Quick Replies — Send emails faster with templates
- Send Later — Schedule your emails to be sent at a later time
- Open Tracking — See if your emails have been read
- Link Tracking — See if your links have been clicked
- Emoji Keyboard — Insert emoji by typing a colon (:) followed by the name of an emoji symbol
- GitHub Sidebar Info
- View on GitHub
- Personal Level Indicators
- Phishing Detection
Community Plugins
- Jiffy — Insert animated GIFs
- Weather
- Todoist
- Unsubscribe
- Squirt Speed Reader
- In Development: Cypher (PGP Encryption)
Running Locally
By default the N1 source points to our hosted version of the Nylas Sync Engine; however, the Sync Engine is open source and you can run it yourself.
Feature Requests / Plugin Ideas
Have an idea for a package, or a feature you'd love to see in N1? Check out our public Trello board to contribute your thoughts and vote on existing ideas.