Use Cases / Documentation Site

Docs content in your database.

Store your documentation alongside your application data. Sections, ordering, rich text, and a changelog collection, all managed through the same admin panel your team already uses. No separate static site generator or third-party docs platform required.

Rich Text Editor

Full Lexical editor for doc pages: headings, code blocks, callouts, and embedded media. Writers get a proper editing experience.

Ordering Field

Use a number field for explicit ordering within each section. Render docs in the right sequence without relying on creation order.

Relationships

Docs belong to sections. Sections group related pages. Use relationship fields to model the hierarchy cleanly.

Changelog Collection

Version entries with a date, description, and type. Query the last 10 entries for a /changelog page in a single call.

The problem

Docs in Markdown files can't be updated by non-developers.

Static site generators and MDX work well for developer-maintained docs. But when a product manager or technical writer needs to update a page, they're filing a GitHub PR or waiting for someone who can. Hosted docs platforms solve the editing problem but add another service to your stack.

Nextly keeps docs in your database. Writers use the admin panel. Developers define the schema. The output is a Next.js page with zero extra infrastructure.

Example

Docs schema: pages, sections, changelog

Docs collection

collections/docs.ts
import {
 defineCollection, text, richText,
 relationship, number, select,
} from"@revnixhq/nextly/config";

export default defineCollection({
 slug:"docs",
 fields: [
  text({ name:"title", required: true }),
  text({ name:"slug", unique: true }),
  richText({ name:"content" }),
  relationship({ name:"section", relationTo:"sections" }),
  number({ name:"order", min: 0 }),
  select({
   name:"status",
   options: [
    { label:"Draft", value:"draft" },
    { label:"Published", value:"published" },
   ],
  }),
 ],
});

Sections collection

collections/sections.ts
import {
 defineCollection, text, number,
} from"@revnixhq/nextly/config";

export default defineCollection({
 slug:"sections",
 fields: [
  text({ name:"title", required: true }),
  text({ name:"slug", unique: true }),
  number({ name:"order", min: 0 }),
 ],
});

Changelog collection

collections/changelog.ts
import {
 defineCollection, text, richText,
 date, select,
} from"@revnixhq/nextly/config";

export default defineCollection({
 slug:"changelog",
 fields: [
  text({ name:"version", required: true }),
  date({ name:"releasedAt", required: true }),
  richText({ name:"description" }),
  select({
   name:"type",
   options: [
    { label:"Feature", value:"feature" },
    { label:"Bug Fix", value:"bugfix" },
    { label:"Breaking Change", value:"breaking" },
   ],
  }),
 ],
});

Start building with Nextly

Free, open source, and yours to own. No sign-up required.

>_npx create-nextly-app@latest