Skip to content

Tess vs Payload

Code-first headless CMS (TypeScript, Next.js)

An open-source TypeScript CMS configured in code, which installs inside a Next.js application.

Side by side

Tess compared with Payload
CriterionTessPayload
Content modelsDefined at runtime in the admin or APIDefined in TypeScript config files, deployed with the app
RuntimeStandalone Rust binary, any front-end stackRuns inside a Next.js (Node.js) application
APIGraphQL generated from the modelsREST, GraphQL and a local Node.js API
DatabasesPostgreSQL, MySQL, SQLite, MongoDB, DynamoDB, RocksDBMongoDB, PostgreSQL, SQLite
ExtensibilitySandboxed WebAssembly pluginsTypeScript hooks and plugins in the app
LicenseCommunity (personal use) / Enterprise (commercial use)MIT

Choose Payload if…

  • Your project is a Next.js app and you want the schema in your repository as TypeScript.

Choose Tess if…

  • Admins must evolve models without developers or redeploys.
  • Your front ends are not all JavaScript, or you want the CMS separate from the app.

Moving from Payload to Tess

Payload collections and blocks map to Tess content types and components (blocks fields become DYNAMIC_ZONE). Translate the config into the tess-transfer YAML format, import it, and copy documents through the GraphQL APIs.

Facts checked on October 20, 2026 from Payload's public documentation (payloadcms.com). Products change quickly: check the vendor's site for the latest features and pricing.