← All projects

Sketch: Web App Systems

Making the browser feel like Sketch on the Mac, then keeping the web app from collapsing under its own bundle.

Take a native macOS editor and make the browser feel like the same product. Not a viewer. The actual place you inspect, comment, and share.

I worked on the UI around the canvas, the Prism design system, Dark Mode, and the split into microfrontends when the main bundle got too heavy to be proud of.

Canvas View

This wasn’t an image viewer. It was an infinite canvas that rendered Sketch documents in the browser.

Canvas View in the Browser

The rendering engine did the heavy lifting of displaying the artboards. I built the UI systems around it:

  • The Sidebar for page navigation.
  • The About Tab for document metadata.
  • The Comments and Version History overlays.

What started as a static viewer became interactive. We enabled Inspect on the canvas, so developers could click an element and get snippets, and added prototyping interactions in the browser UI 1.

Microfrontends

As the web app grew, so did the bundle. The main app was a heavy JavaScript payload. Fine on a desktop with fiber. Not the product we wanted to ship.

We split the application into microfrontends. That meant a hierarchy of six distinct layers for packages.

  • Refactoring: We removed circular dependencies so microfrontends could not import each other.
  • Tooling: Custom checks so one microfrontend didn’t accidentally pull heavy packages from another.
  • Performance: Web Workers to cache assets in the background, which smoothed loading.

Prism and the v100 facelift

In 2019 the UI needed a refresh. I helped implement the new design system, Prism. In two months we ported 80% of the components.

Prism Design System

That work became the Web App Facelift that shipped with Version 100. Canvas, notifications, files, documents — closer to the Mac app, with less chrome in the way of the content 2.

Version 100 Web App Refresh

I led Dark Mode for the web app. Not an inversion: a theme that had to match native macOS at night 3.

Dark Mode in the Web App

Color tokens

I also worked on Color Tokens, a bridge between design and engineering.

Color Tokens and Components

Teams could export a Sketch color palette to JSON and CSS, and wire it into CI. A change in Sketch could land on iOS, Android, and web without a manual copy step 4.


References

Footnotes

  1. Introducing Canvas View in the Web App

  2. Sketch 100: A Fresher, Focused Web App

  3. Dark Mode Updates

  4. Introducing Color Tokens