Skip to documentation content

Marketpath Site Standards 1 (MPSS1)

Marketpath Site Standards 1 (MPSS1)

The Marketpath standard that lets site themes, page packages, and component packages be combined without developer involvement.

Marketpath Site Standards 1 (MPSS1) is a set of standards and requirements that give the greatest interoperability between site themes, page templates, and components.

Primary goals:
1. To the greatest extent possible, guarantee interoperability of packages to enable rapid, high-quality website development in Marketpath CMS.
2. Make it easy for a non-technical editor to pull pre-built page types into a site.
3. Define standards that make development consistent between sites and packages, so marketers and developers know intuitively what to do to reach their goals, such as modifying the header or footer, customizing the stylesheet, or reducing the number of requests a page load makes.

Every MPSS1 package should also conform to the Package Development Guidelines, which define many of the development and usability practices this standard relies on.

MPSS1 Standard Labels and Dependencies

Mark MPSS1 packages with a standard label, give each full site package exactly one standard, and keep dependencies and nonessential content interoperable.

Standard label
Note the standard each package uses with a label whose key is "standard". The value is "mpss1" (standard:mpss1), or a framework-specific code when the package applies only to a framework that has its own MPSS1 variant (standard:mpss1-bootstrap5).

Each full site package should have a single standard. Sites created from that package use it to find page packages to install, so do not put both standard:mpss1 and standard:mpss1-bootstrap5 on the same full site package.

Dependency interoperability
An MPSS1 package may depend on packages that are not MPSS1 packages, such as data, component, or widget packages, as long as they are also consistent with the interoperability rules in this standard.

Nonessential content
Include content that is not essential to the package's function as Install Only, so editors can change it without fear that an update will overwrite their changes, and so package updates stay simple.

MPSS1 Basic Site Framework

The header and footer templates, their inputs and outputs, and the stylesheets and javascript every MPSS1 full site package must provide.

Every MPSS1 full site package should include these assets, so page and component packages know where to find the site's shared markup and styles.

/_header.liquid template
Outputs:
• The <head> tag and its contents
• The start of the <body> tag
• The site's main header content
• Optionally, a banner
• Optionally, the page title: {{ page_title | default: entity.title }}
Inputs:
• page_title: when defined, output it in place of {{ entity.title }}.
• no_header_or_footer_markup: disables all header markup, including {{ entity.title }}.
• minimal_header_and_footer_content: disables nonessential header content for a minimal header.
• no_header_banner: disables any banner in the header template. For example: {% unless no_header_banner %}{% include "/path/to/banner.liquid" %}{% assign banner_included_in_header = true %}{% endunless %}
• no_header_title: disables the output of {{ entity.title }}. For example: {% unless no_header_title %}<span>{{ entity.title }}</span>{% assign title_included_in_header = true %}{% endunless %}
Values it sets for the including template:
• banner_included_in_header: set to true when the template outputs a banner.
• title_included_in_header: set to true when the template outputs the title.

/_footer.liquid template
Outputs:
• The site's main footer content (the <footer> tag and its contents)
• The closing </body> tag
Inputs:
• no_header_or_footer_markup: disables all footer markup.
• minimal_header_and_footer_content: disables nonessential footer content for a minimal footer.

Stylesheets and javascript
• /main.scss stylesheet
• /_variables.scss stylesheet, which defines variables and variable overrides
• /main.js javascript

Browser title guideline
When building an MPSS1 full site package, do not change the title or browser title in /_header.liquid. Doing so makes it hard for editors, and for other components, to customize those values, and it makes the SEO preview in the page editor inaccurate.

The guideline applies only to full site (theme) packages. A custom MPSS1 website may do as it wishes, though changing the title or browser title across the whole site can still cause problems. The preferred way to customize the browser title is to set the Default Browser Title Prefix and Suffix in Site Settings, which apply to new pages, and to edit the SEO properties of existing pages.

MPSS1 Backwards Compatibility and Licenses

Never rename a released MPSS1 asset; ship breaking changes as a new versioned asset, and include every license and agreement the package's contents require.

Backwards compatibility
Do not change asset names or paths once the package has been created. This applies particularly to javascript, stylesheet, and template assets.

If an asset needs a breaking change that is no longer compatible with the original:
• Keep the original asset, unaltered, in the package, but change it to Ignored.
• Copy the original asset and make the change in the copy. Either rename the copy or, preferably, place it in a new version sub-directory (for example, copy /marketpath/superbanner/v1/_mpbanner.js to /marketpath/superbanner/v2/_mpbanner.js).
• Note the breaking change in the package changelog, including where to find the new assets.

Licenses
Include every license file and other asset that the original source requires. Place them as a template inside your root package path. If the asset has no name or extension, give it a descriptive name with a .txt extension, for example /marketpath/foundation6/LICENSE.txt.

License and other ancillary assets do not need to be published unless end users must also be able to read them.

If terms must be explicitly agreed to before the package is installed on a site, include those terms in the package agreement. A package should not need more than one agreement. If it requires agreement to several sets of terms, split it into separate packages with their own agreements.

Double-check that you have permission to distribute every image, document, and other copyrighted content in each package before activating it.

MPSS1 Framework Variants

Framework-specific MPSS1 variants and their labels: mpss1-bootstrap5 for Bootstrap 5 sites and mpss1-noframework for sites without a CSS framework.

CSS and javascript frameworks can be built on top of MPSS1. Each variant has its own standard label.

Bootstrap 5
Label: standard:mpss1-bootstrap5
• Depends on the Bootstrap5 package.
• Bootstrap is included and compiled inside /main.scss.
• By default, no javascript is output to the template. To use Bootstrap's javascript: {% add_javascript "/bootstrap5/js/bootstrap.bundle.min.js" %}

No framework
Label: standard:mpss1-noframework
• For sites without a pre-existing CSS framework. Interoperability is not guaranteed without a developer's direct involvement.
• Prefer semantic HTML elements wherever possible.
• Use unique CSS IDs or classes for every part of the site so each can be styled individually. CSS IDs and BEM classes are preferred.

MPSS1 Revision History

Dated changes to Marketpath Site Standards 1 (MPSS1).

• 2026-09-16: Moved from the Guidelines & Standards article into the Building Sites documentation. The standard is unchanged; labels are written as standard:mpss1 to match the labels packages carry, and the header examples set their output variables to true.
• 2023-01-16: Added page_title to the inputs for the /_header.liquid template, and added guidance on leaving the title alone in full site packages.