engineering 5 Sep 2026 · 3 min read

Links That Show What They Are

Paste a ToRun link into a group chat and, until this week, you got the platform's default card: same title, same image, whether the link was a poem, a spreadsheet or a video of your dog. The cause is mundane. The app is…

ToRun Team ToRun Team

Paste a ToRun link into a group chat and, until this week, you got the platform's default card: same title, same image, whether the link was a poem, a spreadsheet or a video of your dog. The cause is mundane. The app is a single-page application, and the crawlers that build link previews do not run JavaScript; they read the first HTML they receive, which is the same for every route.

The fix is to stop sharing that address. Every share now points at a page on torun.ai that is rendered on the server — a chat at /c/…, a canvas at /s/…, a workflow result at /r/…, a piece of media at /p/… — with real metadata in the head. The apps ask the server for the canonical link rather than composing one, so the same share reads the same everywhere, and the in-app viewers keep working as before.

A card for every share

Metadata alone gives you a title. The picture comes from a small image service on the same host that renders a 1200 by 630 card for each share on demand: the kind of thing it is, the title, a line of context — the first message, the description, or "Made for Ayşe" — and, when there is one, the first image cover-cropped behind a dark gradient, with the ToRun mark in the corner. Cards are cached, and a share that has been revoked, has expired or was taken down serves the plain brand card instead of an error, so a dead link still unfurls into something honest.

Videos are never handed to the crawler. A preview gets the poster and the title; the video plays on the page, where the person who owns it decided who can see it.

Shared chats carry their files

A shared conversation was text only. If you had asked about a photo, the reader saw the question and not the photo; if the assistant had made an image, the reader saw a broken link a few hours later, because the address in it expired. Shares made from now on include the files: uploads as thumbnails under the message, generated images inline. They are served through a door that opens only while the share itself is live — revoke the share and the files go with it — and the addresses in the transcript never expire.

It is on by default. If you would rather share the words alone, the share sheet has a switch, and the choice is frozen into that share.

The share sheet also proposes a line of text in your language with the link inside it, so what lands in the group is not a bare URL. The wording is different for a chat, a canvas, a result and a video, and it is yours to edit.

None of this changes who can see what. A link is still the key; it can still expire; a moderator's takedown still hides the page, the card and the files in the same moment.