Why Claude's "Publish" Button Doesn't Work for Internal Sharing
When you create an artifact in Claude's web UI, there's a Publish button. Clicking it does one thing: creates a publicly accessible URL on `claude.ai/public/artifacts/{uuid}`.

What Claude's Publish button does
When you create an artifact in Claude's web UI, there's a Publish button. Clicking it does one thing: creates a publicly accessible URL on claude.ai/public/artifacts/{uuid}.
On Free, Pro, and Max plans, this URL is fully public. Non-Claude users can view the artifact without signing in. The URL is tied to the artifact, and unpublishing is permanent and irreversible, destroying all associated storage.
There's no company restriction, no domain allow-list, and no authentication. Anyone with the link can view it.
The gap: no middle ground between public and org-only
Claude's sharing model has two modes:
Team/Enterprise plans: Artifacts can be shared within the Claude organization. Viewers must have Claude seats on your plan. If your PM, VP, or sales team don't have Claude seats, they can't view it. At $25–$30/seat/month per viewer, sharing an artifact with 20 non-Claude teammates costs $500–$600/month in new seats.
Free/Pro/Max plans: The URL is fully public, with no restriction of any kind.
There is no middle option. There's no "only people with @yourcompany.com emails" setting, no domain restriction, and no one-time password for specific external viewers. The Publish button is binary: public or org-internal (with seats required).
Why this matters
Internal content is internal for a reason.
Architecture proposals contain system design decisions competitors would value. Competitive analyses contain research that shouldn't be public. Financial models contain data that's material and regulated. Client presentations reference relationships that are confidential.
Putting any of this at a publicly accessible URL (even an obscure one) doesn't satisfy security policy, compliance requirements, or basic information hygiene. "Nobody will guess the URL" is not access control; it's a 128-character obfuscation that disappears the moment someone forwards the link.
The Publish button is designed for demos and public sharing, not for internal distribution of sensitive content.
The second problem: Claude Code's publishing is Claude-org-only
Claude Code Artifacts turns session work into interactive pages (PR walkthroughs, reports, dashboards) with live updates and versions. It exists, it works, and it is org-private by default. But it solves only the native Claude org workflow:
- Sharing is Team/Enterprise-only, and viewers need a Claude seat. Publishing an artifact works on Pro, Max, Team, and Enterprise, but on Pro and Max the page is private to you alone — you can't share it with anyone. Only on Team and Enterprise can you share it, and then only with authenticated seats inside your Claude org. A PM, VP, or sales lead without a seat on your plan cannot open the page.
- Claude-only as a source. The page has to come from Claude. There is no path to publish the same artifact from Codex, Cursor, CI, or a local model.
- No external or public sharing. No guest links, no @yourcompany.com middle ground for people outside your Claude org.
- No comments. Feedback lives somewhere else (Slack, email) and never lands back on the artifact.
So the gap is narrower than "there's no Publish button" but it is the same shape as the web UI gap above: viewing is bound to Claude seats, the source is locked to Claude, and there is no neutral layer where any agent's HTML lives behind your company login.
This matters because Claude Code is one of several places AI-generated HTML comes from. Engineers also generate architecture diagrams, competitive analyses, and visual reports from Cursor, Codex, CI jobs, and local models. None of those can publish into Claude Code Artifacts, and every coding agent that writes HTML to disk still has no native path to a company-authenticated URL.
The workarounds people use (and why they fail)
Screenshot + Slack: Loses all interactivity. Charts freeze, tabs disappear, and the artifact is degraded permanently.
Download + email: HTML attachments are blocked by most corporate email security policies. Even when they arrive, opening locally breaks relative paths and network-dependent JS.
Share via Claude org: Works only if every viewer has a Claude seat. At $25–$30/seat/month per viewer, this is prohibitively expensive for wide distribution.
Tell the viewer to sign up for Claude: Adds friction and cost. Most stakeholders who need to see an artifact (PMs, VPs, legal, sales) shouldn't need an AI coding tool subscription to view a report.
The actual solution: publish outside Claude to a gated URL
For Claude Code users (CLI workflow):
claude code "Generate an interactive architecture diagram as HTML"
dsp publish ./architecture.html
Viewers click the link, authenticate with their company Google or Microsoft email, and see the full interactive page in five seconds, once.
For Claude Desktop users (no terminal):
Configure the display.dev MCP server once. Then, in any Claude conversation, say: "Publish this to my team." Claude calls the MCP publish tool and returns a company-gated URL in the conversation.
No terminal, no file download, and no configuration after initial setup.
What display.dev adds that Claude's Publish button doesn't
| Feature | Claude Publish | display.dev |
|---|---|---|
| Restrict to company domain | ❌ | ✅ |
| Viewable without a Claude seat | ❌ (Team/Enterprise seats) | ✅ |
| Open to anyone with company login | ❌ | ✅ |
| Publish from Claude Code | ✅ (Claude org only) | ✅ (behind company auth) |
| Publish from Cursor / Codex / CI | ❌ | ✅ |
| Viewer analytics | ❌ | ✅ |
| One-time password for external viewers | ❌ | ✅ |
| Custom domain | ❌ | ✅ (Pro+) |
| Price | Included in plan | €49/month flat |
Claude creates the artifact, and display.dev is where you publish it for the company. These tools are complementary, not competing: Claude is an upstream creator, and display.dev is the downstream distribution layer.
Publish your first Claude artifact behind company auth, free →
FAQ
Does Anthropic plan to add company-restricted sharing?
Claude Code Artifacts already added org-internal artifact sharing: publishing works on Pro, Max, Team, and Enterprise, but sharing is Team/Enterprise-only (on Pro and Max the page stays private to you), and shared pages are viewable only inside your Claude organization. It stays Claude-native. Viewers still need a Claude seat in your org, the source has to be Claude, and there is no announced neutral cross-agent layer, no external or guest sharing, and no comments. Building an identity-aware, multi-IdP distribution layer for HTML from any agent is a different product from an AI assistant. Anthropic's sharing keeps improving for Claude-org-internal use; it's unlikely to become a general-purpose gated publishing solution that opens viewing beyond Claude seats.
What if I'm on Claude Team, can't I just share within the org?
You can, provided every viewer has a Claude Team seat. If any of your stakeholders (PM, VP, legal, sales, design) don't have seats, they can't view the artifact. For engineering-only audiences where everyone is on Claude Team, org sharing works. For cross-functional distribution, it doesn't.
Do I need to be a Claude user to use display.dev?
No. display.dev works with any HTML file from any source (Claude Code, Cursor, Codex, a CI pipeline, a data export, a manual build). You don't need a Claude subscription.
Can I publish from Claude Code (CLI), not just Claude chat?
Yes. The dsp publish CLI command publishes any local HTML or Markdown file. Install the CLI, authenticate once, and run dsp publish ./file.html. Claude Code, Cursor, and Codex all write HTML to disk, and the CLI works with all of them.
Free tier. No credit card. One-time password auth for viewers on free, Google + Microsoft SSO on Pro (€49/month flat).