If you compare Payload's APIs to Strapi's, you'll instantly see that Payload is a much more simple headless CMS to understand and work with, yet it's still significantly more extensible and easily customizable to meet your business needs.
A code-first approach
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.
Built 100% in TypeScript
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.
Plugin dev simple
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.
Payload is fully code-based and can be version controlled easily. No clicking around a GUI to start every project.
Payload has a true JSON-based Rich Text Editor
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.
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.
More powerful access control
Build any type of access control pattern you can dream of with Payload.
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.