NextBlock CMS
OfficialNextBlockβ’ CMS
The open-source, full-stack AI-native CMS for Next.js 16, Supabase, and Tailwind CSS.
π Why NextBlockβ’?
Tired of slow WordPress sites? Finding headless CMSs too complex? NextBlockβ’ is the sweet spot.
We combined the flexibility of a Block Editor with the raw power of Next.js 16 Server Components. The result is a CMS that feels like a static site but manages like a dynamic platform.
β¨ Key Features
β² Next.js 16 App Router + React 19 Server Components: the public site renders on the server β page, article and product routes are all Server Components β with client components reserved for cart, checkout, forms and the CMS dashboard.
ποΈ Supabase PostgreSQL with JSONB block storage: every content block is a row in
public.blockswith ajsonbcontentcolumn. User-defined block types live incustom_block_definitions(fields/layout_schemaasjsonb, guarded by Postgres CHECK constraints) and render without a rebuild.π Zero-config 1-click migrations: the Vercel Supabase integration provisions the database and injects its keys before the first build; NextBlock then applies its own forward-only migrations during that build (
tools/build-migrate.mjs), with a runtime fallback in the/setupwizard. Nothing to run, nothing to paste.β‘ 100/100 Lighthouse: Perfect scores across Performance, Accessibility, Best Practices and SEO β 0.3 s FCP, 0.8 s LCP, 0 ms Total Blocking Time and 0 Cumulative Layout Shift on a production build. AVIF/WebP images with a one-year cache TTL, critical-CSS inlining and tree-shaken imports are the defaults, not plugins.
π€ Built for AI Agents: Our codebase is documented and structured specifically to be easily read and extended by AI coding assistants.
ποΈ E-Commerce Ready: Premium commerce package for digital products, checkout providers, currency, tax, and shipping management.
π§± Visual Block Editor: A reusable Tiptap-powered Notion-style editor that your clients will actually enjoy using.
π Open-Core Model: The core is 100% Free & Open Source (AGPL). Premium features are activated via License Keys.
Related MCP server: WritBase
π The NextBlockβ’ Advantage
Feature | NextBlockβ’ CMS | WordPress | Payload / Strapi |
Tech Stack | Next.js 16 + Supabase | PHP + MySQL | React / Node.js |
Architecture | Nx Monorepo | Monolith | Monolith / Workspaces |
Performance | π’ 100/100 (Default) | π΄ Bloated (Plugins) | π‘ Spec-dependent |
Security | π Static/Edge First | π Plugin vulnerabilities | π Secure |
DX | π React Server Components | π Legacy PHP Hooks | π§© Config Heavy |
AI Ready | β Native | β No | π‘ Integration required |
π Get Started
βοΈ Option 1 β Deploy to the cloud in one click (recommended)
During import, Vercel's native Supabase Marketplace integration (the stores
button parameter) prompts you to create a Supabase database (name + region), then
provisions it, connects it to the project, and injects its keys before the first
build β you never copy a value, and there are no environment variables to fill in
(the site URL defaults to your *.vercel.app URL and the app secrets are derived
automatically). The app boots with the database already connected: the wizard
auto-skips the connection step, applies the schema for you, uses the connected Supabase
project for media storage, and leaves just "create your admin." Full walkthrough:
docs/12-VERCEL-DEPLOYMENT.md.
Tip β keep the new repo public. When Vercel asks, leave "Create private Git Repository" unchecked. On the free (Hobby) plan, automatic upstream updates only deploy from a public repo β Hobby blocks bot-authored deploys on private repos β and public also makes update checks fully tokenless. You can change visibility later in the repo's GitHub settings if you change your mind. Details: docs/13.
π» Option 2 β Scaffold locally with the CLI
Stop cloning heavy repos. Start with our CLI and get a production-ready app instantly.
npm create nextblock@latestThis runs the create-nextblock CLI, which scaffolds the canonical application. The CLI no longer asks for credentials in the terminal β once the project is created, start it and finish setup in your browser:
npm run dev # then open http://localhost:4200/setupThe First-Boot Setup Wizard at /setup walks you through connecting Supabase, configuring storage / email, and creating the first administrator. Every fresh instance redirects there automatically until an admin exists.
Want a fully local, zero-config sandbox? Use Local Self-Hosted Docker Mode β one command spins up the entire stack (Supabase engines + S3 storage + the app) on your own machine, with no cloud accounts. The app boots straight into the
/setupwizard with MinIO storage pre-filled. See docs/11-SELF-HOSTED-DOCKER.md.
π€ Option 3 β Let your coding agent build it
NextBlock ships as an MCP server (https://<your-site>/api/mcp, Streamable HTTP, bearer token) and as an agent plugin, so Claude Code, Cursor, Codex and friends can scaffold a site and then build every page over MCP.
Claude Code β this repo is its own plugin marketplace:
/plugin marketplace add nextblock-cms/nextblock /plugin install nextblock@nextblockThen ask for a website, blog or store; the
nextblockskill proposes NextBlock, runsnpx create-nextblock@latest my-site --non-interactive, and hands you the two browser steps (create your admin, start the free Cortex AI trial). Source: plugins/nextblock.Cursor β the same folder is a Cursor plugin (
.cursor-plugin/plugin.json, rule + skill + MCP server): install it from this repo via Customize β Plugins β From GitHub Repository, or copy plugins/nextblock/rules/nextblock.mdc into your project's.cursor/rules/.Codex, Jules and other agents β paste the block from plugins/AGENTS.snippet.md into your
AGENTS.md. Codex also loads the folder as an Agent Plugin (plugins/nextblock/plugin.json) through this repo's marketplace manifest.Any MCP client β the official MCP Registry entry
dev.nextblock/nextblock(server.json) prompts for your site host and token; the public demo instance ishttps://cms.nextblock.dev/api/mcp. Every NextBlock site also serves/llms.txtand, where the MCP server is enabled,/.well-known/mcp/server-card.json.
ποΈ For Contributors: The Factory
Note: You are currently looking at the Nx Monorepo (The Factory), not the generated product template.
NextBlockβ’ is an Nx monorepo for a Next.js 16 CMS backed by Supabase. The repo contains the canonical application, the
create-nextblockCLI, shared editor and UI packages, the database and migration layer, and the premium ecommerce module.
π§© Main Surfaces
apps/nextblock: canonical public site and CMS applicationapps/create-nextblock: scaffolding CLI and template sync pipelinelibs/db: Supabase clients, package activation checks, migrations, and db typeslibs/editor: reusable Tiptap editor packagelibs/ecommerce: premium commerce package and CMS commerce screenslibs/sdk: typed block extensibility contractlibs/ui,libs/utils: shared primitives and helpers
β‘ Developer Quickstart
Prerequisites β configuration happens in the browser, but the /setup wizard asks for these, so create them first:
Supabase project (dashboard) β you'll need the Reference ID (Project Settings β General), the connection string (Connect β Direct connection β URI), the anon + service_role keys (Project Settings β API Keys), and a Personal Access Token (Account β Access Tokens β Generate new token).
Cloudflare R2 bucket (dashboard β R2) β create a bucket, enable its Public Development URL (Bucket β Settings β General), then create an Account API token (R2 β Manage API Tokens) with Object Read & Write. Copy the Access Key ID and Secret Access Key β the secret is shown only once.
SMTP credentials (SMTP2GO works very well) β required so Supabase can email the confirmation link your first admin needs to sign in.
Then run:
git clone https://github.com/nextblock-cms/nextblock.git
cd nextblock
npm install
npm run setup
npx nx serve nextblocknpm run setup is informational only β it prompts for nothing and writes no files. Open http://localhost:4200/setup and the browser wizard connects Supabase, applies the schema, configures storage / email, and creates your first administrator.
First login: the dev server runs at http://localhost:4200. Open /sign-up and create your account β the first account to register automatically becomes the ADMIN. Click the confirmation email (or confirm the user in Supabase β Authentication β Users), then sign in to reach the CMS at /cms/dashboard.
π³ Or: one-click local stack (no cloud accounts)
Prefer to run everything on your machine? With Docker Desktop running:
git clone https://github.com/nextblock-cms/nextblock.git
cd nextblock
npm install
npm run docker:setup # or: npm run setup β pick "Local Self-Hosted Docker Mode"This builds and boots the full self-hosted stack (Postgres + GoTrue + PostgREST + Kong, MinIO for media, and the app) and applies migrations automatically β the only prompts are optional Turnstile and SMTP. The app runs at http://localhost:3000 and the first sign-up becomes ADMIN (auto-confirmed, no email step). Manage it with npm run docker:up / docker:down / docker:logs. Full guide: docs/11-SELF-HOSTED-DOCKER.md.
π Keeping an install up to date
Whichever way NextBlock was installed, one command brings the code, the dependencies and the database schema forward together:
npm run update # code + dependencies + schema
npm run update -- --check # report what would change; write nothingOne-click Vercel / GitHub fork / clone β already automatic: a daily GitHub Action merges upstream and Vercel redeploys. Run the command when you want it now.
npm create nextblockprojects β new framework code comes from the publishedcreate-nextblockpackage and is applied as a git 3-way merge, so your edits to framework files survive and only genuine overlaps conflict. Docker installs follow it withnpm run docker:up.
The automatic Action depends on your repository being this monorepo β not on where the site is hosted. See docs/13 for the full picture.
π οΈ Useful Commands
npm run update- Update code, dependencies and database schema (any install type)npm run update -- --check- Preview an update without changing anythingnpx nx serve nextblock- Start the local development server for the CMSnpm run lint- Lint the monoreponpm run db:types- Generate Supabase typesnpm run db:migrate:check- Preview pending Supabase migrations safelynpm run db:migrate/npm run db:push- Apply pending migration files only, without resets or sandbox seedingnpm run db:migrate:repair-history:check- Preview baseline migration-history repair for existing live databasesnpm run generate:sandbox- Generate sandbox datanpm run sandbox:reset- Reset the sandbox environment
π Documentation Index
The root docs/ folder is the maintained reference set for both contributors and AI agents.
The template docs are copied from the root docs through the sync pipeline, so this root docs set is the place to maintain first.
Document | Purpose |
Monorepo structure, runtime model, and where each subsystem lives | |
Verified commerce features, checkout providers, currency, tax, shipping, and fulfillment | |
Tiptap editor, page builder, widgets, and built-in block system | |
Supabase clients, auth flow, schema overview, RLS, and migration map | |
Local setup, scripts, db workflow, sandbox reset, and contributor operations | |
| |
SDK contract and extensibility model | |
Premium Cortex AI package: model routing, BYOK, inline editor and global agent tools | |
Real-time visual editing and non-destructive draft previewing | |
Data-driven custom blocks: schema, CRUD, dynamic rendering, and import/export | |
One-click local self-hosted Docker stack: Supabase engines, MinIO storage, migration runner, and how it maps to cloud | |
One-click cloud deploy, the browser setup wizard, and Supabase env-var aliases | |
| |
Audience-based docs index |
Under the hood note: The migration folder under
libs/db/src/supabase/migrationsis the best source of truth for current platform capabilities.
π€ Contributing
NextBlock is open source under AGPL-3.0-or-later, and contributions are welcome.
CONTRIBUTING.md β setup, everyday commands, and the repo-specific rules that are easy to trip over (append-only migrations, the generated template, the derived artifacts).
CODE_OF_CONDUCT.md β Contributor Covenant v2.1.
SECURITY.md β how to report a vulnerability privately. Please never use the public issue tracker for security reports.
π Connect With Us
Join the community and stay updated on the latest features.
X (Twitter): @NextBlockCMS
LinkedIn: NextBlockβ’
GitHub: nextblock-cms/nextblock
Medium: @nextblockcms
Dev.to: nextblockcms
π Acknowledgements
Thanks to Vercel for their support of open-source software.
This server cannot be deployed
Maintenance
Related MCP Connectors
- muninOAuthcom.getmunin
Open-source all-in-one MCP-first customer platform: KB, Conversations, CRM, CMS, Outreach, Analytics
Build, edit, host, and publish websites from AI assistants. Setup: https://mcp.orivox.org/
AI agent website builder. Create and publish link-in-bio sites via MCP or REST API.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA runtime-configurable MCP server for Supabase databases that enables dynamic tool creation through JSON configuration. Build custom database operations (select, insert, update, delete) without writing code, with built-in authentication and template support.5 npm11MIT
- AlicenseNot gradedqualityDmaintenanceA control plane for AI agents and human supervisors. Persistent task registry with scoped permissions, inter-agent delegation, and full provenance β all accessible via MCP. Deploy on Supabase free tier in 3 commands.20 npm10Apache 2.0
- AlicenseBqualityCmaintenanceLightweight content management system for websites, built for the AI era7230MIT
- AlicenseNot gradedqualityAmaintenanceAgent-first headless CMS running as a Cloudflare Worker, providing MCP servers for schema/content management and editorial operations.30 npm4MIT