cms-lab

Roadmap

What recently landed, what is planned next, and the research-stage ideas under consideration. Each item links to its GitHub issue. Priorities shift with real feedback, so this is a direction, not a commitment.

Now

Recently shipped and on the latest main.

  • Custom rule APIchecks.custom for project-specific invariants, with declarative asserts and a functional escape hatch.
  • Payload CMS adapter@cms-lab/payload fetches and normalizes Payload REST content for the same route, field, SEO, and image checks.
  • Duplicate route detectionCMS-ROUTE-DUPLICATE flags two published documents that resolve to the same path; only one wins at runtime.
  • Canonical, OG, and JSON-LD checksOpt-in route-level SEO: canonical link validation, Open Graph / X (Twitter) card fields, and JSON-LD structured data.
  • Localization completenesschecks.localization flags content groups missing a published translation in a configured locale.
  • Status-aware relationshipsCMS-RELATIONSHIP-UNPUBLISHED flags a published document whose relationships resolve only to drafts.
  • Soft-404 detectionFlags 2xx responses whose body looks like a not-found page via checks.routes.soft404.
  • Baseline and compareAccept current diagnostics as a baseline and diff two scan reports, so a first run only surfaces new drift.

Next

Planned and scoped, not yet built.

  • Parallel CMS document fetchFetch collections concurrently with a bounded pool to speed up scans of large multi-collection catalogs.
  • Streaming scan for large catalogsYield diagnostics as they are produced instead of buffering the full document set in memory.
  • Watch mode for local developmentcms-lab watch re-runs the scan as content and config change during local dev.

Later / research

Worth doing once the design and real-world need are clearer.

Shipped history

The full release history lives in CHANGELOG.md. Recent releases added relationship checks, grouped diagnostic summaries, expanded secret redaction, and the GitHub Action.

Suggest something

Have a check or adapter you need? Open a discussion or an issue. Real use cases move items up this list. See the docs to get started.