Skip to content
Curious Cat Consulting

Web Canvas

A browser built on an infinite canvas instead of tabs. Pages, images and notes sit side by side, connected by lines, and the whole arrangement saves.

For
Our own app
When
2025–2026
Status
Live on the App Store and Google Play.
Web Canvas on iPad: several web pages and sticky notes on one canvas, connected by lines

The situation

Tabs fall apart on research. They’re a row of identical icons with no memory of how the pages relate, so a subject you spent an afternoon on is unreadable the next morning.

What I built, and why

A browser on an infinite canvas. Live web pages, images and sticky notes share one surface, connected by lines and grouped by color, and the whole arrangement saves and reloads. It runs on iPhone, iPad and Android from one codebase.

Why I did it this way

  1. Reanimated for the viewport, Skia for the ink

    Pan and zoom run on the UI thread, so a gesture never waits on JavaScript and the canvas holds 60fps with a dozen live web pages on it. Skia draws the parts that are drawings: the connection lines, the grid, and the thumbnails in the sessions list.

  2. Analytics that can’t see a URL

    Event names are a fixed list and each event’s fields are typed, so no call site can invent a field. The rule the code enforces is that no full URL, search or note text ever reaches the analytics provider.

  3. Everything stays on the device

    Sessions, history and settings live on the device. Sharing a session produces a link that points at a canvas already on that device, so nothing is ever uploaded. The cost is no sync between devices, which is the most common request we get.

  4. Screenshots from seeded canvases

    Store screenshots are captured by Maestro against named canvases built through a dev-only link, so a shot is the same every run instead of hand-arranged. It also turned up a measurement that changed the plan: note text is about 4pt once a full canvas is zoomed to fit, so one screenshot can’t show both the whole canvas and readable notes.

  5. Color that flows down a connection tree

    A color set on an item is inherited by everything connected below it unless a child overrides it. That’s what lets a line of research read as one group when you’re zoomed out too far to read any text.

What changed

Web Canvas is live on the App Store and Google Play. Sticky notes, connections and color all came from requests in the in-app support chat, which is a decent argument for keeping support chat in a free app.

Built with

  • React Native
  • Expo
  • TypeScript
  • Reanimated
  • React Native Skia
  • Zustand
  • NativeWind
  • PostHog
  • Maestro

Got something like this? Tell us about it.

Talk to us

More of our apps

All work
Itemized Home on iPad: an inventory grouped by room, each item with a photo, name and value

Our apps · 2026

Itemized Home

An offline home inventory app for storm season and insurance claims. Photograph the house room by room now, so you aren’t listing your belongings from memory later.

Homeowners, landlords, and anyone heading into storm season

Pawsport’s map of North America covered in cat stickers, one per sighting

Our apps · 2025–2026

Pawsport

A cat photo journal for iPhone and Android. Every cat you photograph becomes a stamp on a shared map.

Our own app