40+ backends, two contracts, one content API.
The storage layer is where Laika is most extensible. Every tile below is a real StorageRepository that ships today: buckets, SQL, Git, document stores, search indexes, Notion, a graph database. Adapters are small; an author can add the next one.
Repository laikacms/laikacmsContributing Set up the workspace, send a PRReleases Changesets, shipped in the openIssues Bugs, ideas, discussionsFirst-party
Shipped in the box, no extra package: the repositories the core is built around.
SQL databasesone adapter · laikacms/storage-drizzle
A single Drizzle-backed repository reaches every SQL dialect Drizzle speaks: eight engines, one line of config.
Object stores
Buckets and blob storage: content lives as objects, served at the edge or the origin.
NoSQL & multi-model
Document, columnar and multi-model databases, each with a first-class repository.
Key-value, graph & search
Edges, keys and indexes: Laika's repository contract doesn't care what shape your store is.
Git platforms
Treat a repository as your content store: every save is a commit, every change a diff.
Headless CMSes
Already invested in another CMS? Point Laika at it and keep one content API in front.
Collaboration tools
Where teams already write: read and write content straight from the tools they live in.
Decentralized & directories
Content-addressed networks, the social web, and even LDAP. The contract is the contract.
Assetsa second contract · AssetsRepository
Two contracts, same shape. Pair a content store with an asset store (bytes, transforms and URLs) on the backend you already use.
Serializersthe on-disk format
Store content as whatever reads best in a diff, independent of the backend.
Adapters are small. Write one for your store ↗