Brilliant vs Paper
Paper made a bold bet. If the output of design is HTML and CSS, why not skip the translation entirely and design in the medium itself? Real flexbox, real CSS, real React components dropped onto a canvas, an MCP server that reads JSX out and writes HTML back in. A design tool where the file IS the frontend. It's a clean idea and it ships.
Brilliant takes the opposite bet. Models got good. Extremely good. So good that the act of compiling a design into production code, the thing Paper folds into the canvas itself, is something agents now deliver reliably. Not just to HTML and React. To any language, any framework, shaped to your specific constraints and your current codebase. And not everyone is building a website to begin with.
Once that's true, "we're HTML and CSS under the hood" stops being a feature and starts being a constraint. The data model is HTML, and that's the product, not an implementation detail. Your design is bounded by what HTML can represent. HTML wasn't built for design-tool scale: tens of thousands of nodes, spatial indexing, hit-testing, 60fps bulk transforms. You can build any feature on top of HTML. You can't build out of HTML.
Models made "design equals code" obsolete
Paper's central pitch is no handoff. You design in CSS, the design IS the code, your developer just opens the file. That argument was strong three years ago. It is much weaker now. An agent in Claude Code or Cursor can take a high-quality vector design and produce production React, Tailwind, SwiftUI, Jetpack Compose, or whatever your stack actually is, in seconds. The handoff didn't disappear, it got automated.
Once codegen is a solved problem at the AI layer above your design tool, the case for fusing design and code at the canvas level weakens.
Agents inside the canvas
Paper's agent story runs from outside the canvas. You set up the MCP in Claude Code or Cursor and drive Paper from there.
Brilliant ships an integrated AI chat in the canvas itself. Copy-paste any element into the prompt as a reference chip. @mention layers by name. Eyedropper a color from anywhere on screen. Drop a position pin to point at a spot. The orchestrator drops old images and collapses aged tool results automatically, so a long conversation costs a fraction of what an external agent burns through. A streaming composition linter catches mistakes mid-generation, before they hit the canvas: auto layout overflow, wrong sizing modes, invisible text.
External MCP still works on every tier, with no rate limit. The chat is the optional layer that makes designing with an agent inside Brilliant cost less in tokens and time than driving the canvas from outside.
Free, all of it
What Paper charges $20 a month for, Brilliant gives away. Not a stripped-down version. Not a trial. The whole tool.
Every feature in Brilliant is unlimited on Free. Auto layout, components, vector editing, effects, design systems, tokens, GPU shaders, all nine export formats (PNG, JPEG, WebP, SVG, PDF, HTML, React, MP4, MOV), Figma import, unlimited MCP usage. No weekly cap on calls. No paywall on video export. No throttle on file count or storage. The design tool itself, end to end, is free forever.
Brilliant monetizes one thing: the optional integrated AI chat. We've built an in-house, tailored agentic loop optimized to give you the best possible design results, and we're so confident in it that we don't monetize anything else in the app. Free includes 10 messages a day to try it; bring your own API key on every tier, no markup. Here's why you should pay for the integrated chat.
Your designs, your disk, your git
Paper hosts your files in its cloud. Version history lives where Paper keeps it.
Brilliant files are plain-text Blueprint on your local disk. They end in .bl and they diff cleanly in git. Branch a canvas to try a direction. Commit the experiment. Revert it if it doesn't work out. Run git blame to find the commit where the hero color drifted off-brand. Every primitive your codebase already uses is now available for your designs:
c16fc75741feed85 fr p(80,80) s(480,320) rd(16) "Hero"
- 88625e475868c087 r p(24,24) s(160,100) f[(r1,#F8F8F8)] rd(8) "Panel"
+ 88625e475868c087 r p(24,24) s(160,100) f[(r1,#0080FF)] rd(8) "Panel""GitHub for design", visual design-file diffs, branching, pull-request review, publishable component libraries, is the next chapter of Brilliant. The primitives (plain-text files, git compatibility) are here today.
What Brilliant has that Paper doesn't
A general-purpose vector canvas. Design websites, mobile UI, illustrations, posters, brand marks, dashboards, video frames. Paper is shaped like a webpage because it IS a webpage.
Mature design primitives. Pen tool, boolean operations, skew, flip, design tokens, components with overrides. Paper has auto layout and rotation.
Plain-text, git-friendly files. Blueprint on disk, clean diffs, blameable history.
Nine export formats including code and video, on Free. PNG, JPEG, WebP, SVG, PDF, HTML, React, MP4, MOV. Paper exports React, Tailwind, HTML/CSS, WebP, AVIF, with MP4 gated behind Pro.
Unlimited MCP usage on Free. Drive Brilliant from Claude Code, Cursor, or any MCP client without a weekly cap.
Built-in AI chat with BYOK. Use your own Anthropic, OpenAI, Google, OpenRouter, or Claude Code subscription, no separate plan to unlock the agent layer.
What Paper has that Brilliant doesn't
Real React component import. Drop your own production components onto the canvas as live design primitives. Brilliant components are design components; they don't run your app code.
Code is the native format. In Paper the design is built from real web elements, so it exports as the exact same HTML and CSS with no translation step. Brilliant generates HTML and React from vector shapes instead, so the code is produced from your design rather than being the design itself.
At a glance
| Brilliant | Paper | |
|---|---|---|
| Elements are | Vectors | HTML |
| Pricing | Free forever | Free w/ 100 MCP/wk cap; Pro $20/mo for 1M/wk + video export |
| File format | Plain-text Blueprint on local disk | Cloud-hosted |
| Version control | Native git (branch, diff, rollback, blame) | Paper's hosted history |
| AI agents | Built-in chat (BYOK) + MCP; agents output vector primitives | MCP-only; agents output HTML and CSS |
| MCP usage | Unlimited, free | 100/wk free, 1M/wk on Pro |
| Export formats | PNG, JPEG, WebP, SVG, PDF, HTML, React, MP4, MOV (all on Free) | React, Tailwind, HTML/CSS, WebP, AVIF; MP4 on Pro |
| Vector tools | Pen, boolean ops, skew, flip | Rotation only |
| Design system | Tokens, components with overrides | No |
A new dance
Paper bet that AI would make design and code one thing. Brilliant bet that AI would make design and code so easy to convert between that you don't need them fused. Both are coherent positions. The difference is what you give up to take them.
Read the full manifesto to see the rest of the argument, or install Brilliant and try it for yourself.