Marble vs Payload
Payload is an open-source CMS and application backend that runs inside Next.js. You define collections in TypeScript and choose how to deploy the app and database. Marble is a hosted headless CMS built around posts, with an editor and API ready on signup. Both can power a blog; the choice depends on how much of the content system you want to build and control.
The short answer
Choose Marble when
- Your content is mostly blog posts, articles, and changelogs on a site you build.
- Writers need a ready editor, with authors, categories, and tags already set up.
- You want Marble to host the CMS and media while you manage your frontend.
- You want HTML or Markdown from an API, with workspace plans at $0, $5, or $20 a month.
Choose Payload when
- You need collections for products, pages, or other content alongside your blog.
- You want the CMS inside your Next.js app, with direct database access through Payload's Local API.
- Your project needs configurable access rules, localized fields, version history, or scheduled publishing.
- You want to customize the editor and own the deployment, database, and application code.
Marble and Payload, side by side
The differences that change which product fits. Plan and product details link to Payload's own documentation. Last checked October 2026.
| Topic | Marble | Payload |
|---|---|---|
| Built for | Blog posts, articles, and changelogs on a site you build. | A configurable CMS and backend for websites and applications. Its website template includes a frontend and layout builder.Payload: Get started, hosting, and pricingPayload docs: Collections |
| Content model | Posts with authors, one category, tags, and typed custom fields you add in the dashboard. | Collections and fields defined in TypeScript. You can model posts, pages, products, and relationships between them.Payload docs: Collections |
| Getting started | Create a workspace and start writing. Connect your site with an API key. | Start from a template or add Payload to a Next.js app. Configure your collections, database adapter, and deployment.Payload docs: InstallationPayload: Get started, hosting, and pricing |
| Editing and rich text | A hosted rich text editor. The API returns sanitized HTML by default, or Markdown. | A customizable Lexical editor that stores rich text as JSON. Payload provides converters for JSX, HTML, and Markdown.Payload docs: Rich text editorPayload docs: Lexical converters |
| Content delivery | REST API with filtering and pagination, plus a TypeScript SDK. | REST and GraphQL APIs, plus a Local API for querying your database directly from server code.Payload docs: Local API |
| Frameworks | The hosted API works with Next.js, Astro, or any frontend that can make HTTP requests. | The CMS runs in Next.js. Other frontends can fetch content through its REST or GraphQL API.Payload docs: InstallationPayload docs: Local API |
| Hosting and maintenance | Marble hosts the CMS and media library. You host and maintain your own website. | Deploy wherever Next.js runs. Your project needs a database and persistent file storage; you manage those services and app updates.Payload docs: Production deployment |
| API usage | 5,000 requests a month on Free, 25,000 on Hobby, 50,000 on Pro. | Requests run on your deployment. Capacity and costs depend on your app, database, and hosting provider.Payload docs: Production deploymentPayload docs: Local API |
| Drafts and version history | Draft and published posts. Read drafts with a scoped private API key; share draft links on Hobby and Pro. | Enable drafts, autosave, and version history per collection. Editors can compare versions and restore earlier content.Payload docs: VersionsPayload docs: Drafts and scheduled publishing |
| Scheduled publishing | Not available yet. | Supported when configured. Enable scheduled publish or unpublish actions and arrange for the jobs queue to run.Payload docs: Drafts and scheduled publishingPayload docs: Jobs queue |
| Localization | No built-in locale workflow. You can organize translated posts and metadata yourself. | Built-in field localization, configured with your project's locales.Payload docs: Localization |
| Team permissions | Owner, Admin, and Member roles. 1 team member on Free, 5 on Hobby, 10 on Pro. | Access rules in code for collections, globals, and fields. Permissions can depend on roles, document data, and the operation.Payload docs: Access control |
| Publishing integrations | Configure webhooks in the dashboard, with signed payloads, retries, and delivery logs. | Use lifecycle hooks to call other services or revalidate pages. Queue background work with Payload's jobs system.Payload docs: HooksPayload docs: Jobs queue |
| License and pricing | AGPL-3.0 source code. Hosted Free plan; Hobby is $5/month and Pro is $20/month per workspace. | MIT-licensed core with no software license fee. Budget for hosting, a database, and storage. Enterprise support and features are available through sales.Payload: Get started, hosting, and pricingPayload docs: Production deployment |
What publishing a post looks like
With Marble
- 1Create a workspace. The editor, media library, and post model are ready.
- 2Write a post and set its authors, category, tags, and metadata.
- 3Publish, then fetch the post through the SDK or REST API and render its HTML or Markdown.
- 4Configure a webhook to revalidate or rebuild your frontend when posts change.
With Payload
- 1Start with Payload's website template, or add it to your Next.js app and define a posts collection.
- 2Connect a database, set access rules, and deploy the app with persistent media storage.
- 3Write in the Admin Panel and publish, with drafts and versions enabled if you need them.
- 4Fetch posts with the Local API or HTTP APIs, render the rich text, and configure hooks for publishing updates.
Moving blog posts from Payload to Marble
- Read the posts you want to move through Payload's Local API or REST API. The export shape depends on your collections and fields.
- Convert each post to Markdown. For Lexical bodies, use Payload's converters and check how custom blocks and relationships are represented.
- Set title, slug, and description in each file's frontmatter. Upload the .md files individually or as a ZIP of up to 100; Marble creates drafts for review (import docs).
- Review the drafts and restore publication dates, author assignments, categories, tags, and custom fields before publishing. The file importer doesn't automatically map all of that metadata.
- Upload media to Marble and replace old image URLs before retiring your Payload deployment. Preserve post slugs or add redirects in your frontend.
- Marble doesn't replace arbitrary collections, user authentication, or custom backend logic. Keep those parts of your application running, and move only the publishing content that fits Marble's post model.
Frequently asked questions
Common questions about choosing between Marble and Payload.
Is Marble a good Payload alternative for a blog?
Yes, if you want a hosted editor and API for articles, blog posts, and changelogs. Payload is a better fit when you need custom collections, detailed access rules, localized fields, or a CMS that lives inside your application.
Can Payload work with Astro or another frontend?
Yes. Payload runs in Next.js, but other frontends can fetch content through its REST or GraphQL API. Its Local API is for server code running with Payload, rather than a remote browser or separate frontend. Marble's hosted API can also serve any framework.
Is Payload free, and which CMS costs less?
Payload's MIT-licensed core is free. You pay for the infrastructure your deployment uses; enterprise support and features are available through sales (Payload's current options). Marble has a hosted Free plan, with Hobby at $5/month and Pro at $20/month per workspace. Which costs less depends on traffic, hosting choices, and the work needed to maintain your setup.
Can I customize Marble's content model like Payload's?
Marble lets you add typed custom fields to posts, but it doesn't let you define arbitrary collections or replace the editor with your own components. Payload's collections and configurable editor give you more control when your project needs it.
Can I migrate an entire Payload application to Marble?
No. You can move blog posts that fit Marble's model after converting their content and mapping metadata. Application users, custom collections, access rules, and backend logic need to stay in Payload or move to another backend. Marble has no direct Payload importer.
More resources
- Marble vs GhostGhost bundles a themed website, newsletters, and memberships. Marble delivers posts to a site you build.Comparison
- Marble vs SanitySanity models any content in code with a configurable Studio. Marble is a ready-made CMS for posts.Comparison
- Marble vs StrapiStrapi lets you define content types and customize a Node.js backend. Marble hosts an editor and API built around posts.Comparison
- Marble vs WordPressWordPress combines blogging with themes, plugins, and a website you can extend. Marble hosts a post editor and API for your own frontend.Comparison
- Marble vs ContentfulContentful models structured, localized content with linked entries. Marble provides a ready-made post model and hosted editor for your blog.Comparison
- How Marble works as a headless CMSThe editor-to-API workflow, what's included, and who Marble suits.Product
- Marble for Next.jsFetch posts in Server Components and revalidate when you publish.Guide
- Marble for AstroLoad posts into content collections and rebuild on publish.Guide
Try Marble with your own site.
Create a free workspace, publish a post, and fetch it from your frontend in a few minutes.