Nylas API Platform • REST APIs for email, contacts, and calendar • Gmail, Exchange, iCloud, Yahoo, and hundreds more. • Powers email integration in CRMs, mobile apps, etc. Making email easy.
N1 Mail Client • Clean, minimal foundation with “must-have” features • Robust APIs for dealing with threads, messages, etc. • Cross-platform: Mac, Windows, Linux • Easy to extend with modern technologies Making email easy. Nylas API Platform
Why Electron? • Mac, Windows, Linux support • Great APIs for desktop integration • Support for C/C++ code via native modules • Atom = open-source sample code and tooling • Large numbers of developers know JavaScript, HTML, CSS, can write extensions easily!
Party on the Main Thread • BrowserWindows render and run JavaScript on the same thread. • All work is created equal. Great for a web server, not so great for a desktop app. • (Web Workers don’t get NodeJS integration)
Party on the Main Thread • Animations • Transitions • Scrolling • User interaction • Applying mailbox changes • Running spellcheck • Downloading attachments • Running mail rules
Windows are process-isolated • No shared memory between windows • Messaging between windows requires hops through the parent application process • Major conceptual barrier to multi-window app development
3. Platform-specific styling an exercise to the reader Move CPU-intensive tasks to a worker window Bridge Flux stores and actions across windows Fine-tune CSS to match platform standards