See it as a diagram
Everything below, as a diagram you can edit. Describe yours and see it in seconds.
No account needed · Editable canvas, not a picture
What Linear does with an image address
The Linear developer guide on uploading files describes putting a URL inside markdown content as the easiest way to upload a file when creating an issue, a comment or a document: Linear fetches the file and stores it in its own private cloud storage. The same guide accepts a base64 data URI as an alternative, and routes everything that is not an image through a fileUpload mutation that returns a pre-signed URL, with the warning that the PUT has to run server side because Linear's own Content Security Policy blocks it from the browser. Three inputs, one outcome: an asset Linear owns.
So the markdown image line does render. It just stops being your URL the moment it is saved. Nothing in the issue points at the origin any more, no request goes back out, and no cache header applies. The picture in the issue is a photograph of the diagram taken the day it was pasted.
The editor is also a rich-text editor, not a markdown renderer. Markdown you paste is converted once into the Linear document model rather than re-parsed each view, which is another reason nothing about that image is going to change later.
Copies are right for evidence and wrong for architecture
The rehosting behaviour is a deliberate, sensible design. Issue attachments must not break when someone deletes a Slack file or rotates a bucket, and a permanent copy is the only way to guarantee that. Every screenshot, log excerpt and design comp in Linear benefits from it.
An architecture diagram is the one class of image that wants the opposite guarantee. Its value is that it matches the system today, and a copy cannot promise that. So do not fight the platform: let Linear copy the things that should be frozen, and keep the reference view as a link.
Architecture (live, opens without an account): https://datadef.io/embed/my-platform-a1b2c3d4 Pasted below: the topology as of this milestone, for the record.
Pasted links: what auto-embeds and what stays a link
Linear turns pasted links from applications it integrates with into rich previews, YouTube, Loom and Descript among them, and Figma files preview when the Figma integration is configured. Anything outside that set stays a link, and Linear offers Keep as link, or pressing Escape after the paste, to stop a preview forming at all.
That is the correct outcome here. A link is stable, it survives the diagram changing, and clicking it opens the current picture. Put it where readers will look first: the project description, the top of the Linear document, or the issue description under a plain heading.
The interactive page at /embed/<slug> is the better target for a link than the raw image, because it lets the reader pan and zoom a large diagram in a browser tab rather than squint at a fixed PNG.
The Linear document is the right container
Linear documents are where a project keeps prose that outlives individual issues, and an architecture reference belongs there rather than in a comment thread. One line with the live link at the top of the project document gives every issue in that project a single place to check.
When you do want a frozen picture, attach an export at a milestone boundary and label it with the date. PNG and JPEG exports come from the same endpoint the live view uses, so the copy you attach is exactly the drawing that was live at that moment.
One habit that prevents the drift
Keeping the diagram behind the link accurate
A link is a promise about freshness, so the diagram has to move. Connect the repository read-only from GitHub, GitLab or Azure DevOps, choose a branch or tag, and the daily sync regenerates both the diagram and an architecture.md.
Regenerating is not rearranging. Every node carries the source id the generator gave it, each sync records the position it left that node at, and on the next run a node sitting more than twelve pixels away from the recorded position is read as a human decision and pinned. A diagram nobody has touched stays free to re-lay out; one you spent twenty minutes arranging for a project document holds still. When the structure genuinely did change, the previous diagram's ids, labels and zone names are handed to the generator with an instruction to reuse them, which is what makes a new consumer a one-node delta instead of a new composition with new names.
Teams already running agents can go further. The Datadef MCP server works with Claude Code, Cursor, Claude Desktop and ChatGPT, and exposes repo_status and repo_refresh, so refreshing the diagram becomes part of the same session where the code changed. See agents and MCP.
FAQ
Does markdown image syntax work in a Linear issue?
Can I show a diagram inside Linear that updates by itself?
Does the person clicking the diagram link need an account?
Should I attach an exported diagram to a Linear issue at all?
What export formats are available for the attached copy?