d92506d8f1
Summary: Addresses T7275 Previously, we kept track of the sync status of each API model, and the progress we'd made syncing all available models (e.g. all threads, messages, events, etc) Given K2's set up, we are now keeping track of sync status per folder, i.e. what percent of the folder's messages we've synced. This status is now reported from K2 to N1 via folder object deltas, and this commit rewrites the NylasSyncStatusStore (in ES6) to reflect that. The new Store keeps the sync state per account, which is the merged state of per folder sync state, and delta connections state. We also got rid of `CategoryStore.whenCategoriesReady` in favor of `whenCategoryListSynced`, which is derived from the fact hat as long as we've started syncing one folder, we've already synced the entire list of of folders/labels. There are a couple of TODOs to be addressed in upcoming diffs: - T7329 Restore the sidebar component to show sync progress, which was previously removed - T7330 Figure out how to report sync progress per label, specifically, we are interested in knowing how much of the inbox we've synced, which is a label in Gmail. (This might be a non-issue if we sync the inbox very fast, first) Depends on D3514 Test Plan: Manual Reviewers: mark, evan Reviewed By: evan Differential Revision: https://phab.nylas.com/D3515 |
||
---|---|---|
apm | ||
build | ||
docs | ||
dot-nylas | ||
flow-typed | ||
internal_packages | ||
keymaps | ||
menus | ||
script | ||
spec | ||
spec_integration | ||
src | ||
static | ||
.eslintrc | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
.watchmanconfig | ||
appveyor.yml | ||
CHANGELOG.md | ||
CONFIGURATION.md | ||
CONTRIBUTING.md | ||
ISSUE_TEMPLATE.md | ||
keymap.json | ||
LICENSE.md | ||
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.
![GitHub issues On Deck](https://badge.waffle.io/nylas/N1.png?label=on deck&title=On Deck)
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. On Arch Linux, you can install n1 or n1-git from the aur.
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 five 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.
Themes
The Nylas N1 user interface is styled using CSS, which means it's easy to modify and extend. N1 comes stock with a few beautiful themes, and there are many more which have been built by community developers
Bundled Themes
- Dark
- Darkside (designed by Jamie Wilson)
- Taiga (designed by Noah Buscher)
- Ubuntu (designed by Ahmed Elhanafy)
- Less Is More (designed by Alexander Adkins)
Community Themes
- Arc Dark
- Predawn
- ElementaryOS
- Ido—Polymail-inspired theme
- Solarized Dark
- Berend
- LevelUp
- Sunrise
- ToogaBooga
- Material
- Monokai
- Agapanthus—Inbox-inspired theme
- Stripe
- [Kleinstein] (https://github.com/diklein/Kleinstein)—Hide the account list sidebar
- BoraBora
- Honeyduke
- Snow
- Hull
- Express
- DarkSoda
- Bemind
- Dracula
- MouseEatsCat
- Sublime Dark
- Firefox
- Gmail
- Darkish
To install community themes:
- Download and unzip the repo
- In Nylas N1, select
Developer > Install a Package Manually...
- Navigate to where you downloaded the theme and select the root folder. The theme is copied into the
~/.nylas
folder for your convinence - Select
Change Theme...
from the top level menu, and you'll see the newly installed theme. That's it!
Want to dive in more? Try creating your own theme!
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 Plugins
Great starting points for creating your own plugins!
- Translate—Works with 10 languages
- Quick Replies—Send emails faster with templates
- 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
Note these are not tested or officially supported by Nylas, but we still think they are really cool! If you find bugs with them, please open GitHub issues on their individual project pages, not the N1 repo page. Thanks!
- Jiffy—Insert animated GIFs
- Weather
- Todoist
- Unsubscribe
- Squirt Speed Reader
- Website Launcher—Opens a URL in separate window
- In Development: Cypher (PGP Encryption)
- Avatars
- Events Calendar (WIP)
- Mail in Chat (WIP)
- Evernote
- Wunderlist
- Participants Display
When you install packages, they're moved to ~/.nylas/packages, and N1 runs apm install on the command line to fetch dependencies listed in the package's package.json
Configuration
You can configure N1 in a few ways—for instance, pointing it to your self-hosted instance of the sync engine or changing the interface zoom level. Learn more about how.
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.