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
  • 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:

  • On the deployed site — https://yoursite.com/admin/
  • On your local development machine — http://localhost:8080/admin/ (with the Decap proxy running)
  • 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:

  • ⚙ 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
  • 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 </code> tags, JSON-LD publisher, and OpenGraph <code>site_name</code>. Example: <code>Dax Pro</code></td> <p></tr></p> <tr> <td><strong>Description</strong></td> <td>Default meta description. Used when a specific page has no description. Example: <code>Enterprise .NET Static Site Generator & Decap CMS Architecture</code></td> <p></tr></p> <tr> <td><strong>URL</strong></td> <td>Production URL of the site. <strong>No trailing slash.</strong> Example: <code>https://daxpro.axcora.com</code></td> <p></tr></p> <tr> <td><strong>Icon</strong></td> <td>Path to the favicon. Starts with <code>/</code>. Example: <code>/images/dax-primary-logo.webp</code></td> <p></tr></p> <tr> <td><strong>Image</strong></td> <td>Path to the default OpenGraph image. Starts with <code>/</code>. Example: <code>/images/og-default.jpg</code></td> <p></tr></p> <tr> <td><strong>Author</strong></td> <td>Author name for JSON-LD and RSS. Example: <code>Axcora</code></td> <p></tr></p> <tr> <td><strong>Social</strong></td> <td>List of social profile links. Each has Name and URL.</td> <p></tr></p> <p></tbody></table></div></p> <p>4. Update each field</p> <p>5. Click <strong>Publish</strong> in the top-right corner</p> <p>6. Wait for the confirmation toast — "Entry saved" appears</p> <p>7. The change is committed to your Git repository, and the site rebuilds automatically (typically 30–60 seconds on Netlify or Vercel)</p> <h3>Configuring Navigation (Navbar)</h3> <p>1. Click <strong>🧭 Navbar</strong> in the left sidebar</p> <p>2. Click <strong>Navigation</strong></p> <p>3. You will see three sections:</p> <p><strong>Brand</strong> — the wordmark in the top-left of the navigation bar</p> <li><strong>Symbol</strong> — the small badge shown before the name. Default: <code>.NET</code></li> <li><strong>Name</strong> — the main brand name. Default: <code>DAX</code></li> <li><strong>Accent</strong> — the highlighted suffix. Default: <code>PRO</code></li> <p><strong>Items</strong> — the navigation links (one row per link)</p> <li><strong>Title</strong> — desktop label. Example: <code>Home</code></li> <li><strong>Mobile Title</strong> — mobile drawer label (may be longer). Example: <code>Home</code> or <code>About Dax Pro</code></li> <li><strong>URL</strong> — destination. Homepage: <code>/</code>. Other pages: <code>/about/</code>, <code>/contact/</code>. Anchor links: <code>/#pricing</code>, <code>/#contact</code>.</li> <p><strong>Secondary CTA</strong> — the outlined button on the right of the navbar</p> <li><strong>Text</strong> — button label. Default: <code>Pricing</code></li> <li><strong>URL</strong> — destination. Default: <code>/#pricing</code></li> <p><strong>Primary CTA</strong> — the filled button on the right of the navbar</p> <li><strong>Text</strong> — button label. Default: <code>Deploy Dax Pro</code></li> <li><strong>URL</strong> — destination. Default: <code>/#contact</code></li> <p>4. Edit any field</p> <p>5. To add a nav item, click <strong>Add Items</strong> at the bottom of the Items list</p> <p>6. To remove a nav item, hover over a row and click the trash icon</p> <p>7. To reorder, drag rows by the handle on the left</p> <p>8. Click <strong>Publish</strong> when done</p> <h3>Configuring Footer</h3> <p>1. Click <strong>🦶 Footer</strong> in the left sidebar</p> <p>2. Click <strong>Footer</strong></p> <p>3. You will see these sections:</p> <p><strong>Brand</strong> — the footer wordmark</p> <li><strong>Symbol</strong>, <strong>Name</strong>, <strong>Accent</strong> — same structure as Navbar. Defined separately so the footer wordmark can differ from the navbar wordmark if desired.</li> <p><strong>Brand Description</strong> — a short paragraph under the footer wordmark. Two to four sentences is typical. Keep it under 200 characters.</p> <p><strong>Compatibility</strong> — list of small tech badges, separated by middle dots (<code>·</code>) in the rendered theme. Each item is one string. Example: <code>Microsoft .NET 8 / 9</code>.</p> <p><strong>Column 1</strong>, <strong>Column 2</strong>, <strong>Column 3</strong> — three link columns. Each has:</p> <li><strong>Title</strong> — column header. Example: <code>Architecture</code></li> <li><strong>Links</strong> — list of links. Each has <strong>Name</strong> (display text) and <strong>Link</strong> (URL)</li> <p><strong>Copyright</strong> — the copyright line at the bottom of the footer. Example: <code>© 2026 Dax Pro. All rights reserved.</code></p> <p><strong>Legal Links</strong> — the horizontal bar at the very bottom. Each has <strong>Title</strong> and <strong>URL</strong>. Typically privacy, terms, license.</p> <p>4. Edit any field</p> <p>5. To add a link to a column, click <strong>Add Links</strong> in that column's section</p> <p>6. To reorder links, drag the handle on the left</p> <p>7. Click <strong>Publish</strong> when done</p> <h3>What Happens After You Click Publish</h3> <p>When you click <strong>Publish</strong> in Decap CMS:</p> <p>1. Decap CMS commits the change to your Git repository</p> <p>2. The commit message includes a description of the change</p> <p>3. Your host (Netlify, Vercel, or Azure) detects the commit</p> <p>4. The host runs <code>dotnet run -- build</code></p> <p>5. The new <code>site/</code> folder is deployed to the edge</p> <p>6. The change is live — typically within 60 seconds</p> <p>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.</p> <h3>When to Use Decap CMS for Configuration</h3> <p>Use the admin panel when:</p> <li>You are not comfortable with YAML syntax</li> <li>You want field-level validation</li> <li>You are working on a team and want the change logged in Git</li> <li>You are configuring once and rarely changing it</li> <p>Do not use the admin panel when:</p> <li>You are making bulk edits across many fields</li> <li>You want to test changes without committing them</li> <li>You are already editing in VS Code</li> <hr/> <h2>Method 2 — Editing YAML Directly</h2> <p>The second way to configure <code>_data/</code> 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.</p> <h3>Opening the Files</h3> <p>In VS Code:</p> <p>1. Open your project folder (<code>code .</code> from the project directory)</p> <p>2. In the left sidebar, expand <code>_data/</code></p> <p>3. You will see three files: <code>metadata.yaml</code>, <code>nav.yaml</code>, <code>footer.yaml</code></p> <p>4. Click any file to open it</p> <p>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.</p> <h3>Editing <code>_data/metadata.yaml</code></h3> <p>The file looks like this:</p> <pre><code>title: "Dax Pro" <p>description: "Enterprise .NET Static Site Generator & Decap CMS Architecture"</p> <p>url: "https://daxpro.axcora.com"</p> <p>icon: "/images/dax-primary-logo.webp"</p> <p>image: "/images/dax-primary-logo.webp"</p> <p>author: "Axcora"</p> <p>social:</p> <p> - name: "GitHub"</p> <p> url: "https://github.com/mesinkasir/dax"</p> <p> - name: "Gumroad"</p> <p> url: "https://creativitaz.gumroad.com/l/dax-pro"</p> <p> - name: "Fiverr"</p> <p> url: "https://www.fiverr.com/creativitas/design-your-website-with-progresive-web-application"</p> <p></code></pre></p> <p><strong>Edit each field as needed:</strong></p> <li>Change <code>title</code> to your site name. Keep the quotes.</li> <li>Change <code>description</code> to your site description. Keep the quotes. Aim for 150–160 characters for best SEO.</li> <li>Change <code>url</code> to your production URL. <strong>No trailing slash.</strong></li> <li>Change <code>icon</code> and <code>image</code> to your image paths. <strong>Must start with <code>/</code>.</strong> Place the actual image files in <code>public/images/</code>.</li> <li>Change <code>author</code> to your name or company name.</li> <li>Add or remove <code>social</code> entries.</li> <p><strong>Rules for safe editing:</strong></p> <li><strong>Keep the quotes around string values.</strong> YAML does not strictly require quotes for simple strings, but quotes prevent problems with values containing colons, hashes, and special characters. Dax Pro examples always quote.</li> <li><strong>Keep two-space indentation.</strong> Do not use tabs.</li> <li><strong>Do not change the key names.</strong> <code>title</code> must stay <code>title</code>. If you rename it, the template will not find it, and the site will fall back to the default or render empty.</li> <li><strong>Do not delete a key unless you are certain.</strong> The templates expect every key to exist. If you must delete one, provide a sensible empty value like <code>""</code> instead.</li> <h3>Editing <code>_data/nav.yaml</code></h3> <pre><code>brand: <p> symbol: ".NET"</p> <p> name: "DAX"</p> <p> accent: "PRO"</p> <p>items:</p> <p> - title: "Home"</p> <p> mobile_title: "Home"</p> <p> url: "/"</p> <p> - title: "About"</p> <p> mobile_title: "About Dax Pro"</p> <p> url: "/about/"</p> <p> - title: "Services"</p> <p> mobile_title: "Enterprise Services"</p> <p> url: "/services/"</p> <p> - title: "Insights"</p> <p> mobile_title: "Technical Insights"</p> <p> url: "/posts/"</p> <p> - title: "Tags"</p> <p> mobile_title: "Architecture Tags"</p> <p> url: "/tags/"</p> <p> - title: "Contact"</p> <p> mobile_title: "Enterprise Contact"</p> <p> url: "/contact/"</p> <p>secondary:</p> <p> text: "Pricing"</p> <p> url: "/#pricing"</p> <p>cta:</p> <p> text: "Deploy Dax Pro"</p> <p> url: "/#contact"</p> <p></code></pre></p> <p><strong>To add a navigation item</strong>, add a new entry under <code>items</code>, matching the indentation of the existing entries:</p> <pre><code> - title: "Docs" <p> mobile_title: "Documentation"</p> <p> url: "/docs/"</p> <p></code></pre></p> <p><strong>To remove a navigation item</strong>, delete the three lines (title, mobile_title, url) for that item.</p> <p><strong>To reorder</strong>, move the three lines to a different position within <code>items</code>.</p> <p><strong>To change the brand wordmark</strong>, edit <code>brand.symbol</code>, <code>brand.name</code>, and <code>brand.accent</code>.</p> <p><strong>To change the CTA buttons</strong>, edit <code>secondary.text</code>, <code>secondary.url</code>, <code>cta.text</code>, and <code>cta.url</code>.</p> <h3>Editing <code>_data/footer.yaml</code></h3> <pre><code>brand: <p> symbol: ".NET"</p> <p> name: "DAX"</p> <p> accent: "PRO"</p> <p>brand_desc: "The ultra-luxurious corporate theme designed for high-velocity Microsoft .NET Static Site Generators and Decap CMS."</p> <p>compatibility:</p> <p> - "Microsoft .NET 8 / 9"</p> <p> - "·"</p> <p> - "Decap CMS 3.x"</p> <p> - "·"</p> <p> - "Pure HTML5"</p> <p>column1:</p> <p> title: "Architecture"</p> <p> list:</p> <p> - name: "Static Compilation"</p> <p> link: "/services/"</p> <p> - name: "Decap CMS Bridge"</p> <p> link: "/services/"</p> <p> - name: "Azure CI/CD Pipeline"</p> <p> link: "/services/"</p> <p> - name: "Security Audits"</p> <p> link: "/about/"</p> <p> - name: "Benchmark Telemetry"</p> <p> link: "/tags/"</p> <p>column2:</p> <p> title: "Resources"</p> <p> list:</p> <p> - name: "Technical Insights"</p> <p> link: "/posts/"</p> <p> - name: "Decap CMS Guide"</p> <p> link: "/posts/"</p> <p> - name: "Architecture Directory"</p> <p> link: "/tags/"</p> <p> - name: ".NET Articles"</p> <p> link: "/tags/"</p> <p> - name: "Dax Core Project"</p> <p> link: "https://dax.axcora.com"</p> <p>column3:</p> <p> title: "Company"</p> <p> list:</p> <p> - name: "About Dax Pro"</p> <p> link: "/about/"</p> <p> - name: "Enterprise Services"</p> <p> link: "/services/"</p> <p> - name: "Commercial Licensing"</p> <p> link: "/license/"</p> <p> - name: "Contact Engineering"</p> <p> link: "/contact/"</p> <p> - name: "SLA & Support"</p> <p> link: "/contact/"</p> <p>copyright: "© 2026 Dax Pro. All rights reserved."</p> <p>legal:</p> <p> - title: "Privacy Policy"</p> <p> url: "/privacy/"</p> <p> - title: "Terms of Service"</p> <p> url: "/terms/"</p> <p> - title: "License"</p> <p> url: "/license/"</p> <p></code></pre></p> <p><strong>To change a column title</strong>, edit <code>column1.title</code>, <code>column2.title</code>, or <code>column3.title</code>.</p> <p><strong>To add a link to a column</strong>, add a new entry under that column's <code>list</code>:</p> <pre><code> - name: "New Link" <p> link: "/new-page/"</p> <p></code></pre></p> <p><strong>To remove a link</strong>, delete its two lines (<code>name</code> and <code>link</code>).</p> <p><strong>To change the copyright</strong>, edit <code>copyright</code>.</p> <p><strong>To change legal links</strong>, edit the <code>legal</code> array.</p> <h3>Rebuilding After Direct Edits</h3> <p>If you are editing locally, after saving a file:</p> <li><strong>If the development server is running</strong> (<code>dotnet run -- start</code>), it detects the change and rebuilds automatically. Refresh the browser to see the update.</li> <li><strong>If the development server is not running</strong>, run <code>dotnet run -- build</code> and then open <code>site/index.html</code> in a browser (or start the server).</li> <p>If you are editing in a version of the project that is already deployed to a host, after saving you must commit and push:</p> <pre><code>git add _data/ <p>git commit -m "Update site configuration"</p> <p>git push</p> <p></code></pre></p> <p>The host detects the push, rebuilds, and deploys. This is the same pipeline that Decap CMS uses — Decap CMS is essentially doing <code>git commit</code> on your behalf.</p> <hr/> <h2>Deciding Which Method to Use</h2> <p>Both methods work. Here is when each makes sense.</p> <div class="table-responsive"><table> <thead><tr> <th>Situation</th> <th>Use Decap CMS</th> <th>Use VS Code</th> <p></tr></thead></p> <tbody> <tr> <td>Non-technical site owner</td> <td>✅</td> <td>❌</td> <p></tr></p> <tr> <td>Making one small edit</td> <td>✅</td> <td>✅</td> <p></tr></p> <tr> <td>Editing many fields at once</td> <td>❌</td> <td>✅</td> <p></tr></p> <tr> <td>Testing changes before publishing</td> <td>❌</td> <td>✅</td> <p></tr></p> <tr> <td>Working on a team with review</td> <td>✅ (creates Git commits)</td> <td>✅ (commit yourself)</td> <p></tr></p> <tr> <td>Developer who knows YAML</td> <td>❌</td> <td>✅</td> <p></tr></p> <tr> <td>Configuring for the first time</td> <td>✅</td> <td>✅</td> <p></tr></p> <tr> <td>Rolling back a change</td> <td>✅ (via Git history)</td> <td>✅ (via Git history)</td> <p></tr></p> <p></tbody></table></div></p> <p><strong>Most teams use both.</strong> 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.</p> <hr/> <h2>Common Configuration Mistakes</h2> <p>Even with careful reading, some edits break the site. These are the most common.</p> <p><strong>Mistake 1: Adding trailing slash to <code>url</code>.</strong></p> <pre><code>url: "https://example.com/" # wrong <p>url: "https://example.com" # correct</p> <p></code></pre></p> <p>The wrong version produces <code>https://example.com//page/</code> in canonical links. Search engines treat this as a different URL and may index both versions, causing duplicate content warnings.</p> <p><strong>Mistake 2: Unquoted colons.</strong></p> <pre><code>title: Dax Pro: The Theme # wrong — parser reads "Dax Pro" then breaks <p>title: "Dax Pro: The Theme" # correct</p> <p></code></pre></p> <p>Any value containing a colon must be quoted.</p> <p><strong>Mistake 3: Unquoted hash.</strong></p> <pre><code>url: /#pricing # wrong — # starts a comment in YAML <p>url: "/#pricing" # correct</p> <p></code></pre></p> <p><code>#</code> inside a value is treated as a comment in YAML unless the value is quoted. Anchor links must be quoted.</p> <p><strong>Mistake 4: Tabs instead of spaces.</strong></p> <p>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 <code>editor.insertSpaces: true</code> and <code>editor.tabSize: 2</code>).</p> <p><strong>Mistake 5: Changing key names.</strong></p> <pre><code>Title: "Dax Pro" # wrong — template looks for "title", not "Title" <p>title: "Dax Pro" # correct</p> <p></code></pre></p> <p>YAML keys are case-sensitive. <code>title</code> and <code>Title</code> are different keys. The templates expect lowercase.</p> <p><strong>Mistake 6: Deleting required keys.</strong></p> <p>If you delete <code>nav.secondary</code>, the template's <code>{{ nav.secondary.text }}</code> renders as empty. The button shows but with no text. If you want to remove the button entirely, set <code>text: ""</code> and <code>url: ""</code> — the template conditionally hides empty buttons.</p> <p><strong>Mistake 7: Forgetting to rebuild after direct edits.</strong></p> <p>Changes to <code>_data/</code> are not reflected in <code>site/</code> until you rebuild. If you edit <code>metadata.yaml</code> and refresh the browser with no change, you forgot to build.</p> <p><strong>Mistake 8: Editing files with CRLF line endings on Windows.</strong></p> <p>Dax Pro expects LF. If your editor saves with CRLF, the YAML parser may fail. Configure VS Code with <code>files.eol: "\n"</code> (see the Installation chapter).</p> <hr/> <h2>Verifying Your Configuration</h2> <p>After editing <code>_data/</code> (by either method), verify the change took effect:</p> <p>1. Open the site in a browser</p> <p>2. <strong>For metadata changes:</strong> view page source (<code>Ctrl + U</code>), confirm the <code><title></code>, <code><meta name="description"></code>, and <code><meta property="og:image"></code> reflect your edits</p> <p>3. <strong>For navbar changes:</strong> look at the top of any page, confirm the brand wordmark and nav items match your edits</p> <p>4. <strong>For footer changes:</strong> scroll to the bottom of any page, confirm the columns, links, and copyright match your edits</p> <p>If a change did not take effect:</p> <li><strong>Editing via Decap CMS:</strong> check the host's deploy log. If the build failed, the log shows why.</li> <li><strong>Editing via VS Code:</strong> run <code>dotnet run -- build</code> and check the output for errors. If the build fails, the error points to the bad YAML line.</li> <li><strong>Either method:</strong> open <code>site/index.html</code> and search for the old value. If it is still there, the build did not pick up your change. Rebuild.</li> <hr/> <h2>What You Have Now</h2> <p>After this chapter, you can:</p> <li>✅ Log in to Decap CMS at <code>/admin/</code> and edit <code>_data/</code> through forms</li> <li>✅ Edit <code>_data/metadata.yaml</code>, <code>_data/nav.yaml</code>, and <code>_data/footer.yaml</code> directly in VS Code</li> <li>✅ Configure site identity, navigation, and footer</li> <li>✅ Understand when to use each method</li> <li>✅ Recognize and fix the eight most common configuration mistakes</li> <li>✅ Verify that your changes took effect</li> <p></ul>Configuration is the foundation. The site now shows your brand, not the default Dax Pro branding. The next chapter covers <strong>content</strong> — writing the homepage, blog posts, and service pages. That is where the site becomes yours.</p> <p>→ Continue to <a href="/docs/homepage">Homepage Content</a></p> </div> </div> </article> </main> <script> (function() { const docsToggle = document.getElementById('dax-docs-toggle'); const docsSidebar = document.querySelector('.dax-docs-sidebar'); const docsOverlay = document.getElementById('dax-docs-overlay'); if (!docsToggle || !docsSidebar) return; const closeDocs = () => { docsToggle.setAttribute('aria-expanded', 'false'); docsSidebar.classList.remove('open'); if (docsOverlay) docsOverlay.classList.remove('open'); document.body.classList.remove('dax-docs-open'); }; docsToggle.addEventListener('click', () => { const isOpen = docsSidebar.classList.contains('open'); if (isOpen) { closeDocs(); } else { docsToggle.setAttribute('aria-expanded', 'true'); docsSidebar.classList.add('open'); if (docsOverlay) docsOverlay.classList.add('open'); document.body.classList.add('dax-docs-open'); } }); if (docsOverlay) docsOverlay.addEventListener('click', closeDocs); document.addEventListener('keydown', (e) => { if (e.key === 'Escape') closeDocs(); }); document.querySelectorAll('.dax-docs-nav-link').forEach(link => { link.addEventListener('click', closeDocs); }); })(); </script> <footer class="dax-footer"> <div class="dax-container"> <div class="dax-footer-top"> <div class="dax-footer-brand-col"> <a href="/" class="dax-brand"> <span class="dax-brand-symbol">.NET</span> <span class="dax-brand-name" style="color: #FFFFFF;">DAX<span class="dax-brand-accent">PRO</span></span> </a> <p class="dax-footer-desc">The ultra-luxurious corporate theme designed for high-velocity Microsoft .NET Static Site Generators and Decap CMS. Powered by pure semantic HTML5, CSS3, and modern engineering principles.</p> <div class="dax-footer-compatibility"> <span>Microsoft .NET 8 / 9</span> <span>·</span> <span>Decap CMS 3.x</span> <span>·</span> <span>Pure HTML5</span> </div> </div> <div> <h4 class="dax-footer-col-title">Architecture</h4> <ul class="dax-footer-links"> <li><a href="/services/dotnet-ssg-architecture/" class="dax-footer-link">Static Compilation</a></li> <li><a href="/services/decap-cms-workflow/" class="dax-footer-link">Decap CMS Bridge</a></li> <li><a href="/services/azure-devops-github-actions/" class="dax-footer-link">Azure CI/CD Pipeline</a></li> <li><a href="/services/performance-wcag-audits/" class="dax-footer-link">Security Audits</a></li> <li><a href="/services/legacy-cms-migration/" class="dax-footer-link">Benchmark Telemetry</a></li> </ul> </div> <div> <h4 class="dax-footer-col-title">Resources</h4> <ul class="dax-footer-links"> <li><a href="/docs/" class="dax-footer-link">Documentation</a></li> <li><a href="/posts/" class="dax-footer-link">Technical Insights</a></li> <li><a href="/tags/" class="dax-footer-link">Architecture Directory</a></li> <li><a href="https://dax.axcora.com" class="dax-footer-link">Dax Core Project</a></li> </ul> </div> <div> <h4 class="dax-footer-col-title">Company</h4> <ul class="dax-footer-links"> <li><a href="/about/" class="dax-footer-link">About Dax Pro</a></li> <li><a href="/services/" class="dax-footer-link">Enterprise Services</a></li> <li><a href="/license/" class="dax-footer-link">Commercial License</a></li> <li><a href="/contact/" class="dax-footer-link">Contact Engineering</a></li> </ul> </div> </div> <div class="dax-footer-bottom"> <div>© 2026 Dax Pro. Developed for the Microsoft .NET SSG ecosystem and Decap CMS community. All rights reserved.</div> <div class="dax-footer-bottom-links"> <a href="/privacy/" class="dax-footer-link">Privacy Policy</a> <a href="/terms/" class="dax-footer-link">Terms of Service</a> <a href="/license/" class="dax-footer-link">License</a> </div> </div> </div> </footer> <script src="/js/main.js" defer></script> </body> </html>