Skip to main content

Data Files

Nocturne uses 4 JSON files for site content. These files are editable from Decap CMS — no code needed.

This page documents each file and every field.


File Location​

src/data/
├── site.json ← Site identity
├── navbar.json ← Navbar + footer + theme toggle
├── widgets.json ← Sidebar widgets
└── home.json ← Homepage content

1. site.json — Site Identity​

Controls global site metadata.

{
"title": "Nocturne",
"tagline": "Documentation that feels premium. Built on Docusaurus.",
"url": "https://nocturne.axcora.com",
"organizationName": "axcora",
"projectName": "nocturne",
"favicon": "img/nocturne-favicon.webp",
"image": "img/nocturne-og.webp",
"copyrights": "Nocturne — Premium Docusaurus documentation system by Axcora Technology."
}
FieldPurpose
titleSite title — browser tab
taglineShort description for SEO
urlLive site URL
organizationNameGitHub org
projectNameGitHub repo
faviconBrowser tab icon
imageSocial share image
copyrightsFooter copyright

2. navbar.json — Navigation​

Controls the navbar and footer.

{
"logo": "NOCTURNE",
"logoLink": "/",
"links": [
{ "to": "/docs/intro", "label": "Documentation" },
{ "to": "/blog", "label": "Journal" },
{ "to": "/pricing", "label": "Pricing" },
{ "to": "/changelog", "label": "Changelog" }
],
"cta": {
"text": "GET NOCTURNE →",
"href": "https://creativitaz.gumroad.com/l/nocturne"
},
"footer": {
"copyright": "© 2026 NOCTURNE",
"badge": "● BUILT ON DOCUSAURUS"
},
"themeToggle": {
"dark": "☀",
"light": "☾"
}
}
FieldPurpose
logoNavbar logo text
logoLinkLogo click destination
linksNavbar menu items
ctaCall-to-action button
footerFooter copyright + badge
themeToggleDark/light mode icons

3. widgets.json — Sidebar Widgets​

Controls blog list, about widget, and other sidebar content.

{
"blogList": {
"badge": "● JOURNAL — LATEST UPDATES",
"title": "Notes on documentation,<br />design & <i>craft.</i>",
"sub": "Product updates, behind the scenes, and how we built Nocturne.",
"readLabel": "READ →"
},
"blogPage": {
"text": "← BACK TO JOURNAL",
"url": "/blog/"
},
"about": {
"enabled": true,
"title": "About Nocturne",
"image": "/img/axcoranewlogored.webp",
"text": "Nocturne is a premium Docusaurus documentation system by Axcora Technology.",
"link": "/docs/intro",
"linkLabel": "About Nocturne →"
},
"newsletter": {
"enabled": false
},
"links": {
"enabled": false
}
}
SectionPurpose
blogListBlog list page header
blogPage"Back to Journal" link
aboutAbout widget on blog sidebar
newsletterNewsletter widget (disabled by default)
linksLinks widget (disabled by default)

4. home.json — Homepage Content​

Controls everything on the homepage.

{
"meta": {
"title": "Nocturne — Premium Docusaurus Documentation System",
"description": "Elegant documentation..."
},
"hero": { ... },
"awards": [ ... ],
"video": { ... },
"features": { ... },
"testimonials": { ... },
"pricing": { ... },
"blogTeaser": { ... },
"cta": { ... }
}

Sections:

SectionPurpose
metaPage title and SEO description
heroMain headline, CTA buttons, hero image
awardsTrust badges below hero
videoEmbedded demo video
featuresFeature cards
testimonialsClient quotes
pricingPricing tiers
blogTeaserBlog teaser section
ctaFinal call-to-action

How to Edit​

Option A — Decap CMS

  1. Open /admin/
  2. Click Site Settings → choose file
  3. Edit fields
  4. Click Save

Option B — Text Editor

  1. Open the JSON file in VS Code
  2. Edit values
  3. Save

JSON Syntax Rules​

  • Double quotes only — "key", not 'key'
  • No trailing commas
  • Escape quotes inside strings — \"
  • HTML allowed in some fields — <br />, <i>

Example:

{
"title": "Documentation<br />that feels<br /><i>premium.</i>"
}

Adding a New Field​

  1. Add the field to the JSON file
  2. Add the field to static/admin/config.yml
  3. Restart the dev server

Example — add a "Team" section to home.json:

"team": {
"badge": "● TEAM",
"title": "Built by a small team.",
"list": [ ... ]
}

Then in config.yml, under Home Content → fields, add:

- label: "Team"
name: "team"
widget: "object"
fields:
- { label: "Badge", name: "badge", widget: "string" }
- { label: "Title", name: "title", widget: "string" }
- { label: "List", name: "list", widget: "list" }

Troubleshooting​

Changes don't appear​

  1. Check JSON syntax — use jsonlint.com
  2. Save the file
  3. Refresh the browser

JSON parse error​

Look for:

  • Missing comma
  • Trailing comma
  • Single quotes instead of double
  • Unescaped quotes

Decap CMS doesn't show the field​

Add the field to config.yml under the correct collection.

Field appears but doesn't render​

  1. Check the component that uses the field
  2. Check for typos in the field name
  3. Rebuild the site

What's Next?​

Configuration is done. Now let's customize Nocturne.

👉 Next: Customization Overview →