---
title: "Figma vs Paper for AI design: every token, tool call and dollar"
description: "I gave Claude Code one brief and three AI design tools, and logged every tool call and token. Not a feature list. What each one did with the same 11 minutes, and why the prettier result lost."
date: 2026-10-26
tags: [ai, design, tools, claude-code, figma, paper]
url: "https://mahdif.com/blog/figma-vs-paper-ai-design/"
---

# Figma vs Paper for AI design: every token, tool call and dollar

I gave Claude Code one brief and three AI design tools, and logged every tool call and token. Not a feature list. What each one did with the same 11 minutes, and why the prettier result lost.

I have been a product designer for 17 years, and for years Figma was the answer before anyone asked the question. Last week I ran a test where Figma won on looks, 12 calls to 8.

I still picked Paper.

The test: Claude Code read the codebase of [Peeko](https://usepeeko.com/), my analytics tool, and wrote one design brief for a new landing page. The same brief went to an agent working in Paper through its MCP server, an agent working in Figma through the Figma MCP server, and Figma's own Figma Agent, which just came out of beta. A conductor agent logged every tool call, screenshot and token. Whichever design won would become Peeko's real landing page.

This is not a verdict on which tool is better. It is a breakdown of what each one is better at, because the answer changed depending on what I measured.

Watch it or read it. The video below is the whole 30-minute test. Everything under it is the same test in writing, with every number, chart and screenshot, so you can skip the video and lose nothing.

<figure style="margin:2.75rem 0;" data-wide>
<div style="position:relative;width:100%;aspect-ratio:16/9;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--card);"><iframe src="https://www.youtube-nocookie.com/embed/lk2dWT6Cjq0" title="Figma Agent vs Figma MCP vs Paper MCP" style="position:absolute;inset:0;width:100%;height:100%;border:0;" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen loading="lazy"></iframe></div>
<figcaption>The full test, 30 minutes. Rather read? It all starts right below.</figcaption>
</figure>

## One brief, three tools

The brief asked for two directions, Sunny Side (light) and Night Watch (dark), with 13 sections each. It also moved Peeko's positioning. Peeko started out marketed to technical people, and I want it to work for anyone shipping something, including vibe coders who have never set up analytics.

Claude Code (Opus 5.5, medium effort) spun up a conductor, and the conductor started one agent per tool. Each agent built both pages from the same file.

The Figma Agent was the odd one out. It lives inside Figma, so it can't see my codebase, my project files or my repo. It got the same brief as a markdown file attached to its prompt, and nothing else.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/setup.jpg" alt="Diagram from the video: Claude Code's code base, project files and GitHub repo are all locked for the Figma Agent, which only gets a markdown prompt file" width="1800" height="562" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>What the Figma Agent could see: one markdown file. The MCP agents could read the whole project.</figcaption>
</figure>

If you want to run your own comparison, that is the part worth copying. Have the agent write the brief to a file first, then hand the file to every tool. Otherwise you are comparing prompts, not tools.

## The race: 14.6 seconds against 2:29

The finish times were a wash. Paper took 10:45, the Figma Agent 10:48, the Figma MCP server 11:29.

The start was not. Paper put something on the canvas after 14.6 seconds and then painted the page in real time, section by section. Figma showed nothing for 2 minutes and 29 seconds, then arrived in chunks, one large component at a time.

<figure style="margin:2.75rem 0;" data-wide>
<video autoplay muted loop playsinline controls preload="metadata" poster="/images/blog/figma-vs-paper-ai-design/videos/race-poster.jpg" style="display:block;width:100%;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<source src="/images/blog/figma-vs-paper-ai-design/videos/race.mp4" type="video/mp4">
Paper on the left building the landing page section by section while the Figma canvas on the right stays empty.
</video>
<figcaption>The first minutes, at double speed. Paper on the left is already drawing. Figma on the right is still a blank page.</figcaption>
</figure>

That difference matters more than it sounds. The first two minutes are when I catch a wrong direction. If the agent is drifting, I can nudge it while it works and save the other nine minutes. With Figma, the first time I could react was after the agent had already committed.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/first.jpg" alt="First element: Paper at 0:14.6 with an empty page frame, Figma at 2:28.9 with most of the hero already built" width="1800" height="924" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Paper's first move was the empty page, at 14.6 seconds. Figma's first move, at 2:29, was most of the hero at once.</figcaption>
</figure>

## Figma won the looks

I went through every section, light and dark, side by side, and called a winner on each. Figma took 12, Paper took 8. Scroll both pages and judge for yourself.

<figure style="margin:2.75rem 0;" data-wide>
<div style="display:flex;flex-wrap:wrap;gap:1rem;">
<div style="flex:1 1 260px;min-width:0;"><div class="browser-frame"><div class="browser-frame-bar"><span class="bf-dot"></span><span class="bf-dot"></span><span class="bf-dot"></span><span class="browser-frame-title">Paper</span></div><div class="browser-frame-scroll"><img src="/images/blog/figma-vs-paper-ai-design/page-paper-sunny.jpg" alt="The full Sunny Side landing page Paper designed for Peeko" width="1200" height="7280" loading="lazy" style="display:block;width:100%;height:auto;"></div></div></div>
<div style="flex:1 1 260px;min-width:0;"><div class="browser-frame"><div class="browser-frame-bar"><span class="bf-dot"></span><span class="bf-dot"></span><span class="bf-dot"></span><span class="browser-frame-title">Figma MCP</span></div><div class="browser-frame-scroll"><img src="/images/blog/figma-vs-paper-ai-design/page-figma-sunny.jpg" alt="The full Sunny Side landing page the Figma MCP agent designed for Peeko" width="1200" height="7876" loading="lazy" style="display:block;width:100%;height:auto;"></div></div></div>
</div>
<figcaption>The full Sunny Side pages, exported from the actual Paper and Figma files. Each one scrolls.</figcaption>
</figure>

Paper won on details. Its hand-drawn arrow points at the right thing. Its shadows are consistent hard 45 degree shadows on the buttons and the card, where Figma's only reach the buttons. Its FAQ and its narrower text columns read cleaner.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/arrows.jpg" alt="Close-up of the hero's that's you arrow. Paper's arrow lands on the 3 people online now badge, Figma's points away from it" width="1800" height="886" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Small, but it's the kind of detail I'd fix by hand. Paper's arrow lands on the badge. Figma's misses it.</figcaption>
</figure>

Figma won on presence, and it won the dark theme outright. The glow behind the Night Watch hero, the bold headline, the big call to action at the end: Paper's dark page looked flat next to it. Figma also built nearly everything in auto layout, which is how I would have built it myself.

<figure style="margin:2.75rem 0;" data-wide>
<div style="display:flex;flex-wrap:wrap;gap:1rem;">
<div style="flex:1 1 260px;min-width:0;"><div class="browser-frame"><div class="browser-frame-bar"><span class="bf-dot"></span><span class="bf-dot"></span><span class="bf-dot"></span><span class="browser-frame-title">Paper</span></div><div class="browser-frame-scroll"><img src="/images/blog/figma-vs-paper-ai-design/page-paper-night.jpg" alt="The full Night Watch dark landing page Paper designed for Peeko" width="1200" height="7116" loading="lazy" style="display:block;width:100%;height:auto;"></div></div></div>
<div style="flex:1 1 260px;min-width:0;"><div class="browser-frame"><div class="browser-frame-bar"><span class="bf-dot"></span><span class="bf-dot"></span><span class="bf-dot"></span><span class="browser-frame-title">Figma MCP</span></div><div class="browser-frame-scroll"><img src="/images/blog/figma-vs-paper-ai-design/page-figma-night.jpg" alt="The full Night Watch dark landing page the Figma MCP agent designed for Peeko, with a strong glow behind the hero" width="1200" height="7716" loading="lazy" style="display:block;width:100%;height:auto;"></div></div></div>
</div>
<figcaption>The full Night Watch pages, Paper on the left, Figma on the right. I prefer light themes anyway, and this one was not close.</figcaption>
</figure>

Both slipped. Figma's first pass had clip content switched on and cropped a button (it fixed that later). Paper's dark FAQ fell back to the system font. And both, independently, drew Peeko's logo as an inverted L, which is an odd choice if you ask me.

<figure style="margin:2.75rem 0;">
<img src="/images/blog/figma-vs-paper-ai-design/logos.jpg" alt="Paper and Figma both rendered the Peeko wordmark with the same inverted L shape instead of the real logo" width="1800" height="684" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Two tools, one brief, the same invented logo. Neither looked up the real one.</figcaption>
</figure>

## The numbers

<figure style="margin:2.75rem 0;" data-wide>
<div style="border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);padding:1.25rem 1.25rem 0.25rem;">
<div style="display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0.5rem 1.5rem;margin-bottom:0.9rem;"><div style="font-weight:700;font-size:1.1rem;color:var(--foreground);">Paper MCP vs Figma MCP: the scoreboard</div><div style="display:flex;gap:1.25rem;font-size:0.8rem;color:var(--muted-foreground);"><span style="display:inline-flex;align-items:center;gap:0.4rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="" width="16" height="16" style="width:16px;height:16px;margin:0;border:0;border-radius:0;background:none;">Paper</span><span style="display:inline-flex;align-items:center;gap:0.4rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="" width="16" height="16" style="width:16px;height:16px;margin:0;border:0;border-radius:0;background:none;">Figma MCP</span></div></div>
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));column-gap:2rem;">
<div style="display:flex;gap:0.9rem;padding:1rem 0;border-top:1px solid var(--border);"><div style="width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--foreground);display:flex;align-items:center;justify-content:center;"><svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="10" x2="14" y1="2" y2="2"/><line x1="12" x2="15" y1="14" y2="11"/><circle cx="12" cy="14" r="8"/></svg></div><div style="flex:1;min-width:0;"><div style="display:flex;justify-content:space-between;align-items:center;gap:0.5rem;"><div style="min-width:0;"><div style="font-size:0.9rem;font-weight:600;color:var(--foreground);line-height:1.3;">Total time</div><div style="font-size:0.75rem;color:var(--muted-foreground);line-height:1.3;">shorter wins</div></div><span style="font-size:0.7rem;font-weight:600;padding:0.1rem 0.5rem;border-radius:999px;border:1px solid var(--border);color:var(--foreground);white-space:nowrap;">Paper wins</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="Paper" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:93.6%;height:10px;border-radius:0 5px 5px 0;background:#6890E8;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--foreground);">10:45 ✓</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="Figma MCP" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:100%;height:10px;border-radius:0 5px 5px 0;background:#F24E1E;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);">11:29</span></div></div></div>
<div style="display:flex;gap:0.9rem;padding:1rem 0;border-top:1px solid var(--border);"><div style="width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--foreground);display:flex;align-items:center;justify-content:center;"><svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/></svg></div><div style="flex:1;min-width:0;"><div style="display:flex;justify-content:space-between;align-items:center;gap:0.5rem;"><div style="min-width:0;"><div style="font-size:0.9rem;font-weight:600;color:var(--foreground);line-height:1.3;">First thing on the canvas</div><div style="font-size:0.75rem;color:var(--muted-foreground);line-height:1.3;">sooner wins</div></div><span style="font-size:0.7rem;font-weight:600;padding:0.1rem 0.5rem;border-radius:999px;border:1px solid var(--border);color:var(--foreground);white-space:nowrap;">Paper wins</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="Paper" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:9.8%;height:10px;border-radius:0 5px 5px 0;background:#6890E8;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--foreground);">14.6 s ✓</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="Figma MCP" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:100%;height:10px;border-radius:0 5px 5px 0;background:#F24E1E;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);">2:29</span></div></div></div>
<div style="display:flex;gap:0.9rem;padding:1rem 0;border-top:1px solid var(--border);"><div style="width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--foreground);display:flex;align-items:center;justify-content:center;"><svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M13.744 17.736a6 6 0 1 1-7.48-7.48"/><path d="M15 6h1v4"/><path d="m6.134 14.768.866-.5 2 3.464"/><circle cx="16" cy="8" r="6"/></svg></div><div style="flex:1;min-width:0;"><div style="display:flex;justify-content:space-between;align-items:center;gap:0.5rem;"><div style="min-width:0;"><div style="font-size:0.9rem;font-weight:600;color:var(--foreground);line-height:1.3;">Tokens</div><div style="font-size:0.75rem;color:var(--muted-foreground);line-height:1.3;">fewer wins</div></div><span style="font-size:0.7rem;font-weight:600;padding:0.1rem 0.5rem;border-radius:999px;border:1px solid var(--border);color:var(--foreground);white-space:nowrap;">Figma wins</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="Paper" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:100%;height:10px;border-radius:0 5px 5px 0;background:#6890E8;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);">13.4M</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="Figma MCP" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:30.6%;height:10px;border-radius:0 5px 5px 0;background:#F24E1E;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--foreground);">4.1M ✓</span></div></div></div>
<div style="display:flex;gap:0.9rem;padding:1rem 0;border-top:1px solid var(--border);"><div style="width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--foreground);display:flex;align-items:center;justify-content:center;"><svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 17V7"/><path d="M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8"/><path d="M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z"/></svg></div><div style="flex:1;min-width:0;"><div style="display:flex;justify-content:space-between;align-items:center;gap:0.5rem;"><div style="min-width:0;"><div style="font-size:0.9rem;font-weight:600;color:var(--foreground);line-height:1.3;">Estimated API cost</div><div style="font-size:0.75rem;color:var(--muted-foreground);line-height:1.3;">cheaper wins</div></div><span style="font-size:0.7rem;font-weight:600;padding:0.1rem 0.5rem;border-radius:999px;border:1px solid var(--border);color:var(--foreground);white-space:nowrap;">Figma wins</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="Paper" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:100%;height:10px;border-radius:0 5px 5px 0;background:#6890E8;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);">$4.23</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="Figma MCP" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:41.8%;height:10px;border-radius:0 5px 5px 0;background:#F24E1E;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--foreground);">$1.77 ✓</span></div></div></div>
<div style="display:flex;gap:0.9rem;padding:1rem 0;border-top:1px solid var(--border);"><div style="width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--foreground);display:flex;align-items:center;justify-content:center;"><svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 4.1 12 6"/><path d="m5.1 8-2.9-.8"/><path d="m6 12-1.9 2"/><path d="M7.2 2.2 8 5.1"/><path d="M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z"/></svg></div><div style="flex:1;min-width:0;"><div style="display:flex;justify-content:space-between;align-items:center;gap:0.5rem;"><div style="min-width:0;"><div style="font-size:0.9rem;font-weight:600;color:var(--foreground);line-height:1.3;">Tool calls</div><div style="font-size:0.75rem;color:var(--muted-foreground);line-height:1.3;">how hard it worked</div></div></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="Paper" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:100%;height:10px;border-radius:0 5px 5px 0;background:#6890E8;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--foreground);">109</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="Figma MCP" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:32.1%;height:10px;border-radius:0 5px 5px 0;background:#F24E1E;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--foreground);">35</span></div></div></div>
<div style="display:flex;gap:0.9rem;padding:1rem 0;border-top:1px solid var(--border);"><div style="width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--foreground);display:flex;align-items:center;justify-content:center;"><svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"/></svg></div><div style="flex:1;min-width:0;"><div style="display:flex;justify-content:space-between;align-items:center;gap:0.5rem;"><div style="min-width:0;"><div style="font-size:0.9rem;font-weight:600;color:var(--foreground);line-height:1.3;">Fixes after its own review</div><div style="font-size:0.75rem;color:var(--muted-foreground);line-height:1.3;">both pages</div></div></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="Paper" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:100%;height:10px;border-radius:0 5px 5px 0;background:#6890E8;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--foreground);">16</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="Figma MCP" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:68.8%;height:10px;border-radius:0 5px 5px 0;background:#F24E1E;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--foreground);">11</span></div></div></div>
<div style="display:flex;gap:0.9rem;padding:1rem 0;border-top:1px solid var(--border);"><div style="width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--foreground);display:flex;align-items:center;justify-content:center;"><svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"/></svg></div><div style="flex:1;min-width:0;"><div style="display:flex;justify-content:space-between;align-items:center;gap:0.5rem;"><div style="min-width:0;"><div style="font-size:0.9rem;font-weight:600;color:var(--foreground);line-height:1.3;">Sections I liked better</div><div style="font-size:0.75rem;color:var(--muted-foreground);line-height:1.3;">more wins</div></div><span style="font-size:0.7rem;font-weight:600;padding:0.1rem 0.5rem;border-radius:999px;border:1px solid var(--border);color:var(--foreground);white-space:nowrap;">Figma wins</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-paper.png" alt="Paper" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:66.7%;height:10px;border-radius:0 5px 5px 0;background:#6890E8;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);">8</span></div><div style="display:flex;align-items:center;gap:0.6rem;margin-top:0.45rem;"><img src="/images/blog/figma-vs-paper-ai-design/icon-figma.png" alt="Figma MCP" width="18" height="18" style="width:18px;height:18px;flex:none;margin:0;border:0;border-radius:0;background:none;"><div style="flex:1;min-width:0;"><div style="width:100%;height:10px;border-radius:0 5px 5px 0;background:#F24E1E;"></div></div><span style="width:4.6rem;flex:none;text-align:right;font-size:0.9rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--foreground);">12 ✓</span></div></div></div>
</div>
</div>
<figcaption>Figma won three rows, Paper won two. The Figma Agent finished in 10:48; it runs inside Figma, so the rest couldn't be logged.</figcaption>
</figure>

Paper works by doing a lot: about 10 tool calls a minute against Figma's 3. It writes to the canvas, takes a screenshot, fixes, writes again. Figma makes fewer, bigger writes.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/toolcalls.jpg" alt="Tool calls by type. Canvas writes 65 for Paper, 13 for Figma. Screenshots 35 and 15. Reads 1 and 3. Setup 6 and 3. Finish 2 and 1" width="1800" height="1384" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Where the calls went. Paper wrote to the canvas 65 times and checked its work with 35 screenshots. Figma: 13 and 15.</figcaption>
</figure>

That is also where the tokens go. Paper's line climbs the whole way. Figma's stays low and flat, and it finished at about a third of the tokens.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/tokens.jpg" alt="Tokens over time. Paper climbs steadily to 13.4 million, Figma stays low and ends at 4.1 million" width="1800" height="1028" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Tokens over the 11 minutes. Paper ends at 13.4M, Figma at 4.1M.</figcaption>
</figure>

On my Claude subscription that difference never reaches my bill. If you run your models through an API key, through OpenRouter or OpenCode, it does, and Figma is the cheaper tool to design with. Most of it is cache reads: the agent rereading context it already has.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/costs.jpg" alt="Actual costs table. Cache reads are 2.62 dollars for Paper and 78 cents for Figma, cache writes 1.59 and 98 cents, total 4.23 and 1.77 dollars" width="1800" height="1286" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>The bill at API list prices. Cache reads are most of Paper's $4.23.</figcaption>
</figure>

## The handoff is the part nobody measures

Every number above stops when the design is done. The real job doesn't.

Paper's canvas is HTML and CSS. When a Paper design goes into the codebase, the model is mostly copying code that already renders in a browser. Figma stores designs in its own format, so getting to code means translating every frame, fill and auto layout into CSS.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/code.jpg" alt="What each tool writes. Paper writes an HTML div with inline CSS. Figma writes plugin code with color values from 0 to 1 and a layer tree" width="1800" height="1158" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>The same header, as each tool actually writes it. Paper writes HTML. Figma writes its own values, like colors from 0 to 1.</figcaption>
</figure>

That translation takes time, it takes tokens, and every step is a chance to drift from what you approved.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/handoff.jpg" alt="Back to code. Paper's HTML and CSS go straight into the code base. Figma's values need a convert step first" width="1800" height="1260" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Back to code: Paper's path is a copy. Figma's has a convert step in the middle.</figcaption>
</figure>

I didn't time that half in this test. I have done it both ways enough to know which one is slower. So the token gap above is real, but it is the cost of the cheap half of the work.

## The Figma Agent: promising, and quiet

This was my first time using it. It finished in 10:48, almost exactly with the other two.

It did things the MCP servers couldn't. It found Peeko's real logo in my Figma file and used it in both themes. It used the icon set already in that file. It figured out the full height of the page before it started, and built both themes side by side.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/agent-build.jpg" alt="The Figma Agent building the Sunny Side and Night Watch pages side by side in Figma, at 10:33 on the clock" width="1800" height="1012" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>The Figma Agent near the end, with both themes on one canvas.</figcaption>
</figure>

The page itself was weaker. The arrow points at nothing. The hero is crowded. Tilted icons were trying to be playful and read as unprofessional to me. Two footer colors fight each other, and its dark theme was a step down from what the Figma MCP server made.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/agent-notes.jpg" alt="The Figma Agent's hero with two notes: the arrow is not pointing anywhere, and the pill badge looks off and weird" width="1800" height="806" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Its hero, with my two first notes. It did get the real logo in the corner.</figcaption>
</figure>

It had good ideas too. It put icons in a section where both MCP servers left them out, and its closing call to action is one I'd keep with a few changes. Here are both of its pages.

<figure style="margin:2.75rem 0;" data-wide>
<div style="display:flex;flex-wrap:wrap;gap:1rem;">
<div style="flex:1 1 260px;min-width:0;"><div class="browser-frame"><div class="browser-frame-bar"><span class="bf-dot"></span><span class="bf-dot"></span><span class="bf-dot"></span><span class="browser-frame-title">Figma Agent · Sunny Side</span></div><div class="browser-frame-scroll"><img src="/images/blog/figma-vs-paper-ai-design/page-agent-sunny.jpg" alt="The full Sunny Side landing page Figma's Figma Agent designed for Peeko" width="1200" height="6752" loading="lazy" style="display:block;width:100%;height:auto;"></div></div></div>
<div style="flex:1 1 260px;min-width:0;"><div class="browser-frame"><div class="browser-frame-bar"><span class="bf-dot"></span><span class="bf-dot"></span><span class="bf-dot"></span><span class="browser-frame-title">Figma Agent · Night Watch</span></div><div class="browser-frame-scroll"><img src="/images/blog/figma-vs-paper-ai-design/page-agent-night.jpg" alt="The full Night Watch landing page Figma's Figma Agent designed for Peeko" width="1200" height="7712" loading="lazy" style="display:block;width:100%;height:auto;"></div></div></div>
</div>
<figcaption>Everything the Figma Agent made in 10:48, from one markdown file.</figcaption>
</figure>

The bigger problem was the silence. For long stretches nothing changed on the canvas, and at one point I wasn't sure it was working at all. It is the same lesson as the race. When an agent is designing, showing its work is a feature.

## Where the human stays

The visuals were closer than a 12 to 8 score makes them sound. For most sections all three tools got me to the same place, and the difference came down to the prompt. My score is one designer's taste on one brief.

It was also one run per tool. Run it again and some of those calls flip.

None of these pages ships as is. Two tools invented the same odd logo. The arrows, the shadows, the footer colors all still need a person who knows what Peeko is supposed to feel like. The agents got me a strong first draft in 11 minutes. The design is still my job.

<figure style="margin:2.75rem 0;" data-wide>
<img src="/images/blog/figma-vs-paper-ai-design/pages.jpg" alt="All four finished pages side by side: Paper and Figma Sunny Side, then Paper and Figma Night Watch" width="1800" height="1080" style="display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);">
<figcaption>Four finished pages in 11 minutes each. A strong first draft, not a launch.</figcaption>
</figure>

## Who each one is for

Pick Paper if you want to watch the design happen and steer it, if you want to try many directions in parallel (it works with much cheaper models too), and if the design is headed to code.

Pick the Figma MCP server if you pay per token, or if the design lives in Figma because your team does.

Give the Figma Agent another few months. The context it can reach inside your Figma file is a real advantage. It needs to show you what it is doing.

I used to judge an AI design tool by its output. In this test the output was close. What wasn't close was how soon I could see it, and how far it was from real code. The best AI design tool is the one you can watch.
