cff437e900
* Shfit away from default exports and PropTypes for better TS support * localize strings and expand use of types in WeekView, create new EventOccurence distinct from Event * Remove calendar wrap, use TS enum for view type + consistent prop interface * Bump Typescript to 3.8.3 and improve query / attribute / search typings * Re-use the Autolinker for calendar event descriptions with aggressive phone detection * Clean up WeekView and the editing popover, lots of cruft here * Update ScrollRegion to initialize scrollbar provided by external ref * Expose ScrollRegion’s resizeObserver to clean up tick interval tracking * Simply tickGenerator and move it to a helper * Bump to Electron 8.x for Chrome 75+ CSS features * Bump Handlebars dep to fix annoying npm audit noise * Remove electron-remote from electron-spellchecker * Explicitly add node-gyp, why is this necessary? * Fix lesslint issues * Bump eslint and let it fix 133 issues * Satisfy remaining eslint@2020 errors by hand * Add tsc-watch npm script and fix all TS errors outside calendar * Configure appveyor to publish all the pdb files it gets * Log sync exit codes and signals for easier triage on Windows * Upgrade npm, mark that the build process supports Node 11+ not just Node 11 * Resolve more errors * Upgrade sqlite to be a context-aware native module * Fix: Tab key no longer navigating into contenteditable because tabIndex not inferred * Fix: Bad print styles because Chrome now adds more CSS of it’s own when doctype is missing * Fix: before-navigate is now called after beforeunload |
||
---|---|---|
.circleci | ||
.github/ISSUE_TEMPLATE | ||
.snapcraft | ||
.vscode | ||
app | ||
mailsync@812977b1a0 | ||
screenshots | ||
scripts | ||
snap | ||
.appveyor.yml | ||
.eslintrc | ||
.gitignore | ||
.gitmodules | ||
.prettierrc | ||
.travis.yml | ||
book.json | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE.md | ||
LOCALIZATION.md | ||
package-lock.json | ||
package.json | ||
README.md |
💌 Mailspring
Mailspring is a new version of Nylas Mail maintained by one of the original authors. It's faster, leaner, and shipping today! It replaces the JavaScript sync code in Nylas Mail with a new C++ sync engine based on Mailcore2. It uses roughly half the RAM and CPU of Nylas Mail and idles with almost zero "CPU Wakes", which translates to great battery life. It also has an entirely revamped composer and other great new features.
Mailspring's UI is open source (GPLv3) and written in TypeScript with Electron and React - it's built on a plugin architecture and was designed to be easy to extend. Check out CONTRIBUTING.md to get started!
Mailspring's sync engine is spawned by the Electron application and runs locally on your computer. It is open source (GPLv3) and written in C++ and C. For convenience, however, when you set up your development environment, Mailspring uses the latest version of the sync engine we've shipped for your platform so you don't need to pull sources or install its compile-time dependencies.
Features
Mailspring comes packed with powerful features like Unified Inbox, Snooze, Send Later, Mail Rules, Templates and more. Mailspring Pro, which you can unlock with a monthly subscription, adds even more features for people who send a ton of email: link tracking, read receipts, mailbox analytics, contact and company profiles. All of these features run in the client - Mailspring does not send your email credentials to the cloud. For a full list of features, check out getmailspring.com.
Download Mailspring
You can download compiled versions of Mailspring for Windows, Mac OS X, and Linux (deb, rpm and snap) from https://getmailspring.com/download.
Getting Help
You can find community-based help and discussion with other Mailspring users on our Discourse community.
Contributing
Mailspring is entirely open-source. Pull requests and contributions are welcome! There are three ways to contribute: building a plugin, building a theme, and submitting pull requests to the project itself. When you're getting started, you may want to join our Discourse so you can ask questions and learn from other people doing development.
Building A Plugin
Plugins lie at the heart of Mailspring 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, check out the Mailspring-Theme-Starter.
-
To create your own plugin, check out the Mailspring-Plugin-Starter.
A plugin "store" like the Chrome Web Store is coming soon, and will make it easy for other users to discover plugins you create. (Right now, users need to "sideload" the plugins into the app by downloading them and copying them into place.)
You can share and browse Mailspring Plugins, and discuss plugin development with other developers, on our Discourse.
Building a Theme
The Mailspring user interface is styled using CSS, which means it's easy to modify and extend. Mailspring comes stock with a few beautiful themes, and there are many more which have been built by community developers. To start creating a theme, clone the theme starter!
If you are updating an existing Nylas theme for Mailspring here is a step by step tutorial. Notice: as part of the update process you will probably need to import mailspring base variables.
You can share and browse Mailspring Themes, and discuss theme development with other developers, on our Discourse.
Localizing / Translating
Mailspring (1.5.0 and above) supports localization. If you're a fluent speaker of another language, we'd love your help improving translations. Check out the LOCALIZATION guide for more information. You can discuss localization and translation with other developers on our Discourse.
Contributing to Mailspring Core
Pull requests are always welcome - check out CONTRIBUTING for more information about setting up the development environment, running tests locally, and submitting pull requests.