14 posts

Writing

What we're building, why, and what we learn along the way.

  1. Introducing opendraw

    We shipped a free, open-source hand-drawn whiteboard that drops into Vue, Nuxt, React and Svelte as one component. Here's what it does and how to try it.

  2. Why We Built opendraw

    Excalidraw is a wonderful app you have to leave your app to use. The case for a hand-drawn whiteboard that ships as a component instead.

  3. How We Built opendraw

    One engine, five packages, four frameworks: how opendraw keeps its canvas core framework-free so every adapter stays a few hundred lines.

  4. How to Use opendraw

    From a four-line install to headless mode: props, events, the useOpenDraw() API, custom toolbars and the React and Svelte packages.

  5. Inside the opendraw Engine

    Immutable elements, reference-keyed caches and seeded wobble: the four systems that keep a hand-drawn canvas fast, and what they teach about canvas apps generally.

  6. Email as an Information Report

    Filters, labels and snooze made us sysadmins of our own attention. The inbox should hand you a report, not a queue.

  7. What a Workspace OS Actually Means

    Not another app to open, but an environment to exist in. The thinking behind Bubbles.space's spatial canvas and its resident assistant.

  8. The Case Against Feeds

    Every app for saving things slowly becomes another feed. On designing Bottles to have nothing to keep up with.

  9. Why Journaling Apps Fail

    Nobody quits journaling because they run out of thoughts. They quit because opening the app costs more than the thought is worth.

  10. Why UI Sound Matters

    Good interfaces talk back. On designing audio feedback that informs instead of annoys, and why synthesis beats shipping audio files.

  11. Introducing Bubbles

    Why we're building a family of AI-agent-first apps that do the carrying for you.

  12. The Future of AI Is Proactive

    AI assistants shouldn't be something you go and visit. Here's what comes after the chat box.

  13. The Lifestyle We're Building Toward

    A day where the noise is already sorted, and the software around you holds the context.

  14. We Shipped web-have-sounds

    We put a tiny, zero-dependency UI sound library on npm. Here's what it does and why.