DEFINE FIELDS.
STOP ERRORS.
The schema builder lets you define what frontmatter fields your content uses. Set the type, mark required fields, and configure defaults. md0 renders them as a structured form panel — no hand-editing YAML, no broken frontmatter from a typo.
START FREEField Types
Each collection gets its own schema. Schemas are per-collection — your blog post schema can differ from your docs schema.
Single-line string. For titles, slugs, author names, URLs.
Multi-line string. For descriptions, excerpts, summaries.
ISO date field. Renders a date picker. Saves as YYYY-MM-DD.
True/false toggle. For draft, featured, published flags.
Integer or float. For order, priority, year, word count.
Dropdown with predefined options. For layout, category, status.
Group related fields. For SEO metadata, author info, social links.
Schema Rules
REQUIRED FIELDS
Mark fields as required. md0 blocks saving if a required field is empty. No more posts published with missing titles or dates.
DEFAULT VALUES
Set a default for any field. New posts start with the right layout, draft:true, or a default author — without the editor having to remember to fill them.
TYPE VALIDATION
The form enforces types at input time. A date field won't accept free text. A boolean renders as a toggle, not a text box. Your frontmatter stays well-formed.
SELECT OPTIONS
For select fields, you define the allowed values. Layout options, category lists, status enums. The editor picks from a dropdown rather than typing free text that might not match your template.
Example Blog Post Schema
titletextrequireddatedaterequiredexcerpttextareaoptionalauthortextdefault: "Your Name"categoryselectoptions: tech, design, businessfeaturedbooleandefault: falsedraftbooleandefault: truemd0 renders this schema as a structured form panel above the editor. Every new post starts with these fields pre-populated.