While there are no major new features in this release, there are a large number of bugfixes and improvements along with some significant updates to redirects and to SCSS stylesheets.


Marketpath CMS redirects have been dependable for a long time, but there are some shortcomings that it was time to correct. In this release, we improved:

  1. The user interface - making it more obvious how redirect URLs should be entered
  2. Both client-side and server-side validation - preventing users from entering bad values
  3. Performance of redirects - applying them to either a single domain or to all domains
  4. Prioritization of redircts - checking high-priority redirects before checking low-priority ones
  5. Query parameter handling - allow redirects to match even if the current URL has additional query parameters
  6. Query parameters in redirects - passing through all query parmeters to the destination URL
    • Only pass through query parameters NOT matched in the original URL (for regular redirects) and NOT specified in the destination URL.


Due to backwards-compatability concerns (ie: not breaking the display of current websites), Marketpath CMS has utilized an outdated method of SCSS compilation for several years. It is clear, however, that there will be no further maintenance or udpates to it and new CSS libraries will no longer be able to be compiled using the old method.

This dilemna let us to implement a second SCSS compiler based on Dart Sass - which is the primary implementation of Sass/SCSS compilation. This second implemention currently runs side-by-side with our original implementation so that existing stylesheets will continue to compile successfully and maintain 100% backwards-compatability.

There are some notable differences between the new and old implementations which developers should be aware of before attempting to move to the new compiler:

  1. All stylesheets MUST be named with the proper extension to work with the new compiler. While the old compiler could handle names such as "_variables", the new compiler will throw an error unless the stylesheet is named "_variables.scss", "_variables.css", or some other variation complete with the proper extension.
    • Due to this limitation, users are advised to continue using their existing stylesheet implementation for minor updates and should only consider updating to the new compiler if they are willing to rename and update all of the stylesheets on their site accordingly.
    • Also due to this limitation, users are strongly encouraged to include an extension on all of their stylesheets - partial and otherwise - even if they do not want to compile them as SCSS files at the current time.
  2. Some legacy functionality is not supported - or handled differently - by Dart Sass. For a guide on some of these changes read the Sass: Breaking Changes documentation.
  3. While it may be helpful to identify partial stylesheets as legacy/current for organizational purposes, all partial stylesheets will use the same SCSS implementation as their parent stylesheet. That is to say, if the initial stylesheet being compiled is a legacy stylesheet, all partials included by that stylesheet will be interpreted as legacy stylesheets as well (and the same goes for non-legacy stylesheets).


  • Added some helpful text and links to the object versions dialog when the version limit is under 10 and the user is close to or over their version limit
  • Added a confirmation step to account deletion in the UI
  • Automatically refresh the page after a user accepts the latest Marketpath Terms & Conditions
  • Auto-set the "Compiled" property for plain CSS stylesheets to the same value as the "ParseLiquid" checkbox. This makes the "Compiled" column in the UI more meaningful and - more significantly - makes it easy to filter for CSS stylesheets with liquid parsing.
  • Increased the timeout from 3 to 10 seconds for displaying errors that occur during site creation.
  • Allow users to generate new preview site passwords any time. This was previously limited to once/day but we ran into some bad auto-generated passwords and this is an easy way around that issue.
  • Do not send site overage notifications if there is less than 1 day left in the billing cycle or if the given feature is not predicted to go over the quota. Also include the predicted overages in the overage notification.
  • Allow the add_javascript and add_stylesheet methods to use position:in_place (or body/head) without having to use it as a string (position:'in_place'). It's just easier and more intuitive in most cases.
  • Added a new {% set_canonical_url %} method for defining the canonical URL programatically in the template.
  • Minor UI improvements to the empty state dashboard (visible prior to creating your first site in Marketpath CMS)
  • Check the allowed entity types when updating templates and folders. Do not allow users to update until the pages/objects that reference it have been updated.
  • Do not allow users to replace documents and images with a different type of document/image (eg: .pptx -> .pdf, or .jpg -> .png).
  • Updated most filters to be case-insensitive and allow alternate true/false values (eg: true/yes/y/1/false/no/n/0).
  • New Site Improvements
    • Added and tested ability to link directly to packages and/or package collections in the new site dialog.
    • Minor improvements to the display of filters in the theme selector used by the new site wizard
    • Some simple UI fixes for the site upgrade dialog for when the user changes their plan before going live (eg: upgrading to allow more pages, more versions, etc...)
  • Package Improvements
    • "Install Only" package assets are now NOT considered part of a package when it is installed - making it far easier to include them as "Install Only" (or mapped, etc...) in multiple packages from the same source site. Eg: a "sample" folder.
    • Take packages authored on the same site into consideration when checking package dependencies.


  • URGENT: Users are unable to create a gallery item
  • HIGH PRIORITY: Template and datastore fields are duplicated in some circumstances during package installations and import operations
  • While the image editor is open users are unable to select images and image presets (eg: when selecting a different image for the preview)
  • Users are unable to change the package update information at the same time as updating a package on a site.
  • When an archived package is permanently deleted it is not removed from the source site
  • Stylesheets must sometimes be published twice before they are displayed properly on the live site
  • Nested trashing operations (eg: menu items trashed when the entity it references is trashed) sometimes fails to remove the object from live and preview sites
  • Attempting to publish items from the package installation and import dialogs does not work
  • Attempting to override the checkout of another user from the "All Content" dialog fails
  • Some buttons have green text on a green background (eg: on the site dashboard) but should have white text on a green background.
  • When a package installation is interrupted the status of the assets is not always tracked properly
  • Attempting to manually validate domains for the purpose of creating an SSL certificates prior to go-live returns an error message
  • Using the {% img %} method with a "link" value does not output the link
  • In the billing system:
    • Gracefully handle expired credit cards - particularly after the credit card is updated again
    • Gracefully handle cases where accounts and agencies have free sites without a credit cards on file - most notably when they then want to go live with a paid site as well
    • Gracefully handle $0 invoices by marking them as paid and properly advancing the billing period when applicable