
Web application packaged as a desktop app, expected to run online and offline with email, instant messaging, and proprietary API synchronization.
About
The prototype was a web application packaged as a desktop application while still being able to run in a browser. It combined email, instant messaging, offline operation, and synchronization through a proprietary API.
My role
I was brought in to design and implement the browser-independent data layer for offline operation across both desktop and browser contexts.
- Architect the client data layer so it could operate offline in both browser and Electron contexts.
- Provide distributed-systems and synchronization expertise to the team.
- Implement synchronization for metadata, text messages, and binary objects.
The work helped prove that the offline-first synchronization concept was feasible for the product.
Technologies used
The project used the following technologies:
- Node.js and Electron for the desktop application shell.
- Angular 2/4 as the web application framework.
- PouchDB for local metadata storage.
- RxJS for application logic.
- TypeScript.