Docs · Discussions · Issues · Discord · Website
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. It all runs inside your own Next.js app, on your own database. No SaaS, no proprietary cloud.
- Model in code, or in the admin. Define your content types (we call them collections) in TypeScript, or build them in the Visual Schema Builder. Same data model either way.
- Compose pages visually. The Visual Page Builder gives your team a canvas of blocks your developers registered. Pages render on the server and ship no JavaScript unless a block needs it.
- Run in several languages. The same site in multiple locales, with a fallback when a translation is missing. Each language has its own draft and published state, so you can publish one language without publishing the rest.
- Keep a version history. Compare any two versions of a document and restore one. Restoring snapshots the current state first, so nothing is destroyed.
- Schedule what goes live. Group entries into a release and publish or unpublish them together, at a time you choose.
- Control who can edit what. Roles and permissions, down to individual fields.
- Connect it to the rest of your stack. Webhooks with signing secrets and retries, background jobs, and dashboard widgets in the admin.
- Extend it. A plugin SDK covering schema, services, routes, admin UI and permissions. The Visual Page Builder is itself a plugin, built on that same public API.
- Type-safe everywhere. REST API, Direct API, and the admin UI are typed end-to-end.
- Your database, your storage. PostgreSQL, MySQL, or SQLite. Local disk by default; S3 (and R2, MinIO), Vercel Blob, or UploadThing for production.
- Self-hosted, MIT-licensed. Your stack, your data, no vendor lock-in.
# 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-appThat's it. Follow the prompts and you'll have a running CMS with admin panel and database in under a minute.
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, B2, Wasabi) |
| @nextlyhq/storage-vercel-blob | Vercel Blob storage |
| @nextlyhq/storage-uploadthing | UploadThing storage |
Nextly has a first-class plugin SDK. The Visual Page Builder is itself a plugin, built on the same public API you would use.
| 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 placeholder: serves no MCP endpoint yet |
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 | 20+ (Node 22 LTS recommended) |
| pnpm | 9+ recommended; npm, yarn, and bun also supported |
| Next.js | 16+ (App Router required) |
| React | 19+ |
| 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.
- Installation: get started in minutes
- Quick start: build a blog in 5 minutes
- Configuration: collections, singles, fields, hooks
- Visual Schema Builder: define schema in the admin UI
- Authentication & permissions: RBAC, API keys, JWT
- REST API and Direct API
- Database: Postgres, MySQL, SQLite adapters
- Admin customization: extend the dashboard
- Plugin development: build your own integrations
- Deployment: Vercel, Docker, and more
- Blog template: production-quality blog with seeded content, RSS, sitemap, search
- Blank template: minimal starter for building from scratch
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.
| Dimension | Nextly | Payload | Strapi v5 | Sanity |
|---|---|---|---|---|
| License | MIT | MIT | MIT (+ EE) | MIT (Studio); proprietary SaaS (Content Lake) |
| Self-hostable | yes | yes | yes | no (SaaS only) |
| All features free (no paid gates) | yes | yes | no (advanced RBAC, SSO, audit log gated in EE) | no (free tier + usage-based paid plans) |
| 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 (CLI generators) | yes |
| Visual schema builder | yes | no | yes | no |
| Both code-first and visual | yes | no | partial | no |
| Database / storage | Postgres, MySQL, SQLite | Postgres, MongoDB, SQLite | Postgres, MySQL/MariaDB, SQLite | Sanity Content Lake (managed) |
See nextlyhq.com/roadmap for what's next.
- GitHub Discussions for questions, ideas, and show-and-tell
- Issues for bug reports and feature requests
- Discord for real-time chat with the team and other users
- Contributing guide for local setup, the dev workflow, and PR conventions
- Code of Conduct for how we behave as a community
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 in roughly a minute. 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 anonymous usage data to help us improve the tool. No personal information, project contents, file paths, or secrets are collected. Telemetry is automatically disabled in CI, Docker, production, and non-interactive shells.
See nextlyhq.com/docs/telemetry for the full list of what is and is not collected, and for instructions on opting out (nextly telemetry disable or NEXTLY_TELEMETRY_DISABLED=1).
MIT. Free to use, modify, and distribute.