// projects
Easel
ActiveA canvas that AI assistants can draw on. The model sends plain JSON, Easel checks it twice, and what comes back is real interface that keeps working after the reply is over.
// summary
Chat assistants are very good at explaining a dashboard and quite bad at handing you one. Easel gives them a small, strict set of components to draw with: cards, tables, charts, metrics, buttons, sliders. The model describes what it wants in JSON, and Easel renders it inside the conversation in Claude and ChatGPT.
The interesting part is what happens after the first render. Canvases can be edited node by node in later turns, undone, pointed at, and left running on a live feed that refreshes itself with no one typing. Buttons call real tools directly. Filters re-slice a dataset in the browser. None of it runs code the model wrote, because every payload is validated against a fixed vocabulary and budgets the developer controls.
I built it as an MCP App so it drops into assistants people already use, and tested it across Claude Desktop, claude.ai, the Claude Android app and ChatGPT. Each host had its own opinions about caching, sessions and scrollbars. I wrote those findings down so the next person does not have to rediscover them.
// tech stack
Frontend
Backend
Language
AI / ML
Infrastructure
Testing
Tooling