npm payload 3.28.0
v3.28.0

latest releases: 3.28.1, 3.29.0-internal.d2c9ba5, 3.28.0-internal.645949d...
one day ago

v3.28.0 (2025-03-11)

Important

Compilation Performance Improvements

We’ve introduced a new opt-in flag that can cut Payload’s compile times in half during development. To enable it, add the following to your next.config.js:

const nextConfig = {
   // ...
 }

-export default withPayload(nextConfig)
+export default withPayload(nextConfig, { devBundleServerPackages: false })

In some rare cases, you may see unexpected behavior if your project relies on server-only Payload dependencies being bundled during development. Because of this, we’ve made the feature opt-in for existing projects.

Lexical Version Bump

This release upgrades the lexical dependency from 0.21.0 to 0.27.1. Alongside table improvements and bug fixes, this version bump lays the groundwork for frequently requested features like color pickers.

If you installed lexical manually, update it to 0.27.1. Installing lexical manually is not recommended, as it may break between updates, and our re-exported versions should be used. See the yellow banner box for details.

If you still encounter richtext-lexical errors, do the following, in this order:

  1. Delete node_modules
  2. Delete your lockfile (e.g. pnpm-lock.json)
  3. Reinstall your dependencies (e.g. pnpm install)

🚀 Features

  • defaults to noindex nofollow (#11623) (5285518)
  • threads path through field validate function (#11591) (3ede7ab)
  • allow specification of which JWT extraction methods are supported, and in which order (#10794) (8f6d2e7)
  • db-mongodb: strip keys from the data that don't exist in the schema from read results (#11558) (2ad035f)
  • next: fully expose Next.js metadata (#11593) (397c1f1)
  • richtext-lexical: allow disabling indentation for specific nodes (#11631) (eb09ce9)
  • richtext-lexical: upgrade lexical from 0.21.0 to 0.27.1 (#11564) (557ac99)
  • richtext-lexical: adds ability to disable auto link creation (#11563) (1e708bd)
  • richtext-lexical: new HTML converter (#11370) (36921bd)
  • ui: form state queues (#11579) (ac1e3cf)
  • ui: adds disable copy to locale option to collection config (#11546) (657ad20)

🐛 Bug Fixes

  • ensure only authenticated users can access the payload-locked-documents collection (#11624) (8f3d1bd)
  • upload imageSizes forces original file uploads to be compressed (#11612) (6d0924e)
  • add missing auth property to new defaults function (#11561) (3af0468)
  • db-mongodb: properly sanitize updateVersion read result (#11589) (e9afb36)
  • graphql: sanitize graphql field names for schema generation (#11556) (029cac3)
  • plugin-import-export: plugin breaks i18n configuration (#11590) (5d65cb0)
  • translations: update translation placeholders to not be translated for lithuanian (#11622) (85f88a0)
  • ui: adds fallback locale when defaultLocale is unavailable (#11614) (9ac7a3e)
  • ui: stale list thumbnails when navigating (#11609) (fc5876a)
  • ui: logic for showing copyToLocale button and adds test (#11584) (a53876d)
  • ui: upload.displayPreview should affect all previews in the admin panel (#11496) (6f90d62)
  • ui: apply consistent styling to custom & default block thumbnails (#11555) (8378654)
  • ui: incorrect error states (#11574) (4811531)

⚡ Performance

  • 50% faster compilation speed by skipping bundling of server-only packages during dev (#11594) (c7bb694)

🛠 Refactors

  • more reliable import map generation, supporting turbopack and tsconfig basePath (#11618) (243cdb1)

📚 Documentation

📝 Templates

  • fix issue with populateAuthors hook breaking live-preview on website template (#11608) (72efc84)
  • allow displaying dynamic error message on forms created via Form Builder plugin (#11275) (814ced4)

⚙️ CI

  • adjust paths filter for workflows, only look at main.yml (#11572) (9f7e8f4)
  • add canary nightly cron, adjust lock and stale crons (259ea6a)
  • use GITHUB_OUTPUT instead of set-output [skip ci] (1ad1de7)
  • canary and internal releases [skip ci] (#11565) (1797782)

🏡 Chores

  • set all licenses for internal tooling (30af889)
  • db-postgres: enable TypeScript strict (#11560) (c8f01e3)
  • deps: bump all eslint packages (#11629) (f2da72b)
  • deps: bump next.js from 15.2.0 to 15.2.1 in monorepo (#11576) (b0da85d)
  • deps: bumps @payloadcms/admin-bar in templates and examples (#11566) (7cef890)
  • ui: code/json field full height should include any padding added (#11607) (051c1fe)
  • ui: removes margin when row is empty and passes style from props (#11504) (6699844)

🤝 Contributors

Don't miss a new payload release

NewReleases is sending notifications on new releases.