specification overview
declared-md is a family of three open standards for self-hosted public profiles.
the normative specification lives at github.com/declared-md/spec. in case of conflict, the source repository wins.
the three standards
| standard | file | subject |
|---|---|---|
| individual identity | whoami.md | people |
| organization identity | whois.md | organizations |
| project identity | whatis.md | projects |
each standard is a small YAML frontmatter schema embedded in a Markdown file. the file must live in a public GitHub repository owned by the subject.
why three files
a person, a company, and a project share zero fields by design.
- people care about:
stack,status,available_for,pronouns - organizations care about:
size,industry,funding_stage,hiring - projects care about:
license,status,maintained_by,language
a single schema covering all three would produce a schema bad for everyone. three focused schemas with shared philosophy work better.
shared rules
all three standards share:
- format: UTF-8 Markdown with valid YAML frontmatter
- max size: 50 KB
- required fields:
declared,kind,name,handle - links object: all URLs must use
https://(exceptemailwhich usesmailto:) - versioning: semantic versioning at the family level
see shared rules for the complete list.
design principle
the file is the source of truth. the directory is just a view.
a declared-md file lives in the subject's own repository. the subject controls the data. if the directory disappears, the file remains valid. if the subject updates the file, the directory catches up on the next crawl.
version
current version: 1.0.1
see the changelog for the history of changes.