Ship's articles

Privacy policy

The short version: this website and our software collect nothing about you. The long version is below, because the stores and you both deserve the details.

Effective 1 October 2026. Applies to keelwright.dev and to Swatchbuckler. If a future tool behaves differently, it gets its own section here before it ships.

This website

keelwright.dev is a set of static pages. It sets no cookies, loads no analytics, no fonts from third parties (the fonts are served from this site), and no embedded content from other domains. The web host may keep ordinary server logs (IP address, requested page, time) for security and capacity; we don't use them to identify or track anyone.

If you email hello@keelwright.dev, we keep the conversation for as long as it's useful for answering you, and don't share it.

Swatchbuckler

Swatchbuckler is a browser extension that captures the design system of a website you're looking at and exports it as files. Everything it does happens inside your browser.

What it collects

Nothing is sent to us or to anyone else. Swatchbuckler makes no network requests of its own: no accounts, no sign-in, no analytics, no telemetry, no crash reporting, no update checks beyond what your browser's extension store does for every extension.

What it reads, and where it keeps it

When you start a capture session on a site, Swatchbuckler reads the pages you visit on that site: the page's stylesheets and the computed styles, sizes and positions of the elements on it. It records colors, font families and sizes, spacing, border radii, shadows, transitions and the style signatures of recognizable components (buttons, inputs, cards, navigation and the like). It does not record the page's text content, form values, URLs beyond the page path for your own page list, or anything you type.

That data is stored in your browser's extension storage (storage.local) on your device, for the current session only. It is removed when you discard the session, and it is never synced or backed up by the extension. Exporting writes a zip file to your Downloads folder through the browser's normal download mechanism; from then on the file is yours.

Permissions, and why each one is there

PermissionWhat it is used for
activeTab, tabsTo know which site the current tab is on, so a session can be started for it and the page list can show the pages you've captured.
scripting and access to all sitesTo run the capture script on the pages you choose to capture. Swatchbuckler can't know in advance which site you'll point it at, so it has to be allowed on any site; it only acts on the one you start a session for, and only while that session is running.
webNavigationTo notice when a page on the session's site has finished loading, so multi-page sessions capture automatically as you browse. Pages on other sites are ignored.
storageTo keep the current session and your settings on your device.
downloadsTo save the exported zip to your Downloads folder.

Optional features that would change this

A future version may offer an optional step that sends a small summary of a capture (clustered colors, candidate role names, component signatures; never the page itself) to the Claude API using an API key you supply, so that the semantic names and brand description can be written by Claude. That feature will be off by default, will say exactly what it sends before it sends it, and will be described here before it ships. Nothing in the current version does this.

Children

Swatchbuckler is a tool for designers and developers and is not directed at children. Since it collects no personal data, no data about children is collected either.

Changes and contact

If this policy changes, the effective date at the top changes with it and the previous version stays available on request. Questions go to hello@keelwright.dev.

Keelwright Studio · Provincetown, Massachusetts, USA