Databases (.base)

Last reviewed: 2026-07-07

With .base files you turn notes into databases: tables, boards, calendars — with filters, typed properties and relations between databases. The concept resembles Notion databases, with one decisive difference: the data does not live in the database, it lives in your notes.

Tip: If you create a new vault from the PARA, GTD, Zettelkasten or Journal template (see Getting Started), matching databases are already set up and linked together — a good starting point for seeing how everything fits together.

The core concept

A .base file stores only the view of your notes: which sources (folders, tags), which views, which filters and columns. The actual values live in the frontmatter of the individual Markdown notes — every table row is a note.

Concretely, that means:

The file format is compatible with Obsidian’s Bases format (details at the end of this page).

Creating a database

Every database can carry its own icon with a Database icon color — visible in the file tree, tabs and header.

Views

A database can have any number of views; each has a View type:

ViewWhat for
TableClassic grid, sortable, with inline editing and optional sub-items
ListCompact row list
GalleryCards with an optional Cover image
BoardKanban columns grouped by a property (Group by) — dragging cards between columns changes the value
CalendarEntries by Date field on a month calendar, draggable
TimelineTime axis with Start date and optional End date

Add view creates more; View options offers Rename, Duplicate, Delete and drag-reordering. Plainva remembers the last active view per file. Calendar and Timeline need a date field (Date only or Date & time as the Format); entries display the fields enabled under Properties.

Configure: sources, filters, sort, properties

The Configure button (top right) opens the panel with four areas:

Properties and field types

Clicking a column header opens the property editor (Property: X):

Behavioral notes:

Relations

Relations link notes to each other — like in Notion, but stored as perfectly normal [[wiki links]] in the frontmatter (visible in Obsidian as clickable property links).

Creating new entries

The Entry button at the top left (formerly New; clearly separate from the sidebar’s global New) creates a new item:

Everyday usage

Example: what a .base file looks like

.base files are YAML — here is a simple project list:

filters:
  and:
    - 'file.hasTag("project")'
properties:
  note.status:
    displayName: Status
    plainva:
      input: status
      options:
        - value: open
          color: teal
          group: Active
        - value: done
          color: gray
          group: Completed
views:
  - type: table
    name: All projects
  - type: table
    name: Board
    plainva:
      render: board
      groupBy: status

Everything Plainva-specific (colors, board rendering, relations, storage folder) lives under plainva: keys.

Editing .base files directly (tools and AI)

If a script or an AI assistant writes .base files without going through Plainva, three hard rules matter — break one and Obsidian refuses to open the whole file:

One more gotcha: property ids are note.-prefixed in the properties: map and in a view’s order/sort (note.status), but bare inside filter expressions (status == "Done") and inside plainva sub-keys (groupBy: status).

The complete on-disk contract — every field, the full two-sided relations example, and the safe-editing rules — is in the File Format Reference.

What about Obsidian?

The format matches Obsidian’s Bases format; Plainva writes its extensions exclusively into plainva: sub-keys, which Obsidian ignores (“graceful degradation”):

See also