TypedMark Typed Markdown note systems
Essentials

Getting Started

Audience: first-time collection authors.

See also:

This page is a non-normative tutorial. It shows how little is needed to turn a folder of Markdown notes into a Core Profile typed collection: one configuration file, one note type, one template, one note. Every step links to the section that governs it.

1. Create typedmark.md#

At the root of your notes folder, create typedmark.md. The frontmatter is the configuration; the body is yours to use for explanations (governed artifact format).

---
specification_version: 0.0.1
name: my-notes
description: My personal notes.
---

# My Notes

Meeting notes live in Meetings/ and are typed as `meeting`.

Those three frontmatter keys are enough for the Core Profile (Collection Model). The omitted collection defaults expand to metadata_directory: .typedmark, exclude_paths: [.git/**], and validation_defaults: {}.

2. Define a note type#

Create .typedmark/schemas/meeting.md. The file name (without .md) must equal the note_type (Note Type Schemas).

---
specification_version: 0.0.1
note_type: meeting
label: Meeting
icon: calendar
kind: dated_record
description: Notes for one meeting.
storage:
  folder_pattern: "Meetings"
  note_name_pattern: "{meeting_date} - {title}"
frontmatter:
  note_type:
    type: text
    const_value: meeting
  title:
    type: text
    not_blank: true
    nullable: false
  meeting_date:
    type: date
    generated: now
    immutable: true
    nullable: false
---

A meeting note records one meeting: who, what, decisions.

This declares where meeting notes live and how they are named (storage rules), and which frontmatter fields they carry (Field Definition Reference). relationships, headings, and guidance are optional and default to "no constraints".

The omitted schema defaults expand to abstract: false, template.file: "meeting.md", and storage.archive.policy: in_place_historical.

3. Create the template#

Create .typedmark/templates/meeting.md with valid starter frontmatter (Templates):

---
note_type: meeting
title: ""
meeting_date: null
---

## Agenda

## Decisions

The empty title and null meeting_date are template placeholders. A tool instantiating the template replaces them with user-provided and generated values before writing a conforming managed note (template placeholder rules).

4. Write a note#

Create Meetings/2026-06-10 - Kickoff.md:

---
note_type: meeting
title: Kickoff
meeting_date: 2026-06-10
---

## Agenda

Project kickoff.

## Decisions

We ship.

That note is a conforming managed note: its note_type maps it to the meeting schema (note-type mapping), its path matches the storage pattern, and every declared field is present with a valid value (managed note contract).

Where to go next#