Skip to content

Schema

The schema is the heart of Bowerbird. It defines what types of notes exist, what fields they have, and how they’re validated.

Each vault has a schema at .bwrb/schema.json.

my-vault/
└── .bwrb/
└── schema.json

A schema defines:

  • Types — Categories of notes (e.g., task, idea, person)
  • Fields — Properties each type has (e.g., status, priority, deadline)
  • Config — Vault-wide settings (link format, default editor, etc.)
  • Audit — Configuration for schema validation
{
"types": { ... },
"config": { ... },
"audit": { ... }
}

See the Schema Reference for complete property documentation.

The schema is the source of truth. Notes must conform.

  • Hard enforcement on CLIbwrb new refuses to create invalid notes
  • Soft enforcement on edits — Files can drift, but bwrb audit catches it
  • TypeScript analogy — Like tsc, Bowerbird can fail builds on schema violations