Site.json config file Last updated: 24. Feb 2026

Configuration reference for site.json – controls minification, HTTP headers and URL rules per site.

Configuration file placed at the root of a site (#/site.json). Provides control over minification, HTTP headers and URL rules per site.

Structure

File #/site.json

{
  "urls": {
    "cleanUrls": false
  },
  "headers": {
    "X-Custom-Header": "verdi"
  },
  "minify": {
    "enabled": true,
    "provider": "nuglify",
    "js": true,
    "css": true,
    "html": true,
    "settings": {
      "html": { ... },
      "js": { ... },
      "css": { ... }
    }
  }
}

All sections are optional. Missing sections mean default behaviour is preserved.


headers

Key/value pairs added as HTTP headers on all responses from the site. In case of conflict with existing headers, site.json wins.


minify

  • enabled (bool, default: false) – Enables minification via the selected provider. When false, legacy compression is used (as before).
  • provider (string, default: "zeta")"zeta" or "nuglify".
  • js (bool, default: true) – Minify JavaScript (requires NUglify).
  • css (bool, default: true) – Minify CSS (requires NUglify).
  • html (bool, default: false) – Minify HTML.
  • settings (object) – Provider-specific settings (see below).

Note: JS and CSS are currently only minified for the HTML pipeline. Standalone JS/CSS files go through the binary path and are not yet supported.


settings (NUglify)

Three optional subsections – html, js and css – mapped directly to NUglify's settings classes. Unknown properties are ignored; missing properties receive NUglify defaults.

Without settings, NUglify's standard defaults are used.

{
  "settings": {
    "html": {
      "removeAttributeQuotes": false,
      "removeOptionalTags": false,
      "minifyJs": false,
      "minifyCss": false
    },
    "js": {
      "preserveImportantComments": true
    },
    "css": {
      "commentMode": "Important"
    }
  }
}

A full list of available properties can be found in the NUglify documentation for HtmlSettings, CodeSettings and CssSettings.


Examples

NUglify with defaults:

{
  "minify": { "enabled": true, "provider": "nuglify", "html": true }
}

NUglify with custom settings:

{
  "minify": {
    "enabled": true,
    "provider": "nuglify",
    "html": true,
    "settings": {
      "html": { "removeOptionalTags": true },
      "js": { "preserveImportantComments": false }
    }
  }
}

Behaviour without site.json

Existing sites without site.json are completely unaffected. All behaviour is identical to before, and HTML is compressed with Zeta as the legacy provider.