All features
A tour of everything this documentation template includes out of the box.
This page lists what the documentation template ships with. Use it as a checklist when you customize the starter or compare versions.
TIP
Editors own most of this surface from Elmapi. Change categories, articles, versions, and Default open without touching the Next.js app.
Navigation and layout
| Feature | What it does |
|---|---|
| CMS sidebar | Categories and articles from Elmapi, ordered by Sort Order |
| Category fold | Default open sets first visit. Clicks and chevrons remember open or collapsed state |
| Site title in sidebar | Links to the current version home |
| Version switcher | Header control that always opens the home of the selected version |
| Reading width | Page chrome capped at 97rem by default |
| Full width toggle | Optional full-viewport layout, saved in localStorage |
| Sidebar surface bleed | Sidebar background continues into the left viewport gutter when centered |
| Mobile nav | Sheet menu with the same sidebar tree on small screens |
| Dark mode | System preference plus a manual light or dark toggle |
Content and reading
| Feature | What it does |
|---|---|
| Markdown bodies | Articles use richtext editor.mode: markdown with outputFormat: markdown |
| Callouts | GitHub-style NOTE, TIP, IMPORTANT, WARNING, and CAUTION |
| Code blocks | Syntax highlighting via rehype-pretty-code with a hover copy button |
| Tables and lists | GFM tables, ordered lists, and unordered lists |
| Images in markdown | Standard markdown images from Elmapi asset URLs |
| Table of contents | Heading TOC with scroll spy on article pages |
| Prev and next | Adjacent articles within the same category |
| Category pages | List every article in a section |
| Version home | Intro copy from Site Settings plus category browse lists |
Search and discovery
| Feature | What it does |
|---|---|
| Client search | Filter by title, summary, and category name in the header |
| Open on navigate | Landing on an article (including from search) expands its category |
| Deep links | Stable routes at /v/{version}/{slug} |
SEO and caching
| Feature | What it does |
|---|---|
| Site settings SEO | Defaults for title, description, site URL, and optional OG image |
| Per-article SEO | Optional seo-title and seo-description fields |
| Open Graph image | Shared /opengraph-image route |
| robots.txt | Generated from the public site URL |
| Sitemap | Version homes, categories, and articles |
| ISR baseline | revalidate = 3600 on the root layout |
| Webhook refresh | Optional POST /api/revalidate with REVALIDATE_SECRET |
Content model
| Collection | Role |
|---|---|
site-settings | Singleton for brand, intro, and SEO defaults |
doc-versions | Version labels, slugs, default flag |
doc-categories | Sidebar sections, descriptions, Default open |
doc-articles | Markdown pages related to a category and version |
Example callout and code
NOTE
Callouts render from GitHub alert syntax in the markdown body.
import { createClient } from '@elmapicms/js-sdk'
const elmapi = createClient({
baseUrl: process.env.ELMAPI_BASE_URL!,
projectId: process.env.ELMAPI_PROJECT_ID!,
apiKey: process.env.ELMAPI_API_KEY!,
})Next step
If you are setting up a new project, continue with Installation. To change sidebar structure, see the Guides section on organizing categories and articles.