Electron is one of the most popular platforms today for building cross-platform desktop applications. We shipped v1 of our code editor, Onivim, using Electron, and while it was wonderful to leverage web technologies and frameworks like ReactJS, we faced numerous performance challenges. In order to meet our performance goals, we decided to re-architect and move to a native solution based on ReasonML. In the process, we built a new desktop application framework called Revery, which lets us enjoy the ReactJS & Redux style of development… but with native code performance! This move has drastically improved our startup time, responsiveness, and memory usage. In addition, we’ve been able to take a new approach to our core architecture – leveraging functional programming principles. We’ll discuss our journey of shipping a cross-platform desktop app with this new technology stack, and share our successes and challenges in migrating from TypeScript/React/Electron to ReasonML/Revery for Onivim v2.