- This fixes unresponsive draft items in the draft list, i.e. draft windows would not reopen after opening them the first time. - The `beforeunload` handler will no longer hide a window before its actually closed. To reduce visible latency when closing, we moved saving window state to the `unload` event handler. - Before unload was hiding the window before actually closing it. A hidden window causes chromium to throttle its renderer process for performance, even though `pageVisibility` was set to true (see https://github.com/atom/electron/issues/3225 for more detils). NylasEnv.finishUnload is used in this context: When a `beforeunload` callback prevents the window from closing, it can close it at some point in the future using finishUnload. NylasEnv.finishUnload uses _.defer to make sure we don't call `close` inside the `beforeunload` call stack so the window doesn't go crazy. However, since _.defer was being called in the renderer process of a hidden window, the deferred callback execution could end up delayed by a second or more, which effectively delayed closing the window by a second. If we tried to reopen a window with the same window props, e.g. a draft window, before it was actually closed, the app would go crazy and wouldn't open it. So now we just don't hide windows on beforeunload |
||
---|---|---|
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 | ||
CONTRIBUTING.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.
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.
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.)
Themes
- Dark -- (tutorial here)
- Taiga -- Mailbox-inspired light theme
- Predawn
- ElementaryOS
- Ubuntu
- Material (preview)
- Ido -- Polymail-inspired theme
- Wattenberger
- Solarized Dark
- Berend
- LevelUp
Composer
- Translate -- Works with 10 languages
- QuickSchedule -- Quickly schedule a meeting with someone
- Templates -- Also sometimes known as "canned responses"
- Jiffy -- Insert animated Gifs
- In Development: PGP Encryption
Sidebar
Navbar
Threadlist
Message View
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.