Marketpath Site Standards 1 (MPSS1)
The Marketpath standard for the shared header and footer, stylesheet and javascript names, and framework variants; recommended for nearly every site so that themes, page packages and components can be combined.
Marketpath Site Standards 1 (MPSS1) is a set of standards and requirements that give the greatest interoperability between site themes, page templates, and components.
Virtually every site benefits from following it, whether or not the site ever becomes a package. The requirements are small, and following them means any developer, theme or package that knows MPSS1 knows where a site's header, footer, stylesheet and javascript are and how to change them. This is a recommendation, and a site that departs from it should record why. A full site package declares one MPSS1 standard with a label (Package Naming and Standards).
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.
MPSS1 covers interoperability only: the shared header and footer, the stylesheet and javascript names, and the framework variants. General practices for building any site well are in Development Practices, and the rules for publishing a CMS package are in Package Development Guidelines. A package or site that follows MPSS1 should follow both.
Do not rename or move an MPSS1 asset once others rely on it: /_header.liquid, /_footer.liquid, /main.scss, /_variables.scss and /main.js. Asset Names and Paths explains how to ship a breaking change as a new versioned asset.
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 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 compiled inside /main.scss, and no javascript is output by default; Styling with Bootstrap Source shows how, including how to add Bootstrap's javascript.
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-10-30: MPSS1 is described as a standard for sites generally, not only packages, and moved out of Package Development. Label and dependency guidance moved to Package Naming and Standards, and compatibility to Asset Names and Paths and Package Organization and Asset Paths. The standard is unchanged.
• 2026-10-21: Licenses and agreements moved to Package Rights and Agreements, and general development practice to Development Practices; the compatibility page now covers only keeping released assets stable. The standard is unchanged.
• 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.