Organization
An organization associated with the presentation, typically the presenting company, but also hosts, partners, clients, or sponsors. The primary organization (role 'primary', else the first one) supplies the cover and section logo (unless design.logo overrides it) and the 'socials' header/footer field (its socials). Every field is also a built-in variable ('{{organization.name}}', 'organization.<id>.<field>'), and every logo a slide-scoped image ('var:organization.logo.icon', 'var:organization.<id>.logo'). Nothing else about an organization is drawn automatically. See docs/templates-and-variables.md.
Metadata
Field index
| Field | Type | Req. | Description |
|---|---|---|---|
| id | string | yes | Stable identifier for the organization, used to reference it from Speaker.organizationId and to address it in built-in variables as 'organization.<id>.<field>'. Must be unique among organizations (a duplicate is a validation error). |
| name | string | yes | Display name. The built-in variable 'organization.name' (primary organization) or 'organization.<id>.name' carries it into any string, such as a header or footer text of '{{organization.name}}'. |
| legalName | string | — | Optional legal entity name when it differs from the display name. Never drawn automatically; available as the built-in variable 'organization.legalName'. |
| logo | ref:Asset | ref:OrganizationLogo | — | The organization's logo. A path, URL or Asset is one logo for every shape; an object gives up to four shapes (full, stacked, icon, wordmark), each a path or Asset, or { onLight, onDark } for the two backgrounds. A path is resolved against the OPF file location; an HTTPS URL, data URI or 'asset:<id>' reference works too. SVG (preferred for vector logos) or PNG with transparency are typical. The primary organization's full logo (role 'primary', else the first organization) is drawn on cover and section slides unless design.logo names another or is false. Every logo is also a slide-scoped built-in image, placed with a whole-field reference in any image field: 'var:organization.logo' (the full logo), 'var:organization.logo.icon' (likewise stacked, wordmark, full), and 'var:organization.<id>.logo' or 'var:organization.<id>.logo.<shape>' for another organization. A missing shape falls back to full, and full to the first defined of wordmark, stacked and icon. The onLight or onDark value is chosen for each slide's background; a missing one uses the other. See docs/templates-and-variables.md and docs/design-resolution.md. |
| domain | string | — | Bare internet domain for the organization. Never drawn automatically and not used to look up assets; available as the built-in variable 'organization.domain'. |
| string | — | General contact email for the organization. Never drawn automatically; available as the built-in variable 'organization.email'. | |
| phone | string | — | Main contact phone number for the organization. E.164 format is recommended. Never drawn automatically; available as the built-in variable 'organization.phone'. |
| tagline | string | — | Short tagline. Never drawn automatically (cover slides do not show it); available as the built-in variable 'organization.tagline', for example in a footer 'text' of '{{organization.tagline}}'. |
| role | enum | — | Role of the organization relative to the presentation. Only 'primary' has behavior: it selects the primary organization (cover and section logo, the 'socials' header/footer field, and the 'organization.<field>' built-ins). When no organization has role 'primary', the first one is primary. 'partner', 'client', 'sponsor' and 'host' are descriptive labels that change nothing.
|
| socials | ref:Socials | — | Optional social media handles or URLs for the organization. The primary organization's socials render in header/footer zones that set socials: true; otherwise they are authoring metadata. |
id
typestringrequiredyesdefault—pattern^[a-zA-Z0-9_-]+$
Stable identifier for the organization, used to reference it from Speaker.organizationId and to address it in built-in variables as 'organization.<id>.<field>'. Must be unique among organizations (a duplicate is a validation error).
{
"id": "acme"
}name
typestringrequiredyesdefault—
Display name. The built-in variable 'organization.name' (primary organization) or 'organization.<id>.name' carries it into any string, such as a header or footer text of '{{organization.name}}'.
{
"name": "Acme Corp"
}legalName
typestringrequirednodefault—
Optional legal entity name when it differs from the display name. Never drawn automatically; available as the built-in variable 'organization.legalName'.
{
"legalName": "Acme Corporation, Inc."
}logo
typeref:Asset | ref:OrganizationLogorequirednodefault—
The organization's logo. A path, URL or Asset is one logo for every shape; an object gives up to four shapes (full, stacked, icon, wordmark), each a path or Asset, or { onLight, onDark } for the two backgrounds. A path is resolved against the OPF file location; an HTTPS URL, data URI or 'asset:<id>' reference works too. SVG (preferred for vector logos) or PNG with transparency are typical. The primary organization's full logo (role 'primary', else the first organization) is drawn on cover and section slides unless design.logo names another or is false. Every logo is also a slide-scoped built-in image, placed with a whole-field reference in any image field: 'var:organization.logo' (the full logo), 'var:organization.logo.icon' (likewise stacked, wordmark, full), and 'var:organization.<id>.logo' or 'var:organization.<id>.logo.<shape>' for another organization. A missing shape falls back to full, and full to the first defined of wordmark, stacked and icon. The onLight or onDark value is chosen for each slide's background; a missing one uses the other. See docs/templates-and-variables.md and docs/design-resolution.md.
{
"logo": "./assets/acme-logo.svg"
}domain
typestringrequirednodefault—
Bare internet domain for the organization. Never drawn automatically and not used to look up assets; available as the built-in variable 'organization.domain'.
{
"domain": "acme.com"
}email
typestringrequirednodefault—
General contact email for the organization. Never drawn automatically; available as the built-in variable 'organization.email'.
{
"email": "hello@acme.com"
}phone
typestringrequirednodefault—
Main contact phone number for the organization. E.164 format is recommended. Never drawn automatically; available as the built-in variable 'organization.phone'.
{
"phone": "+14155551234"
}tagline
typestringrequirednodefault—
Short tagline. Never drawn automatically (cover slides do not show it); available as the built-in variable 'organization.tagline', for example in a footer 'text' of '{{organization.tagline}}'.
{
"tagline": "Build the future of work"
}role
typeenumrequirednodefault—
Role of the organization relative to the presentation. Only 'primary' has behavior: it selects the primary organization (cover and section logo, the 'socials' header/footer field, and the 'organization.<field>' built-ins). When no organization has role 'primary', the first one is primary. 'partner', 'client', 'sponsor' and 'host' are descriptive labels that change nothing.
role· Allowed values"primary""partner""client""sponsor""host"
{
"role": "primary"
}Complete definition constraints
{
"type": "object",
"description": "An organization associated with the presentation, typically the presenting company, but also hosts, partners, clients, or sponsors. The primary organization (role 'primary', else the first one) supplies the cover and section logo (unless design.logo overrides it) and the 'socials' header/footer field (its socials). Every field is also a built-in variable ('{{organization.name}}', 'organization.<id>.<field>'), and every logo a slide-scoped image ('var:organization.logo.icon', 'var:organization.<id>.logo'). Nothing else about an organization is drawn automatically. See docs/templates-and-variables.md.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"description": "Stable identifier for the organization, used to reference it from Speaker.organizationId and to address it in built-in variables as 'organization.<id>.<field>'. Must be unique among organizations (a duplicate is a validation error).",
"examples": [
"acme",
"acme-corp",
"devconf-2026"
]
},
"name": {
"type": "string",
"description": "Display name. The built-in variable 'organization.name' (primary organization) or 'organization.<id>.name' carries it into any string, such as a header or footer text of '{{organization.name}}'.",
"examples": [
"Acme Corp",
"DevConf 2026",
"Beta Industries"
]
},
"legalName": {
"type": "string",
"description": "Optional legal entity name when it differs from the display name. Never drawn automatically; available as the built-in variable 'organization.legalName'.",
"examples": [
"Acme Corporation, Inc.",
"Beta Industries, LLC"
]
},
"logo": {
"oneOf": [
{
"$ref": "#/$defs/Asset"
},
{
"$ref": "#/$defs/OrganizationLogo"
}
],
"description": "The organization's logo. A path, URL or Asset is one logo for every shape; an object gives up to four shapes (full, stacked, icon, wordmark), each a path or Asset, or { onLight, onDark } for the two backgrounds. A path is resolved against the OPF file location; an HTTPS URL, data URI or 'asset:<id>' reference works too. SVG (preferred for vector logos) or PNG with transparency are typical. The primary organization's full logo (role 'primary', else the first organization) is drawn on cover and section slides unless design.logo names another or is false. Every logo is also a slide-scoped built-in image, placed with a whole-field reference in any image field: 'var:organization.logo' (the full logo), 'var:organization.logo.icon' (likewise stacked, wordmark, full), and 'var:organization.<id>.logo' or 'var:organization.<id>.logo.<shape>' for another organization. A missing shape falls back to full, and full to the first defined of wordmark, stacked and icon. The onLight or onDark value is chosen for each slide's background; a missing one uses the other. See docs/templates-and-variables.md and docs/design-resolution.md.",
"examples": [
"./assets/acme-logo.svg",
{
"full": "./assets/acme-logo.svg",
"icon": "./assets/acme-mark.svg"
},
{
"full": {
"onLight": "./assets/acme-logo.svg",
"onDark": "./assets/acme-logo-white.svg"
},
"icon": "./assets/acme-mark.svg"
},
"https://cdn.acme.com/logo.svg",
"asset:acme-logo"
]
},
"domain": {
"type": "string",
"description": "Bare internet domain for the organization. Never drawn automatically and not used to look up assets; available as the built-in variable 'organization.domain'.",
"examples": [
"acme.com",
"beta-industries.io",
"devconf.org"
]
},
"email": {
"type": "string",
"format": "email",
"description": "General contact email for the organization. Never drawn automatically; available as the built-in variable 'organization.email'.",
"examples": [
"hello@acme.com",
"sales@acme.com",
"info@beta-industries.io"
]
},
"phone": {
"type": "string",
"description": "Main contact phone number for the organization. E.164 format is recommended. Never drawn automatically; available as the built-in variable 'organization.phone'.",
"examples": [
"+14155551234",
"+442071838750"
]
},
"tagline": {
"type": "string",
"description": "Short tagline. Never drawn automatically (cover slides do not show it); available as the built-in variable 'organization.tagline', for example in a footer 'text' of '{{organization.tagline}}'.",
"examples": [
"Build the future of work",
"Infrastructure for AI agents",
"Where teams ship faster"
]
},
"role": {
"type": "string",
"enum": [
"primary",
"partner",
"client",
"sponsor",
"host"
],
"description": "Role of the organization relative to the presentation. Only 'primary' has behavior: it selects the primary organization (cover and section logo, the 'socials' header/footer field, and the 'organization.<field>' built-ins). When no organization has role 'primary', the first one is primary. 'partner', 'client', 'sponsor' and 'host' are descriptive labels that change nothing."
},
"socials": {
"$ref": "#/$defs/Socials",
"description": "Optional social media handles or URLs for the organization. The primary organization's socials render in header/footer zones that set socials: true; otherwise they are authoring metadata."
}
}
}
socialstyperef:Socialsrequirednodefault—
Optional social media handles or URLs for the organization. The primary organization's socials render in header/footer zones that set socials: true; otherwise they are authoring metadata.
socials (property names)· Allowed values"linkedin""x""github""youtube""instagram""facebook""tiktok""threads""mastodon""bluesky"