💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Go to file
Ben Gotow 215fa0e4cb fix(initial-sync): When an error is encountered, do not start fetching from zero again
Summary:
Previously, when an error was encountered during initial mailbox sync we just started it
over after a retry delay. Recent API uptime issues mean that this was happening often and lots of
people were seeing sync retry many times. This is bad because the app is less performant while
it's syncing mail, and also generates unnecessary load as the app re-fetches threads it already has.

In this diff, there are new specs and functionality in nylas-sync-worker to start fetching
where we left off. This is typically going to be OK because the default sort ordering of the
threads endpoint is newest->oldest, so if new items have arrived since we started fetching
and page boundaries have changed, we'll get duplicate data rather than missing data. Connceting
to the streaming API as soon as we start the sync also ensures that we roll up any changes to
data we've already paginated over.

Test Plan: Run tests

Reviewers: drew, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2132
2015-10-08 19:02:54 -07:00
apm Update APM to 1.1.1 2015-10-06 23:35:03 -04:00
build Upgrade to Electron 0.30.8. Remove unsused packages. Upgrade deps 2015-10-07 16:52:49 -07:00
docs actually no more gh-pages 2015-10-05 05:08:53 -07:00
dot-nylas fix(onboarding): Invitation code system, just in case 2015-10-04 16:49:41 -07:00
examples fix(send-availability): Make the package load into popout composers 2015-10-07 11:45:46 -07:00
internal_packages fix(initial-sync): When an error is encountered, do not start fetching from zero again 2015-10-08 19:02:54 -07:00
keymaps rename(Nylas Mail): Replace Nylas Mail > N1 2015-09-29 09:44:30 -07:00
menus feat(dev-mode): Toggle dev mode, sticky through restarts 2015-10-03 19:04:19 -07:00
script Upgrade to Electron 0.30.8. Remove unsused packages. Upgrade deps 2015-10-07 16:52:49 -07:00
spec fix(auth): Resize the auth window after an update to the token status 2015-10-06 17:58:07 -07:00
src feature(feedback): move feedback to a package, indicator for new msgs 2015-10-07 13:55:54 -07:00
static feature(feedback): move feedback to a package, indicator for new msgs 2015-10-07 13:55:54 -07:00
.gitignore ignore gh-pages files 2015-10-02 14:47:33 -07:00
.travis.yml Add basic travis-ci integration 2015-10-05 23:59:43 +02:00
CONTRIBUTING.md Merge pull request #50 from lukegb/patch-1 2015-10-07 17:48:59 -07:00
LICENSE.md meta(license): Add GPLv3 License 2015-10-01 10:23:42 -07:00
N1.sh Properly exit out of N1.sh if script/bootstrap hasn't been run yet. 2015-10-04 12:30:37 -07:00
package.json Upgrade to Electron 0.30.8. Remove unsused packages. Upgrade deps 2015-10-07 16:52:49 -07:00
README.md Update CONTRIBUTING.md and README.md to remove node requirement 2015-10-07 17:18:41 -07:00

N1 Logo

N1 Screenshot

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.

Build Status Slack Invite Button

Download N1

You can download compiled versions of N1 for Mac OS X and Linux from https://nylas.com/N1. You can also build and run N1 on Windows. A Windows distribution is coming soon!

Build A Plugin

Plugins lie at the heart of N1 and give it it's 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

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 / Package 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.