🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.
Open menu
Switch to Darkhello@product.inc

Keep the evidence on screen

Tags: citations, sources, verification

Checking has to cost less than trusting. A click already costs more β€” so an answer with footnotes is auditable in principle and unaudited in practice, which is the worst of the available outcomes: the interface has discharged its obligation and the reader has verified nothing.

The click is the problem, not the solution

Every citation link asks the reader to make a decision: is this claim worth leaving the page for?

They almost always decide no, and the reason is not laziness. Following the link costs an action, a context switch, time finding the relevant part of whatever opened, and then the work of getting back to where they were and remembering what they were reading. Trusting costs nothing. Presented with that ratio a few hundred times a day, a reasonable person trusts.

So the footnote produces the appearance of verifiability. Everyone involved can point at it. Nobody is checking. And a product that measures its citations rather than its verifications will report that this is going very well.

Adjacency makes verifying a glance

The fix is geometric rather than informational. Put the source in the same viewport as the claim, with the relevant span marked, and verification stops being a navigation and becomes a saccade.

Three things have to be true for that to work:

The price is honest and it is high: half your width, and a layout that can no longer be one comfortable column. That is the real reason products footnote instead, and it is worth naming rather than pretending this is free.

When the click is unavoidable

Rendering diagram…

Sometimes there are forty sources, or the source is a gigabyte, or it belongs to someone who has not licensed you to display it. Then the click is real and the job shifts: make the landing precise. Opening a 300-page PDF at page one is not a citation, it is a receipt for having had one.

Grounded in

DocRobot keeps the document in view beside the conversation. Every answer sits next to the page it came from, so a team can trace a response back to its source without leaving the screen β€” which was not a nicety in that product but the condition of its existence, because the users were reviewing contracts they would be held to.

It cost the product half its width. Everything else in that interface had to be designed around a permanent second pane, and the redaction flow, the corpus view and the answer surface all inherited that constraint. That is the trade this pattern asks for, stated honestly: the two-pane layout is not a layout preference that happened to be available, it is the pattern, and a product that wants it has to give up the single comfortable column before anything else gets designed.

Anti-patterns

The smallest version worth building

If the source is short, stop linking and quote it. That alone handles a surprising share of cases and costs nothing but a line of layout.

If it is long, make the link land on the span rather than the document β€” scroll position and a highlight. That is usually a fragment identifier and an anchor, and it converts a receipt into something a reader might actually use.