Skiff is a startup building an end-to-end encrypted web platform. I started working on the text editor named Skiff Pages when I joined the team. Then I contributed to Skiff Mail. I saw the team grow from 4 to 20 persons while helping structure the processes and the global architecture of both products. I mainly used React and NodeJS with Typescript. The database layer is composed of PostgreSQL and Redis.
My first mission was to rework the datamodel of Skiff Pages to enable scaling to multiple thousands of documents per user. I designed and implemented a hierarchical key model to allow efficient communication of document encryption keys when sharing folders with multiple users. End-to-end encryption makes all work on the datamodel very tricky because we cannot work on any cleartext data. I then built the workspace feature that enables better collaboration.
The search feature was also a big part of my work. I designed and implemented a novel client-side search system and experimented with search-index lazy-loading. Once deployed, this work will enable ultra-fast fulltext search on all documents, even on new browser sessions, without any compromise on E2EE. This was built with WASM and Rust.