Skip to main content

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

ComponentDescription
Strapi pluginCore plugin that owns component and page content-types, exposes admin and content-API routes, and handles contract ingestion
Admin UIDrag-and-drop page builder (Puck) embedded in the Strapi admin panel
CLIGo-based developer tool for contract operations — validate, sync, push contracts to a Strapi host
Component HubReusable themed component variants built on Base UI
Schema hostingThis 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.