Tested with

This matrix says what is actually covered today and where each adapter is still thin. It is not a customer list, certification program, or broad compatibility claim.

Adapter maturity matrix

AdapterConfig docsTest coveragePublic exampleSingletons/globalsRelationsKnown limits
Prismic
@cms-lab/prismic
yesfixture + public smokeyesnot provider-specificroute functions onlyThe strongest path today. Preview refs, migration APIs, and schema drift are not covered yet.
Strapi
@cms-lab/strapi
yesfixture + local smokeplannedsingle types supportedslug helperStrapi v4 shapes, locales, single types, and relation slugs are covered. Deep business rules are still planned.
Directus
@cms-lab/directus
basicadapter fixturesnot yetnot yetequality joinsBasic collection fetching, CMS-only workflow, and relationship minimum checks are covered. Conditional business rules still need project code.
WordPress
@cms-lab/wordpress
basicadapter fixturesnot yetcustom endpoints onlynot yetPages, posts, custom endpoints, statuses, Yoast-style SEO, and media fields are covered at fixture level.
Contentful
@cms-lab/contentful
basicadapter fixturesnot yetnot yetnot yetEntry fetch, pagination, default-locale flattening, UID fields, SEO, and image records are covered at fixture level.
Sanity
@cms-lab/sanity
basicadapter fixturesnot yetdocument types onlynot yetDocument fetch, GROQ response normalization, slug fields, SEO, images, and draft IDs are covered at fixture level.
Payload
not available
not yetnot yetnot yetnot yetnot yetTracked separately before claiming Payload support.

How to read it

“Config docs” means the provider has a working config example in the public docs or README. “Test coverage” means the adapter path is backed by fixture tests, a public demo, or a repeatable smoke test. “Public example” means someone can run the adapter path without private credentials.

Relation support is intentionally narrow unless cms-lab has provider helpers or tests for that relationship shape. Project-specific business rules, such as “every active item must have branch pricing,” are tracked separately from route reachability.

What this does not mean

CMS projects differ heavily by schema, route mapping, locale strategy, preview mode, and auth. Passing this matrix means cms-lab has real test coverage for the adapter path, not that every project using that CMS is automatically covered.

No fake claimsThe matrix should only grow when a fixture, adapter test, public demo, or repeatable smoke test exists.