Skip to content

nextlyhq/nextly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

133 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nextly

Docs · Discussions · Issues · Discord · Website

npm CI License Stars Last commit


Important

Nextly is in alpha. APIs may change before 1.0. Pin exact versions in production.

Nextly is a TypeScript-first, Next.js-native CMS and app framework. Define your content schema in code or build it visually in the admin UI, choose your database, and get a fully-typed REST and Direct API plus a customizable admin dashboard. No SaaS, no proprietary cloud. Your data, your stack.

Why Nextly?

  • Code-first or visual schema. Define collections in TypeScript, or build them in the Schema Builder. Same data model either way.
  • Type-safe everywhere. REST API, Direct API, and the admin UI are typed end-to-end.
  • Pluggable databases. PostgreSQL, MySQL, SQLite via official adapters.
  • Pluggable storage. Local disk by default; S3 (and R2, MinIO), Vercel Blob, or UploadThing for production.
  • Granular access control. Roles, permissions, and field-level access out of the box.
  • Self-hosted, MIT-licensed. Your stack, your data, no vendor lock-in.

Quickstart

# 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 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 tiny example

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.

Packages

Core

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

Database adapters

Package Description
@nextlyhq/adapter-postgres PostgreSQL adapter (recommended for production)
@nextlyhq/adapter-mysql MySQL adapter
@nextlyhq/adapter-sqlite SQLite adapter (local demos only)

Storage adapters

Package Description
@nextlyhq/storage-s3 Amazon S3 (also R2, MinIO, B2, Wasabi)
@nextlyhq/storage-vercel-blob Vercel Blob storage
@nextlyhq/storage-uploadthing UploadThing storage

Plugins (coming soon, beta)

Package Description
@nextlyhq/plugin-form-builder Drag-and-drop form builder (coming soon, beta)

Public plugin support (stable APIs, plugin gallery, documentation guarantees) lands at the Nextly beta release. The package above is published for early exploration only. Surfaces and behaviour will change.

Requirements

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 support

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.

Documentation

Examples

  • Blog template: production-quality blog with seeded content, RSS, sitemap, search
  • Blank template: minimal starter for building from scratch

How Nextly compares

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)

Roadmap

See nextlyhq.com/roadmap for what's next.

Community

Contributing

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.

Telemetry

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).

License

MIT. Free to use, modify, and distribute.

About

Nextly is the open-source, type-safe app framework for Next.js. Define content with TypeScript or build it visually in the admin. Auth, RBAC, media, hooks, plugins.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages