Skip to content

Content Relationships

Collections in my-buddy connect to each other in two ways:

  1. Frontmatter references — Slug fields that point to entries in other collections
  2. Wiki links[[slug]] syntax in markdown body text
accounts → contacts (contact.account)
accounts → deals (deal.account)
accounts → projects (project.account)
accounts → meetings (meeting.account)
contacts → deals (deal.contact)
projects → tasks (task.project)
projects → meetings (meeting.project)
projects → journals (journal.projects)
any → kb (wiki links in markdown body)

These are typed slug fields in frontmatter that create direct relationships:

FromFieldToCardinality
ContactaccountAccountMany-to-one
DealaccountAccountMany-to-one
DealcontactContactMany-to-one
ProjectaccountAccountMany-to-one
TaskprojectProjectMany-to-one
MeetingaccountAccountMany-to-one
MeetingprojectProjectMany-to-one
JournalprojectsProjectMany-to-many

Any entry can reference any other entry in its markdown body using [[slug]] syntax. These are resolved at build time and tracked in the backlink index.

Common patterns:

  • Meeting notes referencing attendees: Met with [[sarah-chen]]
  • Tasks referencing context: Part of [[acme-crm-integration]]
  • KB articles cross-referencing: See also [[meeting-best-practices]]

The relationship between accounts and deals follows a specific workflow:

Lead account → Deal (discovery → proposal → negotiation → closed-won)
→ Account type changes from lead to client

This conversion is manual — edit the account frontmatter from type: lead to type: client when a deal closes.

Every entry automatically displays a “Referenced by” section showing all other entries that link to it, whether through frontmatter references or wiki links. This is generated at build time from src/data/backlink-index.json.