Payload ranks second, a whisker behind Sanity. It installs into your Next.js app, so CMS, API and front end share one codebase and one deploy. Config is fully typed, the Local API skips HTTP for server rendering, and it is MIT-licensed. Its ecosystem is smaller and there is no first-party AI.
Why it ranks second
Since version 3, Payload runs inside a Next.js app. Collections, fields, access control and hooks are TypeScript config, types are generated end to end, and the Local API reads content without a network hop. REST and GraphQL are generated from the same config.
Day to day
Local development is just your app running locally, with live preview in the admin panel and versions and drafts built in.
Where it falls short
The ecosystem is smaller, and there is no first-party AI; you wire your own models in through hooks.