TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Developer-owned content architecture. Visual page building and publishing tools for your team.
ProductivityTypeScript · JavaScriptGitHub @nextlyhqOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Nextly is an open-source CMS and visual page builder for Next.js. Model content, build pages, localize, version and release from your own stack.
Taken from the repository README
Loading the full README.
Read the full README ↗[!IMPORTANT] Nextly is in alpha. APIs may change before 1.0. Pin exact versions in production.
Nextly is an open-source content platform for Next.js.
Developers define the content model in TypeScript, or build it in the admin with the Visual Schema Builder; either way it is the same data model. Your team then composes pages in the Visual Page Builder, translates them, keeps a version history, and schedules what goes live. MIT licensed, self-hosted: it runs inside your own Next.js app, on your own PostgreSQL or MySQL database, or SQLite for local work.
nextly generate:types writes types for the collections, singles and field groups in your config. Those made in the Visual Schema Builder get none.# pnpm
pnpm create nextly-app@alpha my-app
# npm
npx create-nextly-app@alpha my-app
# yarn
yarn create nextly-app@alpha my-app
# bun
bun create nextly-app@alpha my-app
That's it. Follow the prompts and you'll have a running CMS with an admin panel and a database.
Prefer a manual setup? See the installation guide for clone-and-configure instructions, Docker, and database options.
A minimal nextly.config.ts that defines a posts collection and exposes a typed API:
import {
defineConfig,
defineCollection,
text,
richText,
relationship,
} from "nextly";
const Posts = defineCollection({
slug: "posts",
fields: [
text({ name: "title", required: true }),
richText({ name: "body" }),
relationship({ name: "author", relationTo: "users" }),
],
});
export default defineConfig({
collections: [Posts],
});
Set DATABASE_URL (and DB_DIALECT) in your .env; Nextly picks the dialect automatically. Posts.title and Posts.body are typed end to end, queryable via REST or Direct API, and editable from the admin panel.
| Package | Description |
|---|---|
| nextly | Core CMS: database, services, REST and Direct APIs, RBAC, hooks |
| @nextlyhq/admin | Admin dashboard and management interface |
| @nextlyhq/ui | Headless UI components shared across packages and plugins |
| create-nextly-app | CLI scaffold for new Nextly projects |
| Package | Description |
|---|---|
| @nextlyhq/builder | The Visual Page Builder editor: shell, canvas, and op store |
| @nextlyhq/blocks-engine | Block document model, tree operations, and validation. No runtime |
| @nextlyhq/blocks-react | React Server Component renderer for block documents |
| Package | Description |
|---|---|
| @nextlyhq/adapter-postgres | PostgreSQL adapter (recommended for production) |
| @nextlyhq/adapter-mysql | MySQL adapter |
| @nextlyhq/adapter-sqlite | SQLite adapter (local demos only) |
| Package | Description |
|---|---|
| @nextlyhq/storage-s3 | Amazon S3 (also R2, MinIO) |
| @nextlyhq/storage-vercel-blob | Vercel Blob storage |
| @nextlyhq/storage-uploadthing | UploadThing storage |
Nextly has a plugin SDK, in alpha: pin exact versions. The Visual Page Builder is itself a plugin.
| Package | Description |
|---|---|
| @nextlyhq/plugin-page-builder | Visual Page Builder: blocks, canvas, server-first rendering |
| @nextlyhq/plugin-seo | SEO fields and a sitemap for your content |
| @nextlyhq/plugin-form-builder | Visual form builder and submission capture |
| @nextlyhq/plugin-sdk | Build your own plugins: schema, services, routes, admin UI |
| @nextlyhq/plugin-mcp | Experimental, off by default: a read-only MCP endpoint with one tool that tells an agent what its credential may read |
Nextly is in alpha, and some plugin surfaces are still settling. The stability ladder says which parts are stable today and which are experimental.
| Package | Description |
|---|---|
| @nextlyhq/adapter-drizzle | Shared Drizzle ORM adapter logic behind the database adapters |
| @nextlyhq/admin-css | Scopes and compiles the admin CSS, for the admin build and plugins |
| @nextlyhq/eslint-plugin | ESLint rules keeping admin UI on the design-token system |
| Tool | Minimum |
|---|---|
| Node.js | 22.12+ or 24+ (not 23; Node 24 LTS recommended) |
| pnpm | 9+ recommended; npm, yarn, and bun also supported |
| Next.js | Supported versions, App Router required |
| React | Supported versions |
| TypeScript | 5+ |
| Database | Minimum | Notes |
|---|---|---|
| PostgreSQL | 15.0+ | Standard PG, Neon (also reachable via Vercel Marketplace), Supabase, RDS, Aurora PG, Railway, Cloud SQL. |
| MySQL | 8.0+ | MariaDB, TiDB, Aurora MySQL, PlanetScale, Vitess on best-effort. |
| SQLite | 3.38+ | Bundled with better-sqlite3. Local demos only. |
See the database support docs for the full version policy and cloud-provider notes.
Skills that teach Claude Code, Codex, Cursor and other agents to install
Nextly, define collections, set up authentication and deploy live in
skills/. Add them to your project with:
npx skills add nextlyhq/nextly
Nextly draws inspiration from each of these projects. The table compares Nextly against the most common Next.js CMS choices, both self-hosted and SaaS. If you want a fully managed SaaS that you do not run yourself, Sanity is the strongest pick on the right; if you want to own your stack and your data, look at the left.
Checked on 2026-10-16 against each project's own documentation, linked below.
| Dimension | Nextly | Payload | Strapi v5 | Sanity |
|---|---|---|---|---|
| License | MIT | MIT | MIT (+ EE) | MIT (Studio); proprietary SaaS (Content Lake) |
| Self-hostable | yes | yes | yes | no (the Studio can be; the Content Lake is hosted SaaS) |
| Hosted in your Next.js app | yes | yes | no (separate Node server) | no (Studio mounts in your app; data is hosted SaaS) |
| Code-first schema | yes | yes | partial (strapi generate writes JSON schemas) | yes |
| Visual schema builder | yes | no | yes (in development only) | no |
| Both code-first and visual | yes | no | partial | no |
| Database / storage | Postgres, MySQL (SQLite for local work) | Postgres, MongoDB, SQLite | Postgres, MySQL/MariaDB, SQLite | Sanity Content Lake (managed) |
"Partial" for Strapi: a content type is a JSON schema file, written by strapi generate or by the admin's Content-type Builder, and the builder works in development only.
Sources:
See nextlyhq.com/roadmap for what's next.
Contributions of every size are welcome: typo fixes, new database adapters, plugins, docs improvements, anything. Start with the Contributing guide for local setup, the development workflow, and our PR/commit conventions.
Local boot is one command: pnpm install && pnpm dev:app from a fresh clone lands a working /admin with seeded demo content. SQLite by default, no Docker required. pnpm dev:postgres and pnpm dev:mysql are opt-in if you want to test against those.
The Nextly CLI (create-nextly-app and nextly) collects usage data under a random ID, to help us improve the tool: never your name, project contents, file paths or secrets. It is off in CI, Docker, production and non-interactive shells, and nextly telemetry disable turns it off.
See nextlyhq.com/docs/telemetry for the full list of what is and is not collected, and for the environment variable that also turns it off (NEXTLY_TELEMETRY_DISABLED=1).
MIT. Free to use, modify, and distribute.