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
| Adapter | Config docs | Test coverage | Public example | Singletons/globals | Relations | Known limits |
|---|---|---|---|---|---|---|
Prismic@cms-lab/prismic | yes | fixture + public smoke | yes | not provider-specific | route functions only | The strongest path today. Preview refs, migration APIs, and schema drift are not covered yet. |
Strapi@cms-lab/strapi | yes | fixture + local smoke | planned | single types supported | slug helper | Strapi v4 shapes, locales, single types, and relation slugs are covered. Deep business rules are still planned. |
Directus@cms-lab/directus | basic | adapter fixtures | not yet | not yet | equality joins | Basic collection fetching, CMS-only workflow, and relationship minimum checks are covered. Conditional business rules still need project code. |
WordPress@cms-lab/wordpress | basic | adapter fixtures | not yet | custom endpoints only | not yet | Pages, posts, custom endpoints, statuses, Yoast-style SEO, and media fields are covered at fixture level. |
Contentful@cms-lab/contentful | basic | adapter fixtures | not yet | not yet | not yet | Entry fetch, pagination, default-locale flattening, UID fields, SEO, and image records are covered at fixture level. |
Sanity@cms-lab/sanity | basic | adapter fixtures | not yet | document types only | not yet | Document fetch, GROQ response normalization, slug fields, SEO, images, and draft IDs are covered at fixture level. |
Payloadnot available | not yet | not yet | not yet | not yet | not yet | Tracked 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.