Configuration — Metadata, Navigation, and Footer
Configure your Dax Pro site identity, navigation, and footer. Two methods: through the Decap CMS admin panel, or by editing the YAML files directly. This chapter covers only _data configuration — metadata, navbar, and footer.
What This Chapter Covers
Configuration means the site-wide settings that appear on every page: the site's identity (title, description, favicon, OpenGraph image), the navigation bar (brand wordmark, menu items, CTA buttons), and the footer (columns, links, copyright).
All three of those live in the _data/ folder:
_data/metadata.yaml— site identity and SEO defaults_data/nav.yaml— navigation bar_data/footer.yaml— footer structure- On the deployed site —
https://yoursite.com/admin/ - On your local development machine —
http://localhost:8080/admin/(with the Decap proxy running) - ⚙ Settings — site identity
- 🧭 Navbar — navigation bar
- 🦶 Footer — footer structure
- 🏠 Homepage — homepage sections
- 📝 Posts — blog articles
- 🛠 Services — service pages
- 📄 Pages — static pages
- ✉ Contact Page — contact page
- Symbol — the small badge shown before the name. Default:
.NET - Name — the main brand name. Default:
DAX - Accent — the highlighted suffix. Default:
PRO - Title — desktop label. Example:
Home - Mobile Title — mobile drawer label (may be longer). Example:
HomeorAbout Dax Pro - URL — destination. Homepage:
/. Other pages:/about/,/contact/. Anchor links:/#pricing,/#contact. - Text — button label. Default:
Pricing - URL — destination. Default:
/#pricing - Text — button label. Default:
Deploy Dax Pro - URL — destination. Default:
/#contact - Symbol, Name, Accent — same structure as Navbar. Defined separately so the footer wordmark can differ from the navbar wordmark if desired.
- Title — column header. Example:
Architecture - Links — list of links. Each has Name (display text) and Link (URL)
- You are not comfortable with YAML syntax
- You want field-level validation
- You are working on a team and want the change logged in Git
- You are configuring once and rarely changing it
- You are making bulk edits across many fields
- You want to test changes without committing them
- You are already editing in VS Code
This chapter does not cover content. Configuring a blog post, a service page, or the homepage is a different task, covered in the Content chapters. This chapter is strictly about _data/.
Dax Pro gives you two ways to edit _data/:
1. Through Decap CMS — the visual admin panel. Recommended for non-technical users.
2. Through the YAML files directly — editing in VS Code or any text editor. Recommended for developers.
Both methods edit the same files. They produce identical results. Choose whichever is more comfortable; you can switch at any time.
Method 1 — Editing via Decap CMS
Decap CMS is a React application that provides a visual editing interface on top of your Git-based YAML files. It is the right choice if you are not comfortable editing YAML by hand, or if you want a preview and validation while editing.
Accessing the Admin Panel
There are two environments where you can use Decap CMS:
Both open the same interface. The difference is that the deployed admin writes to your Git repository, while the local admin writes to your local files.
For this chapter, we recommend using the deployed admin, because the initial configuration of Decap CMS (Git Gateway, Netlify Identity, editor invitations) is done in the cloud, and using the cloud environment means your changes flow through the same pipeline that production uses. If you have not yet deployed, use the local environment as described in the Installation chapter (the two-terminal pattern).
Logging In
1. Open https://yoursite.com/admin/ in a browser
2. If you have configured Netlify Identity, you will see a login screen. Enter the email and password that was set up when the site was deployed.
3. If you have configured Git Gateway with an invitation, check your email for the invitation link, click it, set a password, and then return to /admin/.
4. After login, you land on the Decap CMS dashboard, showing all collections in the left sidebar.
The dashboard shows these collections:
This chapter only covers the first three: Settings, Navbar, and Footer. The other five are content and are covered in their own chapters.
Configuring Site Identity (Settings → Site Metadata)
1. Click ⚙ Settings in the left sidebar
2. Click Site Metadata
3. You will see a form with these fields:
| Field | Description |
|---|---|
| Title | The site name. Shown in tags, JSON-LD publisher, and OpenGraph site_name. Example: Dax Pro |
| Description | Default meta description. Used when a specific page has no description. Example: Enterprise .NET Static Site Generator & Decap CMS Architecture |
| URL | Production URL of the site. No trailing slash. Example: https://daxpro.axcora.com |
| Icon | Path to the favicon. Starts with /. Example: /images/dax-primary-logo.webp |
| Image | Path to the default OpenGraph image. Starts with /. Example: /images/og-default.jpg |
| Author | Author name for JSON-LD and RSS. Example: Axcora |
| Social | List of social profile links. Each has Name and URL. |
4. Update each field
5. Click Publish in the top-right corner
6. Wait for the confirmation toast — "Entry saved" appears
7. The change is committed to your Git repository, and the site rebuilds automatically (typically 30–60 seconds on Netlify or Vercel)
Configuring Navigation (Navbar)
1. Click 🧭 Navbar in the left sidebar
2. Click Navigation
3. You will see three sections:
Brand — the wordmark in the top-left of the navigation bar
Items — the navigation links (one row per link)
Secondary CTA — the outlined button on the right of the navbar
Primary CTA — the filled button on the right of the navbar
4. Edit any field
5. To add a nav item, click Add Items at the bottom of the Items list
6. To remove a nav item, hover over a row and click the trash icon
7. To reorder, drag rows by the handle on the left
8. Click Publish when done
Configuring Footer
1. Click 🦶 Footer in the left sidebar
2. Click Footer
3. You will see these sections:
Brand — the footer wordmark
Brand Description — a short paragraph under the footer wordmark. Two to four sentences is typical. Keep it under 200 characters.
Compatibility — list of small tech badges, separated by middle dots (·) in the rendered theme. Each item is one string. Example: Microsoft .NET 8 / 9.
Column 1, Column 2, Column 3 — three link columns. Each has:
Copyright — the copyright line at the bottom of the footer. Example: © 2026 Dax Pro. All rights reserved.
Legal Links — the horizontal bar at the very bottom. Each has Title and URL. Typically privacy, terms, license.
4. Edit any field
5. To add a link to a column, click Add Links in that column's section
6. To reorder links, drag the handle on the left
7. Click Publish when done
What Happens After You Click Publish
When you click Publish in Decap CMS:
1. Decap CMS commits the change to your Git repository
2. The commit message includes a description of the change
3. Your host (Netlify, Vercel, or Azure) detects the commit
4. The host runs dotnet run -- build
5. The new site/ folder is deployed to the edge
6. The change is live — typically within 60 seconds
You can watch this happen in the host's dashboard: Netlify shows a "Deploy" tab with build logs, Vercel shows a "Deployments" list, Azure Static Web Apps shows "Environments" with runs.
When to Use Decap CMS for Configuration
Use the admin panel when:
Do not use the admin panel when:
Method 2 — Editing YAML Directly
The second way to configure _data/ is to edit the YAML files directly in your code editor. This method is faster for developers, gives you full control, and lets you test changes locally before deploying.
Opening the Files
In VS Code:
1. Open your project folder (code . from the project directory)
2. In the left sidebar, expand _data/
3. You will see three files: metadata.yaml, nav.yaml, footer.yaml
4. Click any file to open it
The files are YAML. VS Code, with the YAML extension installed (Red Hat YAML), provides syntax highlighting and basic validation. Syntax errors show as red squiggly lines under the problematic line.
Editing _data/metadata.yaml
The file looks like this:
title: "Dax Pro"
description: "Enterprise .NET Static Site Generator & Decap CMS Architecture"
url: "https://daxpro.axcora.com"
icon: "/images/dax-primary-logo.webp"
image: "/images/dax-primary-logo.webp"
author: "Axcora"
social:
- name: "GitHub"
url: "https://github.com/mesinkasir/dax"
- name: "Gumroad"
url: "https://creativitaz.gumroad.com/l/dax-pro"
- name: "Fiverr"
url: "https://www.fiverr.com/creativitas/design-your-website-with-progresive-web-application"
Edit each field as needed:
title to your site name. Keep the quotes.description to your site description. Keep the quotes. Aim for 150–160 characters for best SEO.url to your production URL. No trailing slash.icon and image to your image paths. Must start with /. Place the actual image files in public/images/.author to your name or company name.social entries.Rules for safe editing:
title must stay title. If you rename it, the template will not find it, and the site will fall back to the default or render empty."" instead.Editing _data/nav.yaml
brand:
symbol: ".NET"
name: "DAX"
accent: "PRO"
items:
- title: "Home"
mobile_title: "Home"
url: "/"
- title: "About"
mobile_title: "About Dax Pro"
url: "/about/"
- title: "Services"
mobile_title: "Enterprise Services"
url: "/services/"
- title: "Insights"
mobile_title: "Technical Insights"
url: "/posts/"
- title: "Tags"
mobile_title: "Architecture Tags"
url: "/tags/"
- title: "Contact"
mobile_title: "Enterprise Contact"
url: "/contact/"
secondary:
text: "Pricing"
url: "/#pricing"
cta:
text: "Deploy Dax Pro"
url: "/#contact"
To add a navigation item, add a new entry under items, matching the indentation of the existing entries:
- title: "Docs"
mobile_title: "Documentation"
url: "/docs/"
To remove a navigation item, delete the three lines (title, mobile_title, url) for that item.
To reorder, move the three lines to a different position within items.
To change the brand wordmark, edit brand.symbol, brand.name, and brand.accent.
To change the CTA buttons, edit secondary.text, secondary.url, cta.text, and cta.url.
Editing _data/footer.yaml
brand:
symbol: ".NET"
name: "DAX"
accent: "PRO"
brand_desc: "The ultra-luxurious corporate theme designed for high-velocity Microsoft .NET Static Site Generators and Decap CMS."
compatibility:
- "Microsoft .NET 8 / 9"
- "·"
- "Decap CMS 3.x"
- "·"
- "Pure HTML5"
column1:
title: "Architecture"
list:
- name: "Static Compilation"
link: "/services/"
- name: "Decap CMS Bridge"
link: "/services/"
- name: "Azure CI/CD Pipeline"
link: "/services/"
- name: "Security Audits"
link: "/about/"
- name: "Benchmark Telemetry"
link: "/tags/"
column2:
title: "Resources"
list:
- name: "Technical Insights"
link: "/posts/"
- name: "Decap CMS Guide"
link: "/posts/"
- name: "Architecture Directory"
link: "/tags/"
- name: ".NET Articles"
link: "/tags/"
- name: "Dax Core Project"
link: "https://dax.axcora.com"
column3:
title: "Company"
list:
- name: "About Dax Pro"
link: "/about/"
- name: "Enterprise Services"
link: "/services/"
- name: "Commercial Licensing"
link: "/license/"
- name: "Contact Engineering"
link: "/contact/"
- name: "SLA & Support"
link: "/contact/"
copyright: "© 2026 Dax Pro. All rights reserved."
legal:
- title: "Privacy Policy"
url: "/privacy/"
- title: "Terms of Service"
url: "/terms/"
- title: "License"
url: "/license/"
To change a column title, edit column1.title, column2.title, or column3.title.
To add a link to a column, add a new entry under that column's list:
- name: "New Link"
link: "/new-page/"
To remove a link, delete its two lines (name and link).
To change the copyright, edit copyright.
To change legal links, edit the legal array.
Rebuilding After Direct Edits
If you are editing locally, after saving a file:
dotnet run -- start), it detects the change and rebuilds automatically. Refresh the browser to see the update.dotnet run -- build and then open site/index.html in a browser (or start the server).If you are editing in a version of the project that is already deployed to a host, after saving you must commit and push:
git add _data/
git commit -m "Update site configuration"
git push
The host detects the push, rebuilds, and deploys. This is the same pipeline that Decap CMS uses — Decap CMS is essentially doing git commit on your behalf.
Deciding Which Method to Use
Both methods work. Here is when each makes sense.
| Situation | Use Decap CMS | Use VS Code |
|---|---|---|
| Non-technical site owner | ✅ | ❌ |
| Making one small edit | ✅ | ✅ |
| Editing many fields at once | ❌ | ✅ |
| Testing changes before publishing | ❌ | ✅ |
| Working on a team with review | ✅ (creates Git commits) | ✅ (commit yourself) |
| Developer who knows YAML | ❌ | ✅ |
| Configuring for the first time | ✅ | ✅ |
| Rolling back a change | ✅ (via Git history) | ✅ (via Git history) |
Most teams use both. Initial configuration is done in VS Code during development. Day-to-day edits (changing the copyright year, adding a nav link, updating the site description) go through Decap CMS by whoever maintains the site.
Common Configuration Mistakes
Even with careful reading, some edits break the site. These are the most common.
Mistake 1: Adding trailing slash to url.
url: "https://example.com/" # wrong
url: "https://example.com" # correct
The wrong version produces https://example.com//page/ in canonical links. Search engines treat this as a different URL and may index both versions, causing duplicate content warnings.
Mistake 2: Unquoted colons.
title: Dax Pro: The Theme # wrong — parser reads "Dax Pro" then breaks
title: "Dax Pro: The Theme" # correct
Any value containing a colon must be quoted.
Mistake 3: Unquoted hash.
url: /#pricing # wrong — # starts a comment in YAML
url: "/#pricing" # correct
# inside a value is treated as a comment in YAML unless the value is quoted. Anchor links must be quoted.
Mistake 4: Tabs instead of spaces.
YAML does not accept tabs for indentation. Use two spaces per level. If your editor inserts tabs, configure it to insert spaces (VS Code's editor.insertSpaces: true and editor.tabSize: 2).
Mistake 5: Changing key names.
Title: "Dax Pro" # wrong — template looks for "title", not "Title"
title: "Dax Pro" # correct
YAML keys are case-sensitive. title and Title are different keys. The templates expect lowercase.
Mistake 6: Deleting required keys.
If you delete nav.secondary, the template's {{ nav.secondary.text }} renders as empty. The button shows but with no text. If you want to remove the button entirely, set text: "" and url: "" — the template conditionally hides empty buttons.
Mistake 7: Forgetting to rebuild after direct edits.
Changes to _data/ are not reflected in site/ until you rebuild. If you edit metadata.yaml and refresh the browser with no change, you forgot to build.
Mistake 8: Editing files with CRLF line endings on Windows.
Dax Pro expects LF. If your editor saves with CRLF, the YAML parser may fail. Configure VS Code with files.eol: "\n" (see the Installation chapter).
Verifying Your Configuration
After editing _data/ (by either method), verify the change took effect:
1. Open the site in a browser
2. For metadata changes: view page source (Ctrl + U), confirm the , , and reflect your edits
3. For navbar changes: look at the top of any page, confirm the brand wordmark and nav items match your edits
4. For footer changes: scroll to the bottom of any page, confirm the columns, links, and copyright match your edits
If a change did not take effect:
dotnet run -- build and check the output for errors. If the build fails, the error points to the bad YAML line.site/index.html and search for the old value. If it is still there, the build did not pick up your change. Rebuild.What You Have Now
After this chapter, you can:
/admin/ and edit _data/ through forms_data/metadata.yaml, _data/nav.yaml, and _data/footer.yaml directly in VS CodeConfiguration is the foundation. The site now shows your brand, not the default Dax Pro branding. The next chapter covers content — writing the homepage, blog posts, and service pages. That is where the site becomes yours.
→ Continue to Homepage Content