TL;DR
Payload CMS v3.0.0-beta.100 brings important UI improvements, bug fixes, and adds Bun package manager support to the installer. Key enhancements include optimized relationship fields with shared document drawers, improved modal styling, better package manager detection in create-payload-app, and fixes for PostgreSQL table naming issues with camelCased fields.
Highlight of the Release
- Added Bun package manager support to the v3 installer
- Optimized relationship fields by sharing a single document drawer across all values
- Improved package manager detection in create-payload-app
- Fixed PostgreSQL table naming issues with camelCased group/tab fields
- Enhanced modal alignment and padding for better UI consistency
Migration Guide
No migration is required for this beta release. These changes are part of the ongoing development of Payload v3 and are included in the beta.100 release.
If you're already using a previous beta version of Payload v3, you can update to beta.100 by updating your package.json and running your package manager's install command:
npm install [email protected]
# or
yarn add [email protected]
# or
pnpm add [email protected]
# or
bun add [email protected]
Upgrade Recommendations
If you're currently using a previous beta version of Payload v3, upgrading to v3.0.0-beta.100 is recommended to benefit from the UI improvements, bug fixes, and new features.
For those using Payload v2 in production, it's still advisable to wait for the final v3.0.0 release before upgrading production environments, as beta releases may contain breaking changes or incomplete features.
This beta release is particularly valuable for developers who:
- Are using PostgreSQL as their database and experiencing issues with camelCased field names
- Want to try the Bun package manager with Payload
- Need improved relationship field performance and behavior
- Are experiencing issues with package manager detection in create-payload-app
Bug Fixes
UI Improvements
-
Optimized Relationship Fields (#8094): Relationship fields now share a single document drawer across all values, significantly improving performance for hasMany relationships. This fix also maintains the drawer state when updating relationship field values, allowing users to update document titles and field values without closing the drawer.
-
Fixed Falsey Relationship Options (#8095): Resolved an issue where relationship fields would not properly handle falsey options when resetting.
-
Enhanced Modal Styling (#7931): Updated styling on modals and auth forms for more consistent spacing and alignment throughout the admin UI.
Database and Installation Fixes
-
PostgreSQL Table Naming (#8009): Fixed an issue where camelCased group/tab names were causing problems with PostgreSQL table naming. This resolves issue #7109 which affected table structures with nested fields.
-
Package Manager Detection (#8087): Improved the detection of package managers in create-payload-app by relying on the execution environment. Previously, commands like pnpx create-payload-app@beta app might incorrectly use npm instead of pnpm. The fix ensures the correct package manager is used based on how the command was executed.
Documentation Fixes
- TextFieldProps Example (#8080): Fixed the client field component example by correctly placing the type on the right side of the props object instead of using
React.FC<>.
New Features
Added Bun Package Manager Support
The v3 installer now supports the Bun package manager, which can be enabled with the --use-bun flag when creating a new Payload project. This addition gives developers more flexibility in choosing their preferred JavaScript runtime and package manager.
# Example usage
bunx create-payload-app@beta my-app --use-bun
This feature was implemented in PR #7709 and addresses the related issue #6932 for v2.
Security Updates
No specific security fixes were included in this release.
Performance Improvements
Relationship Field Optimization
The relationship field has been significantly optimized by sharing a single document drawer across all values (#8094). This improvement is particularly noticeable for hasMany relationships, which previously rendered and controlled a separate document drawer for each value.
The optimization reduces unnecessary processing and improves the overall performance of the admin UI when working with relationship fields that contain multiple values. It also enables better state management when performing side-effects as a result of drawer actions, such as updating document titles or field values without closing the drawer.
Impact Summary
This beta release brings several quality-of-life improvements to Payload CMS, focusing on UI enhancements, bug fixes, and expanded tooling support.
The most significant impact comes from the relationship field optimization, which improves both performance and user experience by maintaining drawer state during field updates. This addresses a long-standing limitation where updating a relationship would force the document drawer to close.
The addition of Bun package manager support expands Payload's compatibility with modern JavaScript tooling, giving developers more flexibility in their development environment.
For PostgreSQL users, the fix for table naming with camelCased fields resolves an important issue that could cause database errors in certain field configurations.
Overall, this release continues to refine the v3 beta with targeted improvements that enhance stability and user experience without introducing breaking changes.
Full Release Notes
🚀 Features
- cpa: add support for bun package manager in v3 installer (#7709) (b69826a)
🐛 Bug Fixes
- ui, next: adjust modal alignment and padding (#7931) (ead12c8)
- ui: optimizes the relationship field by sharing a single document drawer across all values (#8094) (6253ec5)
- ui: handles falsey relationship options on reset (#8095) (f9ae56e)
- db-postgres: sanitize tab/group path for table name (#8009) (0688c2b)
- cpa: detect package manager from command execution environment (#8087) (c624661)
🤝 Contributors