Map
โ†‘Obsidian

Obsidian Bases

Wiki conceptobsidianpkmtooling โ†ณ show in map Markdown
title
Obsidian Bases
type
concept
summary
Obsidian's built-in database views over frontmatter โ€” YAML filters, formulas, and table views, used here as the vault's maintenance dashboard
parent
obsidian
tags
obsidian, pkm, tooling
created
2026-07-22
updated
2026-07-22

Bases is Obsidian's native answer to Dataview: a .base file declares filters, computed formulas, and named views over the frontmatter of every note in the vault, and Obsidian renders each view as a sortable table. Unlike Dataview it ships with the app and needs no plugin, and unlike Dataview the query language is YAML rather than a DSL, which makes a .base file readable by anything that can parse YAML โ€” including whatever ends up serving the vault.

A view is embedded into a note like any other block: ![[wiki.base#Orphans (no inbound links)]].

What this vault uses it for

wiki.base at the vault root scopes itself to markdown files in wiki/ or toolbox/ and defines four formulas over each note:

formulas:
  age_days: (today() - file.ctime).days.round(0)
  stale_days: (today() - file.mtime).days.round(0)
  backlink_count: file.backlinks.length
  link_count: file.links.length

Five views build on those: All Pages, Orphans (no inbound links), Stale Pages, By Type, and Recent. The root index.md embeds four of them, which is what makes the front page a dashboard rather than a table of contents.

The filter vocabulary in use is small โ€” file.ext, file.inFolder(), file.name !=, file.backlinks.length == 0 โ€” plus groupBy, order, limit, and Average summaries. That narrowness is the reason the vault-site spec in meta/ treats a Bases interpreter as tractable: everything the five views need is already computed when a site walks the vault, so the subset can be reimplemented without implementing Bases.

The orphan view has never worked

Orphans (no inbound links) filters on file.backlinks.length == 0 and has never returned a row. wiki/index.md links to every wiki page except itself and the log, so every page has at least one backlink by construction. The view is not broken; the metric it measures is meaningless as long as catalog pages are counted.

Obsidian gives no way to exclude a page from backlink counting, which is why the vault half-fixed this by hand: the Stale Pages view filters out file.name != "index" and file.name != "log" while the orphan view does not. CLAUDE.md now marks those pages type: catalog and type: log so a consumer that can filter โ€” a site, a script โ€” has something explicit to filter on. Inside Obsidian the view stays empty.

Related: obsidian, files-as-graph-database, llm-wiki-pattern.