sanity-plugin-preflight

This is a Sanity Studio v3 plugin.

The Preflight plugin is a modular Sanity document extension for running various checks prior to publishing content.

Current available checks include:

  • Dead Links: Ensure that all links in a document are reachable.
  • SEO Audit: Automated report for SEO best practices.

Screenshot 2024-06-19 at 09 39 41@2x

Installation

npm install @planetary/sanity-plugin-preflight

Usage

Modify your deskStructure file to include the following. If you don't have a custom Structure Builder configuration, please see the official guide:

// deskStructure.ts
import {Preflight, DeadLinks} from '@planetary/sanity-plugin-preflight'
import {RocketIcon} from '@sanity/icons'

export const getDefaultDocumentNode = ({schemaType}) => {
  // Only show the Preflight plugin on selected document types
  if (['article', 'page'].includes(schemaType)) {
    return S.document().views([
      // Include the default content editor
      S.view.form(),

      // Add Preflight plugin
      S.view
        .component(
          Preflight({
            plugins: [DeadLinks()],
          }),
        )
        .title('Preflight')
        .icon(RocketIcon),
    ])
  }

  // Otherwise render the default content editor
  return S.document().views([S.view.form()])
}

Develop & test

This plugin uses @sanity/plugin-kit with default configuration for build & watch scripts.

See Testing a plugin in Sanity Studio on how to run this plugin with hotreload in the studio.

Release new version

Run "CI & Release" workflow. Make sure to select the main branch and check "Release new version".

Semantic release will only release on configured branches, so it is safe to run release on any branch.

License

MIT © Planetary Corporation