What is sloth?
sloth is a page-template platform built on top of Strapi. It provides the infrastructure for defining, distributing, and rendering page templates across frontend applications — without coupling the page structure to any specific frontend framework.
Core Ideas
sloth is organized around three concerns:
Component Contracts — A component contract is a typed, versioned interface that describes what data a frontend component needs and what kind of layout role it plays (layout, section, or block). Contracts are the unit of exchange between the CMS and the frontend renderer.
Page Templates — Pages are composed of component slots bound to CMS content. sloth stores both the editable Puck editor config and an optional compiled shape for efficient frontend delivery.
Distribution — Contracts can be authored locally using the sloth CLI and pushed to a Strapi host. In the future, contracts and component packs will be distributable through a registry.
System Components
| Component | Description |
|---|---|
| Strapi plugin | Core plugin that owns component and page content-types, exposes admin and content-API routes, and handles contract ingestion |
| Admin UI | Drag-and-drop page builder (Puck) embedded in the Strapi admin panel |
| CLI | Go-based developer tool for contract operations — validate, sync, push contracts to a Strapi host |
| Component Hub | Reusable themed component variants built on Base UI |
| Schema hosting | This site hosts versioned JSON Schema files used to validate component contracts |
Current Status
sloth has an active Strapi plugin and CLI development track with OCI-based contract distribution in place. Contract source and release tooling live in packages/contracts; packages/component-hub is currently a placeholder for future runtime/component bundles.
See the Architecture page for a diagram of how the pieces fit together.