Canon Every prototype, from every tool, in one place.
In progress
It started as a gallery of other people's design skills. Then I wrote my own. Then I noticed the real problem was everything AI helped me make, and where it all went.
Overview
Claude Code, v0, Lovable, Figma Make, a branch, a zip. My prototypes live everywhere now, and so do everyone else's. Canon puts them on one shelf you can see, open and share. It runs in your browser or installs as an app, and nothing gets uploaded.
It took three tries to find that. Canon began as a curated gallery of design skills for AI agents. Reading those closely taught me to write my own, so I did. Using my own on real work showed me the thing nobody was fixing: AI made prototyping cheap, and the output piles up in places nobody can find again. This page is the log of how it got here, including the parts I threw away.
What Canon does today
-
One library for every prototype
Drop in an HTML file, a zipped build, a whole folder, or link a folder on your machine so it stays current. Search, sort and filter across all of it.
-
A map for anything with more than one page
Hover a multi-page prototype on a board and its other pages tease out from behind it. Click and it opens as its own map: every page, the links between them, and the pages nothing points to anymore.
-
Notes pinned to the work
Pin a note on a screen, a page, or the canvas between them: what changed, what to try next, which version is current. They ride along into the preview link too.
Files uploaded. It all stays on your machine
Skills of my own in the plugin marketplace
Tests across the app, the site and the plugins
Decisions logged in public
As of October 2026
The problem
Generation is solved. The mess it leaves is not. A designer working with AI now has prototypes in four tools, three repos, a handful of branches and a downloads folder. A team has that times everyone.
Every tool ships opinions about making. None of them help you keep what got made, because each one only sees its own output. The question I kept asking at work, which version did we look at on Thursday, had no good answer anywhere.
Curate
Canon started in July as the editorial answer to skill directories: hand-picked design skills for AI agents, each read in full, license-checked and written up with a point of view. The founding rule was curate, never scrape.
It got to twenty skills, structure maps of every skill's real file tree, composed kits, and a plugin you could install in one command. A few rulings from that stretch still hold: licenses come from the GitHub API, never hand-typed, and anything without a license is hidden everywhere, not just unlisted.
Why it's gone
Curating other people's work has a ceiling. Twenty entries is small enough to read everything, and it was never going to stay that way. The kits were distilled from other authors' skills, which made them good and made them not mine.
In October I cut the gallery, the router and the kits. Canon's skills are now only the ones I wrote. The gallery did its job: it taught me what a good skill looks like.
Author
Three skills came out of that reading, each built for a job I kept doing by hand. They ship as Claude Code plugins in Canon's marketplace, under Canon's name.
graft
Maps an agent session as branches: trunk, forks, compactions. A live prototype runs at jamesmadson.me/graft.
strata
A record of what users actually said, in layers. Verbatim kept apart from interpretation.
deter
Less, but better. A review that removes, and never an unrequested rewrite.
Graft, and its laws
Graft draws a session as it actually happened: the main thread as a trunk, subagents as forks, context compactions as diamonds. A transcript is never read into context; parsing happens in a subprocess and only a summary comes back. A map holds conversation excerpts, so a generated map is as private as the session it maps.
Strata, and the evidence bar
Strata files feedback the way a researcher would, not the way a Slack scroll does. Said, meant and decided stay separate. Its hardest rule is the evidence bar: one is a quote, two is a possible pattern said aloud, three is a pattern. The same person twice is persistence, not pattern. Stakeholders never pool with users.
Deter, and the removals
Deter reviews by taking away. Every finding is priced against the surface's job, one thing is kept and said out loud, at most one thing may be missing, and the unrequested rewrite, the baseline failure of AI reviews, is banned outright.
The index
The first answer to the prototype mess was a workbench: prototypes, research and reviews in one hosted product. It was too much. The version that survived is smaller and sharper: Canon is the index, not the source of truth. Your work stays where it was made. Canon points at it, shows it, and lets people talk about it.
Projects, a library, and boards
A project holds a library of prototypes. Boards are canvases you lay them out on, and one prototype can sit on as many boards as it needs to. The canvas borrows its feel from Paper and Lunagraph on purpose: dark, quiet, the work doing the talking. It doesn't try to be Figma. Anything Figma already does well, Canon leaves alone.
The map is read, not drawn
Canon reads a prototype's HTML, finds the links between its pages, and lays them out by depth from the home page. Global nav links are split out so the real flow shows through. Pages nothing links to get their own column, which is usually the most useful thing on the screen.
Local first, on purpose
Everything lives in the browser. A service worker serves dropped-in prototypes from local storage, so a zip from v0 and a folder from Claude Code open the same way, offline. Install it and it gets its own window and a Dock or taskbar icon. Hosting only arrives when a team asks to share, and even then it hosts the index, never the files.
Why not let a platform build it
Vercel could build this. So could Figma. Each of them would build it for their own output, because that's what a platform is for. Canon's whole point is every tool, which is a thing no single tool has a reason to want. So it's open source under MIT. The value is in being neutral, and open is the honest way to be neutral.
Changed in the open
Research came out. The v2 brief had feedback becoming evidence, with Strata built into the product. Strata still exists as a skill. In the app it was a second product hiding inside the first, so it went.
Color came back, once. The gallery's ruling was monochrome, any color a defect. Canon now has one hue: the orange dot in the wordmark, cann. One flat block, used once, so it means something. The superseded ruling stays in the log beside the new one.
Comments became notes. They were built Figma style, with names and replies. Then the scope got honest: Canon is one person's prototype manager, local to their machine, and there's nobody on the other end of a comment. Notes are reminders to yourself. The data model didn't change, so comments can come back with sharing if a team ever asks.
The ledger
- Committed The local app: library, boards, the map, notes, and install as an app.
- Sequenced A desktop app with a local MCP server, so an agent can drop what it just built straight onto a board.
- Sequenced A command line tool that finds prototypes in a repo and builds them into Canon.
- Held Hosted sharing: invite people, send a link, let them comment without the tool you built it in. Notes would become comments then. Designed, not built. Held until a team asks.
The core model:
Project
├─ Library every prototype: files, zips, folders, linked folders, URLs
├─ Boards canvases; a prototype can sit on many
├─ Maps pages and links, read from the prototype's own HTML
└─ Notes on a screen, a page, the canvas, or a preview link
How it decides
The log opens by pulling the pattern out of its own entries. Five of them, in spirit:
-
Field evidence before features
Ideas arrive as links, get filed as entries, and graduate to scope only when the evidence bar clears.
-
Honesty outranks polish
Sample data is labeled as invented. Concepts that aren't built, like sharing, say so on the page.
-
Names carry the ethos
One-word field terms, puns that work twice, attributions rendered exactly.
-
Remove before add
The default question is what should go. The gallery, the kits and research all answered it.
-
Change your mind in the open
Supersede, never rewrite. The old call stays visible beside its replacement.
The full log, every decision with its rejections, is public in the Canon repo.
Open questions
The parts I haven't settled, kept here on purpose:
-
Whether people come back
The kill criterion is written down. A real team gets the local app with real prototypes. If they don't open it again within two weeks without being asked, I stop investing and leave it as open source.
-
Whether local is enough
Local first keeps it free, private and simple. Review needs other people, and other people need a link. Somewhere between those is the line where Canon has to host something.
-
Whether the agent is the front door
If agents can drop prototypes straight onto a board, people may never drag a file in at all. That changes what the app is for.
Changelog
- Oct 2026 Comments become notes. A local tool for one person has nobody to comment to. One warm black across the site and the app.
- Oct 2026 The new logo: can●n, the o drawn as an International orange dot. The app icon is the dot alone.
- Oct 2026 The gallery, the router and the kits retired. Canon's skills are now only graft, strata and deter.
- Oct 2026 Installable: its own window, a Dock or taskbar icon, works offline.
- Oct 2026 Research out. Canon is the index, not the source of truth. Open source under MIT.
- Oct 2026 The canvas: projects, a library, boards, maps of multi-page prototypes, comments, and a sharing concept.
- Sep 2026 Graft renderer spec: output becomes a function of the input, and a decisions rail joins the map.
- Aug 2026 The v2 brief and the decision log, with rejections kept visible.
- Aug 2026 Graft, Strata and Deter: three skills published under Canon's own name.
- Aug 2026 Kits and a one-command plugin for the gallery. Since retired.
- Jul 2026 First eleven curated skills, structure maps, faceted gallery. Since retired.
Still building. The skills are shipped. The app runs locally and is headed for its first real team. The open questions above are genuinely open.