Use JSON Schema to validate data passed into built-in @rettangoli/sitekit templates and partials.
Canonical Location
- Monorepo source of truth:
packages/rettangoli-sitekit/sitekit/schemas/data-contract.schema.yaml
- Published URL format:
https://cdn.jsdelivr.net/npm/@rettangoli/sitekit@<version>/sitekit/schemas/data-contract.schema.yaml
Template Schemas ($defs)
#/$defs/template.base#/$defs/template.docs#/$defs/template.landingFeatures#/$defs/template.blogArticleList#/$defs/template.blogArticle
Partial Schemas ($defs)
#/$defs/partial.seo#/$defs/partial.navbar#/$defs/partial.mobileNav#/$defs/partial.docsSidebar#/$defs/partial.docsMobileNav#/$defs/partial.topNavbar#/$defs/partial.collectionSectionHeader#/$defs/partial.collectionSectionCardGrid#/$defs/partial.collectionSectionFeaturedList#/$defs/partial.collectionSectionCompactList#/$defs/partial.collectionSectionSplitColumns#/$defs/partial.collectionSectionGroupedList#/$defs/partial.landingHero#/$defs/partial.landingStatsBand#/$defs/partial.landingLogoCloud#/$defs/partial.landingIconFeatures#/$defs/partial.landingFeatureMosaic#/$defs/partial.landingTestimonialsGrid#/$defs/partial.landingFullImage#/$defs/partial.landingPricing#/$defs/partial.landingPricingComparison#/$defs/partial.landingRoadmap#/$defs/partial.landingFaq#/$defs/partial.landingFeaturesSection#/$defs/partial.landingCta#/$defs/partial.footer
Example Validation Target
Validate a section-based blog-article-list page:
{
"$schema": "https://cdn.jsdelivr.net/npm/@rettangoli/sitekit@<version>/sitekit/schemas/data-contract.schema.yaml#/$defs/template.blogArticleList",
"title": "Product Notes",
"description": "Release notes and architecture updates.",
"page": { "url": "/notes/" },
"seo": {
"title": "Product Notes",
"description": "Release notes and architecture updates.",
"ogSiteName": "Rettangoli",
"ogType": "website"
},
"site": {
"baseUrl": "https://rettangoli.dev",
"navbar": {
"brand": { "label": "Rettangoli", "href": "/" },
"items": []
},
"footer": {
"brand": { "label": "Rettangoli", "tagline": "Build UI from YAML." },
"columns": [],
"legalLinks": [],
"copyright": "© 2026 Rettangoli"
}
},
"sections": [
{
"layout": "card-grid",
"title": "Latest Notes",
"items": [
{
"title": "Smoke Checks for VT",
"href": "/notes/vt-smoke-checks/",
"excerpt": "Keep screenshot coverage focused on representative pages."
}
]
}
]
}
Scope Notes
- Schemas define required and common optional keys used by built-in templates and partials.
- Built-in template schemas now include optional
themeCssHrefandthemeBodyClassoverride fields. - Extra keys are allowed for project-specific data.
- Keep template/partial updates and schema updates in the same PR.