# Bringing Goodnotes to the web with Swift and WebAssembly

DevFeed: [Bringing Goodnotes to the web with Swift and WebAssembly](<https://devfeed.tech/articles/bringing-goodnotes-to-the-web-with-swift-and-webassembly-2927.md>)

Original publisher: [Read original article](<https://swift.org/blog/bringing-goodnotes-to-web-with-swift/>)

Author: Yuta Saito

Published: 2026-06-01T12:00:00Z

Content type: article

Language: en

Sources: [Swift.org](<https://devfeed.tech/sources/swift-org.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [browsers](<https://devfeed.tech/topics/browsers.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [code](<https://devfeed.tech/tags/code.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [ios](<https://devfeed.tech/tags/ios.md>), [performance](<https://devfeed.tech/tags/performance.md>), [swift](<https://devfeed.tech/tags/swift.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

## AI overview

Goodnotes describes bringing its existing Swift-based iOS note-taking experience to web browsers by compiling Swift to WebAssembly. The approach reuses a large, performance-critical codebase and preserves consistent ink rendering and behavior across platforms.

## Source excerpt

Goodnotes has been helping millions of users take handwritten notes on iPad for over a decade, earning recognition as Apple's iPad App of the Year in 2022. Today, the same Swift code that powers our iOS app also runs seamlessly in web browsers through WebAssembly, delivering the exact same ink rendering and note-taking experience users love. This journey demonstrates that Swift excels as a cross-platform language, running high-performance applications while sharing the same codebase. Every bug fix and improvement to Goodnotes benefits all our users simultaneously, regardless of which platform they use. After two years of development and over two years in production at Goodnotes, we've shown that Swift on WebAssembly is a viable, powerful approach for building complex, performance-critical web applications. Why we chose Swift for the web When we decided to bring Goodnotes to the web in 2021, we faced a critical decision. After more than 10 years of development, we had accumulated millions of lines of Swift code that implemented countless refinements and optimizations for digital ink rendering, document synchronization, conflict resolution using Conflict-Free Replicated Data Types (CRDTs), and content search and document indexing. We need to maintain more than 60 Frames Per Second (FPS) for real-time ink rendering, which makes performance critical. A JavaScript rewrite, Flutter, or Kotlin Multiplatform would all require rewriting our entire rendering engine from scratch, a substantial undertaking that would have delayed our web launch by years and inevitably introduced behavioral differences between platforms. SwiftWasm emerged as the solution. This community-driven project allows Swift code to compile to WebAssembly, running in browsers with good performance. We started experimenting with SwiftWasm, building prototypes to validate the approach. Our first experiment focused on our handwriting component, a performance-critical part of Goodnotes that would serve as a go