# Nextly > Open-source CMS and visual page builder for Next.js. 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. Define your schema in TypeScript or build it visually in the Schema Builder; both produce the same APIs and the same database schema. Supports PostgreSQL, MySQL and SQLite. MIT licensed. For the complete documentation in a single file, see https://nextlyhq.com/llms-full.txt ## Docs - [Nextly Documentation](https://nextlyhq.com/docs): 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. - [Getting Started](https://nextlyhq.com/docs/getting-started): Learn what Nextly is, understand its core concepts, and get up and running quickly. - [Installation](https://nextlyhq.com/docs/getting-started/installation): Install Nextly in a new or existing Next.js project with step-by-step instructions. - [Quick Start: Build a Blog](https://nextlyhq.com/docs/getting-started/quick-start): Create a blog with posts and categories using Nextly. Define content with code or build it visually. - [Project Structure](https://nextlyhq.com/docs/getting-started/project-structure): Understand how a Nextly project is organized, where key files live, and what each directory does. - [Configuration](https://nextlyhq.com/docs/configuration): Configure your Nextly application with collections, singles, field groups, fields, storage, security, and more. - [Nextly Config Reference](https://nextlyhq.com/docs/configuration/nextly-config): Complete reference for every option accepted by defineConfig() in nextly.config.ts. - [Collections](https://nextlyhq.com/docs/configuration/collections): Define content types with multiple entries using collections. - [Singles](https://nextlyhq.com/docs/configuration/singles): Define single-document content like site settings, headers, and footers. - [Field Groups](https://nextlyhq.com/docs/configuration/field-groups): Define reusable field groups that can be shared across collections and singles. - [Fields](https://nextlyhq.com/docs/configuration/fields): Complete reference for every field type, their options, and usage patterns. - [Environment Variables](https://nextlyhq.com/docs/configuration/environment): Every environment variable Nextly reads, organized by category with required vs. optional indicators. - [Limit store](https://nextlyhq.com/docs/configuration/limit-store): Where limits keep their counts, how to share them between instances, and the contract for an app's own store. - [Media Upload Security](https://nextlyhq.com/docs/configuration/media-upload-security): How Nextly validates and sanitizes uploaded media — MIME allowlist, SVG sanitization, polyglot defenses, and per-adapter Content-Disposition trade-offs. - [Visual Schema Builder](https://nextlyhq.com/docs/schema-builder): Design Collections, Singles, and Field Groups visually with drag-and-drop instead of writing code. - [Dynamic Collections](https://nextlyhq.com/docs/dynamic-collections): What the Visual Schema Builder creates, and how it coexists with collections defined in code. - [Database](https://nextlyhq.com/docs/database): Choose and configure a database for your Nextly application. PostgreSQL is the recommended production database; MySQL is supported; SQLite is for local demos only. - [PostgreSQL](https://nextlyhq.com/docs/database/postgres): Set up Nextly with PostgreSQL. Covers installation, connection strings, provider auto-detection (Neon, Supabase), pool tuning, SSL, migrations, local Docker, and production checklist. - [MySQL](https://nextlyhq.com/docs/database/mysql): Set up Nextly with MySQL. Covers installation, connection strings, charset and collation, pool tuning, SSL, deadlock retry, migrations, and gaps versus PostgreSQL. - [SQLite](https://nextlyhq.com/docs/database/sqlite): Set up Nextly with SQLite. SQLite is for local demos only -- this page covers when (and when not) to use it, install instructions, file paths, WAL mode, and limitations. - [Database support and version requirements](https://nextlyhq.com/docs/database/support): Minimum supported database versions, cloud-provider compatibility, and the warn-and-proceed policy for MySQL-compatible variants. - [Extending the schema](https://nextlyhq.com/docs/database/extending-the-schema): Add tables and indexes of your own with a dialect-neutral DSL, ordered hooks, and a per-dialect escape hatch that refuses what migrations cannot carry. - [Direct API](https://nextlyhq.com/docs/api-reference/direct-api): Server-side API for querying and mutating data directly from Next.js Server Components, server actions, and route handlers. No HTTP, no serialisation overhead. - [REST API](https://nextlyhq.com/docs/api-reference/rest-api): HTTP REST API for browser code, mobile apps, and third-party integrations. Served under /admin/api/ by a single Next.js catch-all route handler. - [Block document format](https://nextlyhq.com/docs/api-reference/block-document-format): The stored shape of a page built with blocks, and what is frozen about it. - [Page Builder](https://nextlyhq.com/docs/page-builder): Let your team compose pages from blocks you define, rendered on the server with no client JavaScript by default. - [Localization](https://nextlyhq.com/docs/localization): Run the same site in several languages, with a fallback when a translation is missing, and publish each language separately. - [Version History](https://nextlyhq.com/docs/versions): Nextly keeps a version history of each document, so you can see what changed, compare two versions of the same language, and put an earlier one back. - [Content Releases](https://nextlyhq.com/docs/releases): Group documents into a release and publish or unpublish them together, at a time you choose. - [Notices](https://nextlyhq.com/docs/notices): Each admin user's own list of notices — what happened to their work that they should know about. - [Roles and Permissions](https://nextlyhq.com/docs/permissions): Control who can do what, down to individual fields. - [Audit Log](https://nextlyhq.com/docs/audit-log): A durable record of who changed what, and when. - [Draft Preview Links](https://nextlyhq.com/docs/preview): Share an unpublished draft with someone who has no account. A preview link is a signed, expiring, per-entry credential — mount one route, add one draft gate, and declare where each collection is served. - [Deployment](https://nextlyhq.com/docs/guides/deployment): Deploy a Nextly application to Vercel (recommended) or self-host on Node.js. Production checklist, environment variables, and database migrations. - [Production migrations](https://nextlyhq.com/docs/guides/production-migrations): Ship database schema changes to production safely with the Nextly migration CLI. Forward-only model, GitHub Actions, Vercel build step, and other-platform patterns. - [Authentication](https://nextlyhq.com/docs/guides/authentication): Custom email + password authentication with JWT sessions, API keys, RBAC, and the super-admin bootstrap flow. - [Media & Storage](https://nextlyhq.com/docs/guides/media-storage): Configure storage adapters (local disk, S3, Vercel Blob, Uploadthing) and named image sizes for uploaded media. - [Email](https://nextlyhq.com/docs/guides/email): Configure email providers (Resend, SMTP, SendLayer), send programmatically via the Direct API, and test locally with Mailpit. - [Draft / Published Status](https://nextlyhq.com/docs/guides/draft-published-status): Enable a Draft / Published lifecycle on collections and singles, with side-by-side examples for code-first config and the Visual Schema Builder. - [ISR and caching](https://nextlyhq.com/docs/guides/isr-caching): Cache your content pages and revalidate them the moment content changes. Tag reads with nextlyTags/cachedFind and Nextly busts them on every write. - [Routing and SEO](https://nextlyhq.com/docs/guides/routing-and-seo): Turn content into pages with correct metadata, sitemap, and robots. The nextly/runtime helpers resolve a slug to a published, access-enforced entry, build a Next.js Metadata object from an seo field group, and deliver sitemap.xml and robots.txt. - [Coding agents](https://nextlyhq.com/docs/guides/coding-agents): The agent guide and skills a Nextly project comes with, how to add the skills to an existing project, and how to keep them in step with the Nextly version you run. - [Plugins](https://nextlyhq.com/docs/plugins): Extend Nextly with official and custom plugins that add collections, admin views, hooks, and API endpoints. - [Plugin Author Guide](https://nextlyhq.com/docs/plugins/author-guide): Build a Nextly plugin — the lifecycle, the plugin context, and the scaffold → dev → test → publish loop. - [Auth extensibility](https://nextlyhq.com/docs/plugins/auth): Extend authentication from a plugin — custom strategies, external sign-in (OAuth), auth-flow hooks, and first-class multi-step challenges (2FA) — without forking core. - [Signed-in people of your own kind](https://nextlyhq.com/docs/plugins/signed-in-people): Let people who are not staff sign in through your plugin — a shop's customers, a site's members — without ever reaching the admin. - [Security helpers](https://nextlyhq.com/docs/plugins/security-helpers): Core's helpers for the people a plugin signs in itself — passwords, opaque secrets, and one-purpose links and codes — with their guarantees and bounds. - [Lifecycle, dependencies & order](https://nextlyhq.com/docs/plugins/lifecycle): How and when a plugin runs — the setup/init/destroy lifecycle, load order, declaring dependencies on other plugins, version compatibility, and enabling/disabling. - [Data access (ctx.services)](https://nextlyhq.com/docs/plugins/services): Read and write data from a plugin through the managed, secure-by-default service layer — queries, bulk operations, and system elevation. - [Permissions](https://nextlyhq.com/docs/plugins/permissions): Declare custom permissions from a plugin, gate routes and admin UI, and check permissions on the client — without ever granting access yourself. - [Plugin security](https://nextlyhq.com/docs/plugins/security): What a plugin can reach, what it must declare, and where the boundaries actually are. - [HTTP routes](https://nextlyhq.com/docs/plugins/routes): Add HTTP endpoints from a plugin — namespaced, secure by default, with typed middleware. - [Admin UI](https://nextlyhq.com/docs/plugins/admin-ui): Contribute admin menu items, pages, settings, and collection-view overrides from a plugin — and control where they appear in the sidebar. - [Schema & data lifecycle](https://nextlyhq.com/docs/plugins/schema): Contribute collections, extend existing entities (including Builder-made ones), relate across the merged schema, and clean up safely on uninstall. - [Testing your plugin](https://nextlyhq.com/docs/plugins/testing): Integration-test a plugin against a real Nextly instance with createTestNextly — and why you should add at least one real-database test. - [API stability](https://nextlyhq.com/docs/plugins/stability): What's stable vs experimental in the plugin API, the semver guarantee that backs it, and the deprecation policy. - [Publishing & distribution](https://nextlyhq.com/docs/plugins/distribution): How to publish a Nextly plugin, how plugins are discovered, and the trust model behind v1. - [Contributing a plugin](https://nextlyhq.com/docs/plugins/contributing): Publish your own Nextly plugin, get it listed, and the quality checklist every plugin should pass — plus how to contribute a plugin to the Nextly repo. - [Plugin API Reference](https://nextlyhq.com/docs/plugins/api-reference): The public plugin surface re-exported by @nextlyhq/plugin-sdk. - [Plugin Error Reference](https://nextlyhq.com/docs/plugins/error-reference): The fail-fast boot errors a plugin can trigger — what each means and how to fix it. - [Form Builder](https://nextlyhq.com/docs/plugins/form-builder): Create and manage dynamic forms with a visual drag-and-drop builder, submission tracking, email notifications, spam protection, webhooks, and data export. - [SEO](https://nextlyhq.com/docs/plugins/seo): An SEO field group on the collections you name, and a sitemap of published content served over plain HTTP. - [Commerce](https://nextlyhq.com/docs/plugins/commerce): A catalogue to sell from, a cart kept on the server behind a cookie, and a checkout that turns it into an order and starts its payment, with the REST routes and typed server functions a storefront uses. - [Webhooks](https://nextlyhq.com/docs/webhooks): Tell another system when your content changes, with signed payloads and retries you can inspect. - [Webhook queue retention & VACUUM](https://nextlyhq.com/docs/webhooks/retention): How Nextly prunes the webhook event ledger and delivery log, plus Postgres autovacuum tuning and SQLite VACUUM guidance for the nextly_events and nextly_webhook_deliveries tables. - [Background Jobs](https://nextlyhq.com/docs/jobs): Run work outside the request that triggered it, with retries and a visible history. - [Dashboard Widgets](https://nextlyhq.com/docs/widgets): Put the numbers your team actually checks on the admin dashboard. - [Admin Panel](https://nextlyhq.com/docs/admin): Overview of the Nextly admin panel, including navigation, default permissions, and how to access it. - [Customization](https://nextlyhq.com/docs/admin/customization): Configure admin panel behavior, plugin placement, navigation permissions, and per-collection sidebar options. - [Branding](https://nextlyhq.com/docs/admin/branding): Customize the admin panel logo, favicon, brand colors, and Visual Schema Builder visibility. - [Telemetry](https://nextlyhq.com/docs/telemetry): What Nextly's CLI collects, why, and how to opt out. - [Templates](https://nextlyhq.com/docs/templates): Starter projects you can scaffold with create-nextly-app. - [Blank Template](https://nextlyhq.com/docs/templates/blank): Start from an empty Nextly config and define your own schemas. - [Blog Template](https://nextlyhq.com/docs/templates/blog): A complete blog starter with posts, categories, tags, frontend pages, and demo content. ## Blog - [Code-First and Visual: How the Dual Approach Works](https://nextlyhq.com/blog/dual-approach-code-first-and-visual): How a TypeScript collection and one built in the Schema Builder become the same thing, and how to decide which path a piece of content should take. - [Build a Blog with Nextly in 10 Minutes](https://nextlyhq.com/blog/build-a-blog-with-nextly): A working blog in Nextly: two collections, an admin to edit them, and two pages that render them. Every snippet is compiled against the release it names. - [Nextly Alpha: What's Ready and What's Next](https://nextlyhq.com/blog/nextly-alpha): What the Nextly alpha ships, what it does not, and how much the APIs are likely to move. Specifics rather than a stability badge. - [Why We Built Nextly](https://nextlyhq.com/blog/why-we-built-nextly): Code-first tools give developers control and everyone else a ticket queue. Visual tools invert it. We wanted one schema both could edit, so we built one. - [What is Nextly?](https://nextlyhq.com/blog/introducing-nextly): Nextly is an open-source CMS and visual page builder that runs inside your Next.js app. Model content in TypeScript or visually, and read it without a network hop. ## Resources - [Nextly](https://nextlyhq.com/): Open-source CMS and visual page builder for Next.js. - [GitHub](https://github.com/nextlyhq/nextly): Source code, issues, and discussions - [Features](https://nextlyhq.com/features): Feature overview - [Comparisons](https://nextlyhq.com/compare): How Nextly compares to Payload, Strapi, WordPress, Sanity and Directus - [Use Cases](https://nextlyhq.com/use-cases): What people build with Nextly, from headless CMS to marketing sites - [Blog](https://nextlyhq.com/blog): Updates, tutorials, and guides - [Changelog](https://nextlyhq.com/changelog): Release history and what's new - [Roadmap](https://nextlyhq.com/roadmap): Product roadmap and upcoming features - [Community](https://nextlyhq.com/community): Discord and community links - [Working with agents](https://nextlyhq.com/ai): What an AI coding agent can read about Nextly today, and what does not exist yet - [Showcase](https://nextlyhq.com/showcase): Sites and apps built with Nextly - [Interactive Demo](https://nextlyhq.com/interactive-demo): Try both code-first and visual approaches in the browser - [About](https://nextlyhq.com/about): Who builds Nextly and why - [Contact](https://nextlyhq.com/contact): Get in touch with the Nextly team ## Optional - [For Developers](https://nextlyhq.com/for-developers): Define schemas in TypeScript, query with a type-safe API, no vendor lock-in - [For Marketers](https://nextlyhq.com/for-marketers): Build campaigns, manage media, and capture leads from the admin panel - [For Content Teams](https://nextlyhq.com/for-content-teams): Role-based access, field-level permissions, and reusable components - [Privacy Policy](https://nextlyhq.com/privacy): What this site collects and what it does not - [Terms of Service](https://nextlyhq.com/terms): The terms this site is provided under - [Rich Text Editor](https://nextlyhq.com/features/editor): Lexical-powered editor with formatting, lists, tables, code blocks, and inline toolbars - [Asset Management](https://nextlyhq.com/features/assets): Media library with folder organization, drag-and-drop uploads, and pluggable storage adapters - [Database Adapters](https://nextlyhq.com/features/database): PostgreSQL, MySQL, and SQLite powered by Drizzle ORM with JSONB, full-text search, and connection pooling - [Access Control](https://nextlyhq.com/features/access-control): RBAC with 3 default roles, field-level read/write permissions, and owner-only rules - [Reusable Components](https://nextlyhq.com/features/components): Define reusable field groups with defineFieldGroup() or visually in the admin panel - [Email System](https://nextlyhq.com/features/email): Transactional emails via Resend, SMTP, or SendLayer with templates and variable interpolation - [Form Builder](https://nextlyhq.com/features/form-builder): Drag-and-drop form creation with 13 field types, submission tracking, and spam protection - [Hooks & Lifecycle](https://nextlyhq.com/features/hooks): 8 collection lifecycle hooks for data transformation, validation, and side effects - [Nextly vs Payload CMS](https://nextlyhq.com/compare/payload-cms): Both are code-first and TypeScript-native. See where each excels. - [Nextly vs Strapi](https://nextlyhq.com/compare/strapi): Strapi has a massive ecosystem. See how Nextly offers a tightly integrated Next.js-native alternative. - [Nextly vs WordPress](https://nextlyhq.com/compare/wordpress): WordPress powers 40%+ of the web. See how Nextly offers a modern developer-first alternative. - [Nextly vs Sanity](https://nextlyhq.com/compare/sanity): Sanity is a polished hosted platform. See how Nextly offers full data ownership with no vendor dependency. - [Nextly vs Directus](https://nextlyhq.com/compare/directus): Directus wraps any existing database. See how Nextly offers a Next.js-native alternative. - [Headless CMS](https://nextlyhq.com/use-cases/headless-cms): Use Nextly as a headless CMS with collections, admin panel, and Direct API or REST - [Blog Platform](https://nextlyhq.com/use-cases/blog-platform): Build a blog with rich text, categories, authors, and media library - [Marketing Site](https://nextlyhq.com/use-cases/marketing-site): Page builder with blocks marketers can rearrange, devs define in code - [Documentation Site](https://nextlyhq.com/use-cases/documentation): Docs with rich text, sections, ordering, and changelog - [Portfolio & Agency Sites](https://nextlyhq.com/use-cases/portfolio): Projects, services, and testimonials as collections