{"slug": "show-hn-nextblock-cms-open-source-full-stack-cms-for-nextjs-16-and-supabase", "title": "Show HN: NextBlock CMS – Open-source full-stack CMS for NextJS 16 and Supabase", "summary": "NextBlock CMS, an open-source, AI-native CMS for Next.js 16 and Supabase, launched on Hacker News, claiming 100% Lighthouse performance and native AI-readiness. The open-core product is free under AGPL, with premium features via license keys, and offers a CLI scaffold, a first-boot setup wizard, and Docker self-hosting. It targets developers seeking a high-performance alternative to WordPress and headless CMSs like Payload or Strapi.", "body_md": "**The AI-Native, Open-Core CMS for Next.js 16**\n\n**Speed. Scalability. AI-Readiness (coming soon).**\n\nBuild premium, high-performance websites in minutes, not months.\n\n**👉 View Live Demo**\n\nExplore the admin dashboard in our public sandbox (resets every 15 minutes).\n\n**User:** demo@nextblock.ca • **Pass:** password\n\nTired of slow WordPress sites? Finding headless CMSs too complex? **NextBlock™** is the sweet spot.\n\nWe 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.\n\n**⚡ 100% Lighthouse Performance**: Built-in edge caching, image optimization, and zero layout shift. Speed is not a plugin; it's the default.**🤖 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.\n\n| Feature | NextBlock™ CMS | WordPress | Payload / Strapi |\n|---|---|---|---|\nTech Stack |\nNext.js 16 + Supabase | PHP + MySQL | React / Node.js |\nArchitecture |\nNx Monorepo | Monolith | Monolith / Workspaces |\nPerformance |\n🟢 100/100 (Default) |\n🔴 Bloated (Plugins) | 🟡 Spec-dependent |\nSecurity |\n🔒 Static/Edge First | 🔓 Plugin vulnerabilities | 🔒 Secure |\nDX |\n💎 React Server Components |\n📜 Legacy PHP Hooks | 🧩 Config Heavy |\nAI Ready |\n✅ Native |\n❌ No | 🟡 Integration required |\n\nStop cloning heavy repos. Start with our CLI and get a production-ready app instantly.\n\n```\nnpm create nextblock@latest\n```\n\nThis runs the `create-nextblock`\n\nCLI, 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:\n\n```\nnpm run dev   # then open http://localhost:4200/setup\n```\n\nThe **First-Boot Setup Wizard** at `/setup`\n\nwalks you through connecting Supabase, configuring storage / email, and creating the first administrator. Every fresh instance redirects there automatically until an admin exists.\n\nTip — 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 apublicrepo — 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].\n\nDuring import, Vercel's native **Supabase Marketplace integration** (the `stores`\n\nbutton parameter) prompts you to create a Supabase database (name + region), then\n**provisions it, connects it to the project, and injects its keys before the first\nbuild** — you never copy a value, and there are **no environment variables to fill in**\n(the site URL defaults to your `*.vercel.app`\n\nURL and the app secrets are derived\nautomatically). The app boots with the database already connected: the wizard\nauto-skips the connection step, applies the schema for you, uses the connected Supabase\nproject for media storage, and leaves just \"create your admin.\" Full walkthrough:\n[docs/12-VERCEL-DEPLOYMENT.md](/nextblock-cms/nextblock/blob/master/docs/12-VERCEL-DEPLOYMENT.md).\n\nWant a fully local, zero-config sandbox?UseLocal Self-Hosted Docker Mode— one command spins up the entire stack (Supabase engines + S3 storage + the app) on your own machine, withno cloud accounts. The app boots straight into the`/setup`\n\nwizard with MinIO storage pre-filled. See[docs/11-SELF-HOSTED-DOCKER.md].\n\nNote:You are currently looking at theNx 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\n\n`create-nextblock`\n\nCLI, shared editor and UI packages, the database and migration layer, and the premium ecommerce module.\n\n`apps/nextblock`\n\n: canonical public site and CMS application`apps/create-nextblock`\n\n: scaffolding CLI and template sync pipeline`libs/db`\n\n: Supabase clients, package activation checks, migrations, and db types`libs/editor`\n\n: reusable Tiptap editor package`libs/ecommerce`\n\n: premium commerce package and CMS commerce screens`libs/sdk`\n\n: typed block extensibility contract`libs/ui`\n\n,`libs/utils`\n\n: shared primitives and helpers\n\n**Prerequisites** — create these three things first; `npm run setup`\n\nwill ask for their keys:\n\n**Supabase project**([dashboard](https://supabase.com/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](https://dash.cloudflare.com)→ 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](https://www.smtp2go.com)works very well) — required so Supabase can email the confirmation link your first admin needs to sign in.\n\nThen run:\n\n```\ngit clone https://github.com/nextblock-cms/nextblock.git\ncd nextblock\nnpm install\nnpm run setup\nnpx nx serve nextblock\n```\n\nThe interactive `setup`\n\nwizard writes your `.env.local`\n\n(Supabase, R2, SMTP, and auto-generated secrets), links the Supabase CLI, and applies the database schema.\n\n**First login:** the dev server runs at ** http://localhost:4200**. Open\n\n`/sign-up`\n\nand create your account — the **first** account to register automatically becomes the\n\n**ADMIN**. Click the confirmation email (or confirm the user in Supabase → Authentication → Users), then sign in to reach the CMS at\n\n`/cms/dashboard`\n\n.Prefer to run everything on your machine? With **Docker Desktop** running:\n\n```\ngit clone https://github.com/nextblock-cms/nextblock.git\ncd nextblock\nnpm install\nnpm run docker:setup     # or: npm run setup → pick \"Local Self-Hosted Docker Mode\"\n```\n\nThis 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\n\n`npm run docker:up`\n\n/ `docker:down`\n\n/ `docker:logs`\n\n. Full guide: [docs/11-SELF-HOSTED-DOCKER.md](/nextblock-cms/nextblock/blob/master/docs/11-SELF-HOSTED-DOCKER.md).\n\n`npx nx serve nextblock`\n\n- Start the local development server for the CMS`npm run lint`\n\n- Lint the monorepo`npm run db:types`\n\n- Generate Supabase types`npm run db:migrate:check`\n\n- Preview pending Supabase migrations safely`npm run db:migrate`\n\n/`npm run db:push`\n\n- Apply pending migration files only, without resets or sandbox seeding`npm run db:migrate:repair-history:check`\n\n- Preview baseline migration-history repair for existing live databases`npm run generate:sandbox`\n\n- Generate sandbox data`npm run sandbox:reset`\n\n- Reset the sandbox environment\n\nThe root `docs/`\n\nfolder is the maintained reference set for both contributors and AI agents.\n\n*The template docs are copied from the root docs through the sync pipeline, so this root docs set is the place to maintain first.*\n\n| Document | Purpose |\n|---|---|\n|\n\n[docs/02-ECOMMERCE-CAPABILITIES.md](/nextblock-cms/nextblock/blob/master/docs/02-ECOMMERCE-CAPABILITIES.md)[docs/03-CMS-AND-EDITOR.md](/nextblock-cms/nextblock/blob/master/docs/03-CMS-AND-EDITOR.md)[docs/04-DATABASE-AND-AUTH.md](/nextblock-cms/nextblock/blob/master/docs/04-DATABASE-AND-AUTH.md)[docs/05-DEVELOPER-GUIDE.md](/nextblock-cms/nextblock/blob/master/docs/05-DEVELOPER-GUIDE.md)[docs/06-CLI-AND-SCAFFOLDING.md](/nextblock-cms/nextblock/blob/master/docs/06-CLI-AND-SCAFFOLDING.md)`create-nextblock`\n\n, template sync, and generated-project behavior[docs/07-BLOCK-SDK-AND-EXTENSIBILITY.md](/nextblock-cms/nextblock/blob/master/docs/07-BLOCK-SDK-AND-EXTENSIBILITY.md)[docs/08-NEXTBLOCK-CORTEX-AI-ARCHITECTURE.md](/nextblock-cms/nextblock/blob/master/docs/08-NEXTBLOCK-CORTEX-AI-ARCHITECTURE.md)[docs/09-LIVE-DRAFT-MODE.md](/nextblock-cms/nextblock/blob/master/docs/09-LIVE-DRAFT-MODE.md)[docs/10-CUSTOM-BLOCKS.md](/nextblock-cms/nextblock/blob/master/docs/10-CUSTOM-BLOCKS.md)[docs/11-SELF-HOSTED-DOCKER.md](/nextblock-cms/nextblock/blob/master/docs/11-SELF-HOSTED-DOCKER.md)[docs/README.md](/nextblock-cms/nextblock/blob/master/docs/README.md)\n\nUnder the hood note:The migration folder under`libs/db/src/supabase/migrations`\n\nis the best source of truth for current platform capabilities.\n\nJoin the community and stay updated on the latest features.\n\n**X (Twitter):**[@NextBlockCMS](https://x.com/NextBlockCMS)** LinkedIn:**[NextBlock™](https://www.linkedin.com/in/nextblock/)** GitHub:**[nextblock-cms/nextblock](https://github.com/nextblock-cms/nextblock)** Medium:**[@nextblockcms](https://medium.com/@nextblockcms)** Dev.to:**[nextblockcms](https://dev.to/nextblockcms)\n\nBuilt with ❤️ by the NextBlock™ Team. Licensed under AGPLv3.", "url": "https://wpnews.pro/news/show-hn-nextblock-cms-open-source-full-stack-cms-for-nextjs-16-and-supabase", "canonical_source": "https://github.com/nextblock-cms/nextblock", "published_at": "2026-08-11 14:29:38+00:00", "updated_at": "2026-08-11 14:42:23.068665+00:00", "lang": "en", "topics": ["developer-tools", "ai-products", "generative-ai"], "entities": ["NextBlock CMS", "Next.js", "Supabase", "WordPress", "Payload", "Strapi", "Vercel", "Nx"], "alternates": {"html": "https://wpnews.pro/news/show-hn-nextblock-cms-open-source-full-stack-cms-for-nextjs-16-and-supabase", "markdown": "https://wpnews.pro/news/show-hn-nextblock-cms-open-source-full-stack-cms-for-nextjs-16-and-supabase.md", "text": "https://wpnews.pro/news/show-hn-nextblock-cms-open-source-full-stack-cms-for-nextjs-16-and-supabase.txt", "jsonld": "https://wpnews.pro/news/show-hn-nextblock-cms-open-source-full-stack-cms-for-nextjs-16-and-supabase.jsonld"}}