Go home

payload-plugins

A monorepo of open-source Payload CMS plugins, each published independently to npm.

Launched on

Visit   →
payload-plugins monorepo cover

payload-plugins is a monorepo of Payload CMS plugins I build and maintain. Each plugin lives in its own workspace package and is published independently to npm, while a shared dev/ Payload app mounts every plugin for local testing. Versioning and releases are handled per-package with Changesets.

I started extracting these while building production Payload sites: the same gaps kept showing up — pulling forms in from HubSpot, picking icons in the admin, and translating localized content — so I pulled them out into reusable, well-tested plugins instead of copy-pasting bespoke code between projects.

Plugins

payload-hubspot

Syncs HubSpot forms into Payload’s Form Builder collection. It adds a HubSpot Forms button next to Save/Publish on the forms collection: editors fetch the forms defined in a HubSpot account, pick one, and import its fields into a Payload Form Builder document. The HubSpot portalId and formId are stored on the document so it stays linked back to its source form — letting you render HubSpot forms in your own design system instead of as an embed.

payload-iconify

An Iconify icon-picker field for Payload. It gives editors a searchable icon input in the admin so they can browse and select from the full Iconify set wherever a field needs an icon — navigation items, feature cards, callouts — without hardcoding SVGs.

  • source (npm release coming soon)

payload-translator

Translates localized documents and globals through pluggable resolvers. It ships adapters for copy, Google, OpenAI, LibreTranslate, and the Vercel AI SDK, so you can draft a translation of the active document into your other locales and review it rather than retype it — useful for keeping multilingual sites in sync.

  • source (npm release coming soon)

Tooling

  • pnpm workspaces — each plugin is its own package; the dev/ app imports them directly so source changes are picked up without a rebuild.
  • Changesets — independent versioning and changelogs, with each package versioned and published on its own.
  • SWC + shared tsconfig — a common build and TypeScript config across every package.
  • Vitest + Playwright — integration and e2e tests run against the shared Payload dev app.

Repository