Payload is config based, not generated via GUI. If you're going to write code, then write code. Leverage your version control, share fields and functions between projects, and get started without clicking around a GUI for every project.
Payload has first-class support for TypeScript, including type generation from your data models. You can be certain that you'll be productive in your IDE without having to go through mountains of documentation.
Thanks to Payload's config-based approach, building plugins could not be easier. Take in a config, return an updated config. To build a plugin for Strapi, you need to learn how to do it the Strapi way which takes a significant amount of learning.
Strapi only supports role-based access control (RBAC) which limits you to only being able to control who can perform which actions to your data. However, Payload supports function-based access control which can be used on either a document or field-by-field basis to build any type of control that you can think of.Learn about Payload's access control
Payload's Rich Text editor doesn't store content in markdown or a string of HTML like Strapi's. Instead, it saves JSON, and the best part is that you can build custom elements directly into it with ease. Embed YouTube videos, add custom text treatments and effects, reference other documents, and embed media dynamically.Read about Payload's Rich Text Editor
Payload features deep field-based localization support. Maintaining as many locales as you need is easy. Only need to localize a few fields? No problem, all other fields will use your fallback locale.
Payload has an easy way to show and hide fields based on the value of other fields. For example, you might have an “Enable Link” checkbox, that, when checked, a few more fields should be rendered. Strapi does not support this feature.
Both document and field-level hooks expose a ton of potential. Customize output, sanitize incoming data, or easily integrate with third-party platforms. A truly-powerful pattern.