Anyone can set up a HubSpot Marketplace Provider account and create new templates to sell to any of HubSpot's 18,000+ customers. To ensure the best experience for HubSpot Marketplace customers, each template is reviewed against the following criteria by one of HubSpot's quality assurance engineers.
Please note: it's the responsibility of all Marketplace providers to review refund requests. While all transactions are between the customer and the provider only, these are general guidelines for how to handle refund requests.
1. CMS Marketplace Compliance
1.1 At this time, submissions to the Marketplace may contain:
- Website Templates
- Landing Page Templates
- Blog Templates
- System Page Templates
- Error Page Templates
- Password Page Templates
- Subscription Preference Page Templates
- Email Templates
1.2 At this time, submissions to the Marketplace may not contain:
1.3 Templates should use HubSpot's Drag & Drop Interface.
- Website Page templates must use HubSpot's Drag & Drop Interface.
- Landing Page templates must use HubSpot's Drag & Drop Interface.
- Blog templates must use HubSpot's Drag & Drop Interface
- System Page templates must use HubSpot’s Drag & Drop Interface.
- Email templates may use either the Drag & Drop or Coded File interface due to style limitations.
- Modules must use HubSpot's module builder.
1.4 Third-party asset files must be loaded on the HubSpot CDN unless they are from a reputable source (Google Fonts, Font Awesome, etc.), in which case they can be added to the stylesheet using the '@import' feature. If an external CDN version of a library is included, a local copy must be provided as a fallback.
- Clarification: including files in a module from the HubSpot CDN must use the Linked Files section.
1.5 Providers may offer up to five free templates.
1.6 All assets should be nested in one parent folder
- Clarification: Assets must be nested inside of a folder and the folder’s name must describe your product listing
2. Design Requirements
2.1 Design must display properly at common mobile device and desktop screen widths.
- Clarification: content should take up the full width of the page without requiring horizontal scrolling, unless horizontal scrolling is the obvious design intent. With hundreds of devices and configurations, it's necessary to test each page against as many of them as possible. If you are unable to test against a physical device or desktop screen size, then use a software-based approach to test against various configurations. All templates should comply with HubSpot's 12 column grid system based on Bootstrap 2.x.
2.2 Design must display high aesthetic quality, visual appeal, and should be attractive across all platforms.
- Clarification: over time, the expectation to deliver higher quality designs to customers increases. New templates are expected to meet or exceed the current level of quality in order to ensure that those expectations are met.
- Submissions exhibiting poor aesthetic quality:
- 2.2.1 Are too similar in design to existing items.
- 2.2.2 Display inconsistent use of spacing/padding or line-height affecting typography and element placement.
- 2.2.3 Use unattractive, watermarked, or overly compressed imagery and textures.
- 2.2.4 Use colors that do not complement each other.
- 2.2.5 Include misaligned or inconsistently-placed elements.
2.3 Multiple color versions of assets must not be submitted.
- Clarification: submitting assets with the same layout in different color schemes is not permitted. We will approve one asset and reject all others.
2.4 Descriptive naming conventions must be used.
- Clarification: asset names will automatically be created from the template file name.
- Pro Tip: do not use a slash “/" in the asset name, as this will cause an asset injection failure.
2.5 All templates submitted must include a working example page.
- Clarification: when submitting a landing page, blog, website page, or email template, include a link to a live demo version template in the Demo field. A link to your hs-sites staging domain is acceptable.
2.6 All menu modules must use the default menu menu tree.
2.7 Assets must use descriptive module/ field labels where appropriate.
- Clarification: labels are to be used to describe a module's or module field's purpose.
2.8 Assets must use default module content to explain each module's purpose.
- Clarification: default module content should include generic text describing how to use the template from a technical or inbound marketing standpoint. This demonstrates the template’s capabilities and provides clear guidelines for the user. You can set default content by selecting the gear icon > Edit Options on individual modules in the template builder.
2.9 Default content must match what is advertised on the asset listing page and demo site.
- Clarification: all verbiage, images, and other media used on the asset listing page should match what is used on the demo site and the asset.
2.10 Assets must not use elements from HubTheme.
- Clarification: if any elements from HubTheme are used in an asset it will be rejected. Elements include, but are not limited to:
- HubTheme Global Groups
- HubTheme Global Modules
- HubTheme stylesheets
2.11 Assets must not use elements from a HubSpot example template.
- Clarification: any default asset that is located or cloned from an asset that is located in the HubSpot Default folder in the design manager will be rejected.
2.12 Assets must not use elements from an existing HubSpot Marketplace asset.
- Clarification: any asset that was purchased or a cloned version of an asset that was purchased from the HubSpot Marketplace will be rejected.
3. Code & Template Quality
- Clarification: it should not be assumed that an additional stylesheet(s) will be called, such as primary.css or hub-theme.css.
3.2 Templates must not use Styling on Structure.
- Clarification: it is never a good idea to style off of the structural scaffolding of the website. This would include elements such as the container-fluid, row-fluid, widget-span, or other classes and IDs used globally throughout the site template (see example below). If you need to apply a style to an element, you can place a custom class on it from within the template builder. Styling with custom classes makes it easier to target a single module or item and maintain the site scalability.
3.3 Assets must not use custom inline classes that users could overwrite from the Rich Text Editor (WYSIWYG).
- Clarification: custom classes or IDs should not be included inline in Rich Text modules unless they are generated by the HubSpot system. You can apply a class to a module at the template level by clicking on the gear icon on the right side of a module and selecting Edit CSS (or clicking the gear and then Edit CSS Declarations on a module group).
3.4 Assets must not use redundant or unnecessary code. This includes but is not limited to:
- Unused or commented out code
3.5 All of HubSpot's default modules must be styled/ display properly on all Page & Blog templates submitted.
3.6 Templates & Modules must not display any errors in console.
3.7 IDs and classes must be appropriately named and follow a naming convention.
3.8 Default CSS classes must be covered in the stylesheet to follow expected behavior.
3.9 Assets must be loaded in an SSL-friendly way where possible.
3.10 All assets must use the new module framework.
4. Theme Requirements
When submitting themes to the HubSpot Asset Marketplace, the following requirements must be met:4.1 Themes must contain theme fields (theme settings):
- Themes.json must include descriptive name, label, preview path, and a preview image_url.
- Theme fields must be grouped logically where appropriate (e.g. multiple fields related to typography should be grouped together).
- Theme settings must not conflict with editor styles or styles set via a module.
- Theme settings must have a descriptive label so the user knows that they are changing.
- Theme settings must apply to all templates within a theme unless there is a specific use case for additional style (e.g. a change to h1s must update all h1s, not update ⅗ templates in the theme).
- At a minimum, themes must include the following templates:
- Website template
- Landing page template
- Blog templates:
- Blog listing template
- Blog post template
- System templates:
- 404 error template
- 500 error template
- Password prompt template
- Subscription template
- Subscriptions update template
- Backup unsubscribe template
- Search results template
- Body text font field
- H1 - h6 font fields
- Link color (minimum of :link, :visited)
- Header background
- Header text (minimum of color)
- Form background color
- Form border color
- Form label color
- Form field border color
- Form field focus border color
- Form button text (minimum of color)
- Form button background color
4.4 Assets used within the theme must use a local file path/get_asset_url.
4.6 Themes must use global partials:
- Examples of global partials include ‘header, footer’.
4.7 Themes must include a language switcher on all templates.
4.8 If a theme is relying on jQuery a version of jQuery must be included in the event that it isn't loaded by default in a customer's account.
4.9 Themes must respect a 12 column grid that is supported within the HubSpot page editor.
4.10 Templates used in theme must not be submitted as individual templates.
4.11 Module icons must not be the same for all theme modules.
4.12 Module labels must describe the module's purpose.
4.13 Themes must not exceed 50 templates.
4.14 Themes must not exceed 50 modules.
5. Website & Landing Page Template Requirements
5.1 All default modules must be styled enough to be used. Any module that is added to a page should match the style of the template. This list includes but is not limited to:
- Header Modules.
- Form & Subscription Modules:
- Form Labels.
- Form Input Fields.
- Checkboxes & Radio Buttons.
- 'Select' Buttons.
- 'Submit' Buttons.
- Image Modules.
- Image Slider Modules.
- Social Sharing Titles.
- Post Listing & Post Filter Modules.
- Menu Modules.
- Search Modules.
- RSS Modules.
For more information, reference HubSpot's Boilerplate CSS file.
5.2 Custom modules and global modules may be used in website & landing page templates.
6. Blog-Specific Template Requirements
6.1 Blog Post or Blog Listings templates may be used.
- Clarification: The template title must reflect that a template is specifically intended for either a Blog Post or Blog Listing.
6.2 Comments must be styled.
- Clarification: comments should be tested and styled to match the style of the blog template. This includes:
- Parent Comments.
- Comment Responses.
6.3 Authors must be styled.
6.4 Custom modules, global modules, and global groups may be used in blog templates.
7. Email Template Requirements
7.1 Email templates must contain the Office Location Information module that includes the tokens for:
- Street Address 1
- Street Address 2
- Email Type
7.2 Custom Modules may be used in email templates.
8. Template Pack Requirements
8.1 All Template Packs with the exception of Email Template Packs must use the same stylesheet.
8.2 Template packs must not exceed 100 templates.
9. Additional Notes on the Process
9.1 HubSpot reserves the right to reject templates for reasons not listed above, though the QA Engineer will provide feedback via email in such cases.
9.2 Our Quality Assurance (QA) team works out of a queue of submitted templates. Templates that do not pass QA for violating any of these guidelines will be moved to the bottom of that queue when they are resubmitted.
9.3 Please note that HubSpot is unable to provide information about your template's place in the queue. Following the directions here closely will help ensure that your template passes the first time it is run through the QA process, but as volume fluctuates our team is unable to provide a timeframe in which your template will be inspected.
9.4 Providers must support their own work if there are issues with any of the code.
9.5 Providers must not review their own listings.
9.6 Providers must be able to provide a detailed receipt if requested including:
- Template details
- Date of purchase
- Price of template
- Template provider company information
- Marketplace submissions will be removed if bugs are present.
- Marketplace submissions will be removed if 3rd party assets break.
- Providers are responsible for all code and files that are uploaded.
- Assets must not track users without their informed, explicit opt-in consent.
- Assets and their developers must not do anything illegal, dishonest, or morally offensive.
9.10 Submissions with no downloads for 180 days or more will automatically be removed from the Marketplace.
10.1 Templates must not include third-party assets that are not licensed for distribution. Items include:
- Textures, photographs, and other artwork
- Icons and sprites
- Multimedia including sounds, videos, and music
10.2 Templates must be approved within three resubmissions or will automatically be failed.
10.3 Providers must use Stripe Payment Gateway if applicable in their business’s country.
10.4 HubSpot is not responsible for Payment Gateway (Paypal or Stripe) issues that may occur during the purchase process.
10.5 Any templates submitted that violate copyright laws will immediately be removed and the provider will be banned from the HubSpot Marketplace.
10.7 The following activities are not permitted on the HubSpot Marketplace or sites the HubSpot Marketplace links to:
- Promoting or engaging in illegal activities
- Derogatory, disparaging, and/or malicious content
- Offensive content about race, religion, age, gender or sexual orientation