2026-06-25

Why rendered views are the real deliverable in Obsidian

Most export tooling in Obsidian treats the note as the unit of delivery. Most actual sharing uses something smaller — a table, a callout, a Dataview block, a Bases view. The mismatch is the source of a lot of friction.

#obsidian#knowledge-externalization#design

There's an assumption baked into most Obsidian export tooling that has aged badly. The assumption is that the note is the unit of delivery — that when someone wants to share knowledge from their vault, they're going to share a whole note.

This was true five years ago. It's mostly not true now. And the gap between "what export tools optimize for" and "what people actually share" is the source of a surprising amount of workflow friction.

This post is an argument for a different unit of analysis: the rendered structured view. The case is that if you look at what people actually paste into chat threads, attach to emails, screenshot for status updates, or embed in blog posts — it's almost never the whole note. It's a fragment. Specifically, it's a fragment that already had structure when it was rendered.

The plugins, formats, and workflows that take this seriously will do better at serving real users. The ones that keep treating "the note" as the deliverable will keep producing tooling that requires manual handoff work to actually use.

The whole-note assumption

Look at the major export-shaped tools in the Obsidian ecosystem:

  • Obsidian Publish — publishes notes, as notes. The unit is the file.
  • Quartz — static site generator. Takes notes, produces site pages. Unit is the file.
  • Webpage Export plugin — exports notes (or selected notes) as standalone HTML pages. Unit is the file.
  • Most Markdown-to-PDF flows — print one note at a time. Unit is the file.

Every one of these is reasonable. Every one of these treats the note as the atomic deliverable. And every one of these starts to feel awkward when the actual deliverable is part of a note, not the whole note.

Here's the thing: when these tools were built, the note really was the most common unit. People were publishing essays. They were converting longer-form notes into blog posts. The note → page mapping was natural because the use case was note-as-document.

That use case still exists. But it's increasingly not the dominant one.

What changed

Two things shifted, gradually, over the last few years:

First, notes got more structured. A modern Obsidian note isn't a single block of prose. It contains tables, callouts, embeds, transclusions, Dataview blocks, Mermaid diagrams, code blocks with computed output, and — most recently — Bases views. The note has become a container for many smaller things, each of which has its own integrity.

Second, the way people share knowledge fragmented. A decade ago, "publishing" meant blog posts. Today, most knowledge sharing happens in messages — Slack, Discord, WhatsApp groups, Signal, async update threads at work. These channels don't want a 2000-word essay. They want a table, a chart, a list, a one-paragraph summary. The unit of consumption is small.

When you put those two shifts together, the resulting workflow looks like this:

  1. User has a long note containing multiple structured elements
  2. User wants to share one of those elements — a specific table, a specific callout, a specific Dataview result
  3. User reaches for an export tool that expects the whole note as input
  4. Mismatch; user does manual workarounds (screenshot, copy-paste, manual cleanup)

The friction isn't in the user's workflow. It's in the assumption baked into the tooling.

The rendered structured view as a unit

Concretely, here are the kinds of fragments that show up as deliverables more often than people realize:

  • A specific Markdown table that summarizes a comparison — pasted into a project review thread
  • A Bases Table view showing a list of in-progress projects — sent to a manager as a weekly status
  • A callout block summarizing the decisions from a meeting — copied into the calendar event description
  • A Mermaid diagram generated from a flow design — embedded in a docs PR
  • A Dataview block listing all open tasks for a project — included in a status update
  • A Bases Cards view showing a reading list — sent to a friend who asked for recommendations
  • A code block with computed output showing the result of a small calculation — pasted into an answer

What unites all of these:

  1. They were structured — not free prose
  2. They were rendered — they have a final visual or data form
  3. They live inside a larger note, but the note isn't what's being shared
  4. They're the actual unit of delivery — the receiver wants this fragment, not the surrounding context

The note containing them is a working document. The view inside the note is the deliverable.

Why this is structurally underserved

If the rendered structured view is the real unit, why does so little tooling target it?

A few reasons:

Tooling follows the file system. Files are the natural source unit — they're what you can list, read, and write. Building a tool that operates on "the rendered table at line 47 of file X" requires running Obsidian's renderer, which is a much heavier ask than reading a Markdown file. So tools default to file-level operations.

Markdown is the source of truth. Most tooling round-trips through Markdown — read it, transform it, write it back. But rendered structured views are precisely the things that don't survive Markdown round-trips well. A Bases view in Markdown is a YAML block; the actual table is generated at render time. A Dataview block in Markdown is a query string; the actual list comes from running the query.

Sharing fragments isn't a problem people complain about loudly. Users learn to work around it (screenshot, manual paste) and stop noticing the friction. They don't file issues saying "I wish I could share a single rendered table" — they just take a screenshot. The friction is invisible because it's been normalized.

The receiver-side bias. Most export tooling is built by authors thinking about authors. But the relevant question is what the receiver needs. A receiver doesn't open Obsidian to read your note; they open Slack and read what you pasted in. Building for the receiver means optimizing for the fragment that lands in their channel, not the file the author wrote.

What this means for plugins

If you're building plugin or tooling in the Obsidian ecosystem, the strategic implication is concrete:

Target the rendered view, not the source file. When the user invokes "export", let them export one specific rendered view from the active note, not the whole note. Hover-detection, click-detection, or last-touched-view are all reasonable selection mechanisms.

Make the unit explicit. Don't make the user guess which view they're exporting. Show them "Bases table view (12 columns × 50 rows)" or "Markdown table (4 columns × 28 rows)" — the act of identifying the unit is half the value.

Preserve the unit's integrity. A Bases Table view exported as PDF should look like a table, not like a screenshot of the page containing the table. A callout exported as an image should look like a callout, not like a chunk of HTML. The unit had structure; the export should preserve that structure.

Don't bundle. The temptation is to add "export everything" as a feature. Resist it. Bundling defaults users back to the whole-note mental model, which is the thing you're trying to move them away from. Force the choice — which view? — and let users learn that this is the natural unit.

What this means for users

The practical takeaway, if you're using Obsidian for real work and routinely run into export friction:

Notice what you actually share. Next time you paste something out of Obsidian, ask yourself: was it a whole note, or was it a fragment? My guess is fragment, more often than you'd expect.

Pick tools that match the fragment. If you're routinely sharing tables, you want a table-export tool. If you're routinely sharing diagrams, you want a diagram-export tool. The "do everything" all-purpose export plugin will produce mediocre results for any specific fragment type.

Build your notes assuming the fragment will leave. When you put a table in a note, assume someone will eventually need that table somewhere else. Same for callouts, Dataview blocks, Bases views. Note-as-container is the right mental model; design your notes so the containers' contents survive being lifted out.

Resist the urge to "just share the whole note." It's tempting, but it forces the receiver to navigate a working document they don't have context for. Sharing the fragment is more work but produces better outcomes.

What this means for the next few years of Obsidian

I think the rendered structured view becomes the dominant unit of interoperability over the next two or three years, and the tooling layer slowly catches up.

A few specific predictions:

More structured-view types are coming. Bases is the most prominent recent example. There will be others. Whoever handles export for them well will own a meaningful category.

The "everything app" plugins will fragment. General-purpose export tools will lose ground to specialized tools targeting specific fragment types — table exporters, diagram exporters, callout exporters. Specialization beats generalization for fragment-level work.

API surface will catch up. Right now, plugins have to do a lot of DOM walking to identify rendered views. The Obsidian API will (hopefully) start to expose first-class hooks for "the rendered view at position X" — at which point the tooling gets much cleaner.

Workflow tools will follow. Beyond export, things like "send this Bases view to my project tracker" or "publish this table to the wiki" become natural once the unit is identified. The export step is the wedge; the workflow integration is what comes after.

The plugins that take this seriously now will be unusually well-positioned when these shifts land. The ones that keep treating "the note" as the deliverable will keep producing tooling that requires manual handoff work.

The single-sentence version

If the whole post is too long: stop optimizing for the note as the unit of delivery, and start optimizing for the rendered structured view inside the note. The user's actual workflow already operates at the smaller scale; the tooling just hasn't caught up.


This is a more opinionated post than usual. If you disagree — especially if you're building tooling in this space and have a different read — I'd be glad to hear it. The argument benefits from pushback.