On this page
Overview
Marble is a deliberately simple headless CMS with a Next.js editor dashboard separated from a Hono REST API. Posts can include authors, categories, tags, and custom fields and be consumed by arbitrary frontends or the TypeScript SDK.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Deliver content through REST without binding the frontend
Content edited in the CMS dashboard is available through a REST API, allowing it to serve Next.js or any other web or application frontend.
Separate editor, API, and database concerns in one monorepo
apps/cms uses Next.js, apps/api uses Hono, and packages/db owns shared database concerns, keeping delivery and editing responsibilities distinct.
Sources: [3]
Choose hosted or local PostgreSQL and Redis during development
The guide supports Neon or local Docker for PostgreSQL and Upstash or local Redis-compatible services for caching and rate limiting.
Sources: [3]
Best fit
Fits teams wanting a lightweight editor and API while keeping frontend freedom
It is relevant when a content site or product should avoid coupling frontend technology to a traditional CMS runtime or theme layer.
Sources: [2]
Before adoption
Local operation still needs OAuth, R2, Redis, and database configuration
Google or GitHub OAuth, a BetterAuth secret, Cloudflare R2, PostgreSQL, and Redis need to be configured, so starting only the database does not provide a complete environment.
Sources: [3]
Do not reuse local development credentials in production
The local Docker examples contain development-only database and Redis credentials. Replace them with dedicated production secrets regardless of deployment model.
Sources: [3]
Pin your own commit or tag because GitHub Releases are not published
As of 2026-10-01, the repository has no GitHub Releases. Production deployments should pin a commit SHA or internal release tag and manage upgrades explicitly.
Sources: [1]
Official sources
- [1]usemarble/marble repository(2026-10-01)
- [2]Marble README(2026-10-01)
- [3]Marble contributing and local setup guide(2026-10-01)
- [4]Marble package.json(2026-10-01)
- [5]Marble AGPL-3.0 license(2026-10-01)
Supplemental curator note
Marble separates an editor-facing dashboard from content delivery so arbitrary frontends can consume posts, authors, categories, tags, and custom fields over REST. Local development requires PostgreSQL and Redis plus OAuth and R2 configuration rather than a single self-contained container.
Try it in 3 steps
- 1
Clone Marble and install dependencies
Fetch the official monorepo using a supported Node.js 22 environment and pnpm 12.6.0.
git clone https://github.com/usemarble/marble.git && cd marble && pnpm install - 2
Prepare env files and local databases
Start local PostgreSQL/Redis services and apply migrations. Before the next step, configure the required OAuth, BetterAuth, Cloudflare R2, and other environment values.
cp apps/api/.env.example apps/api/.env && cp apps/cms/.env.example apps/cms/.env && cp apps/web/.env.example apps/web/.env && cp packages/db/.env.example packages/db/.env && pnpm docker:up && pnpm db:migrate - 3
Start the development environment
Start the CMS, API, web, and related workspaces in development mode. Use pnpm cms:dev or pnpm api:dev when only one app is needed.
pnpm dev
Growth
Growth trends · Last 30 days
384 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 46
- Open PRs
- 0
Development activity is still being collected.
Built with
Categories and tags
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- cms
- cms-backend
- cms-framework
- headless
- headless-cms
- marble
- Stars
- 384
- Forks
- 54
- Watchers
- 1
- Open issues
- 0
- Contributors
- 31
- Owner type
- Organization
- Primary language
- TypeScript
- License
- AGPL-3.0
- Repository last updated
- Sep 29, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Worklenz3,194 Stars
4 shared tag(s) · 1 shared category(s) · Same language
combine project management, time tracking, and resource planning in one self-hosted workspace
TypeScript - Shelf3,022 Stars
4 shared tag(s) · 1 shared category(s) · Same language
manage equipment bookings, custody, and locations around QR-based asset workflows
TypeScript - Split Pro1,459 Stars
4 shared tag(s) · 1 shared category(s) · Same language
self-host shared expenses, split rules, balances, and settlements for groups
TypeScript - VerifyWise360 Stars
4 shared tag(s) · 1 shared category(s) · Same language
combine AI inventory, risk, compliance, and LLM evaluations in one governance platform
TypeScript - Polar10,301 Stars
4 shared tag(s) · 1 shared category(s)
meter tokens, API calls, agent runs, and compute usage into flexible billing models
Python - APITable15,627 Stars
4 shared tag(s) · Same language
combine a spreadsheet-style data layer with APIs, embedding, and automation for low-code applications
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.