VAULT NOTE
Content Schema
The data model powering isHistory — how archive posts and vault notes are structured, validated, and rendered.
The isHistory content model is designed around two complementary collections that serve different authoring workflows while sharing a common rendering pipeline.
Archive Collection
The archive collection uses Astro’s built-in glob loader with a strict Zod schema. Every field is validated at build time:
- title — 5-120 characters, used in
<title>, OG tags, and JSON-LD - date — Required publication date, drives
article:published_timeand sitemaplastmod - description — 15-160 characters, used in meta description and OG description
- series / seriesOrder / track — Series membership for serialized content
- tags — Array of lowercase slugs for categorical organization
- dateModified — Optional, only set when content is substantively revised
Vault Collection
The vault collection uses astro-loader-obsidian with a more flexible schema derived from Obsidian conventions:
- title — Auto-derived from frontmatter, first h1, or filename
- created / updated — From frontmatter or file system timestamps
- tags — Both frontmatter tags and inline hashtags in the body
- links — Auto-computed array of all double-bracket wiki-links with resolved hrefs
- permalink — Auto-generated URL path based on the
urlconfig option
Wiki-Link Resolution
The loader resolves wiki-links at build time:
- A double-bracket link with title “Technical Stack” resolves to
/vault/technical-stack - A double-bracket link with alias syntax “Vision & Architecture” with display text “our vision” resolves to
/vault/vision-and-architecture - An embed syntax for “image.png” renders as
<figure><img></figure>with Astro image optimization
See Also
- [[Vision & Architecture]] for why we chose this dual-collection approach
- Technical Stack for the implementation technologies