HubSpot CMS offers a robust platform for developers to create and customize websites. Here’s an overview:
- Development Environment: HubSpot CMS provides a local development environment, allowing developers to build, test, and iterate on websites locally before pushing changes live.
- Themes and Templates: Developers can create custom themes and templates using HubL, HubSpot’s templating language. HubL allows for dynamic content rendering and includes features like loops, conditionals, and filters.
- Modules and Drag-and-Drop Editor: HubSpot CMS offers a drag-and-drop editor for non-developers to create and edit content easily. Developers can create custom modules to extend the functionality of the editor and provide additional options for content creation.
- APIs and Integrations: HubSpot provides APIs for developers to integrate external systems and services with HubSpot CMS. This allows for seamless data syncing and automation between HubSpot and other tools.
- SEO and Performance: HubSpot CMS includes built-in SEO tools and optimizations to help improve website performance and search engine rankings.
- Security and Compliance: HubSpot CMS prioritizes security and compliance, providing features like SSL encryption, content security policies, and GDPR compliance tools.
- Support and Documentation: HubSpot offers extensive documentation, developer forums, and support resources to help developers get started and troubleshoot issues.
Overall, HubSpot CMS provides a flexible and powerful platform for developers to create custom websites with ease. Whether you’re building a simple marketing site or a complex web application, HubSpot CMS offers the tools and features needed to bring your vision to life.
HubSpot CMS for Developers Certification Exam Answers
Question 1: Which of the following is NOT available in the file manager?
- File URL
- HTML image snippets
- Replace button to swap assets
- Template and content dependencies
Question 2: Which of the following is NOT an important reason to familiarize yourself with available settings?
- Some templates are coded exclusively in settings.
- Some settings determine data available in templates.
- Code can be added globally in settings.
- Web developers should advise content editors on technical aspects.
Question 3: Which of the following statements about menus in HubSpot is FALSE?
- Navigation with more than one level is managed in settings.
- Simple menus can be edited at the page level.
- HubDB can be used to build totally custom menus.
- The only way to build a menu is with the menu tool.
Question 4: Which of the following CMS tools is used in CAN-SPAM compliance?
- Navigation in settings
- Email settings
- The replace button in file details
- The templates tab in blog settings
Question 5: Which CMS tool would you use to find the file size of a PNG?
- Email settings
- File manager
- Blog editor
- Website pages settings
Question 6: Which of the following statements about navigation items is FALSE?
- Navigation items can have extra URL parameters.
- It is possible to create items without links.
- Navigation items are automatically created when editors create a new page and cannot be created elsewhere.
Question 7: Which statement about CSS in modules is TRUE?
- CSS rules will have the same effect on the page whether they’re written in the CSS section or the HTML+ HubL section of the module editor.
- Module CSS is automatically scoped to modules and will not apply to other elements on a page.
- CSS added to the HTML+ HubL section of the module editor will be repeated on the page in every instance of a module.
- Modules require custom CSS and cannot be published without it.
Question 8: Which of the following statements about module fields is TRUE?
- Modules can contain logic fields.
- Modules have 7 available fields.
- Math fields allow content editors to use modules for common tasks like long division.
- Field groups can only contain fields of the same category.
Question 9: Which of the following statements about modules is FALSE?
- Modules can be used to maintain consistency in site functionality.
- Modules can be used to add consistency to website maintenance.
- Modules can be used to create a more consistent user experience for editors.
- None of the above.
Question 10: Which of the following statements does NOT accurately describe HubL?
- HubL is a templating language for building assets in the HubSpot CMS.
- HubL provides common programming constructs like variables, loops, and conditionals.
- HubL is not client side code.
- HubL provides state management for single page apps.
Question 11: Which of the following is not included in HubL?
- Loops
- Macros
- Filters
- Classes
Question 12: Which of the following statements about HubL module syntax is NOT TRUE?
- Basic module syntax is a single line statement.
- HubL modules use three curly braces to open and close tags.
- HubL modules can be added with a block syntax.
- HubL modules use parameters for required and optional module settings.
Question 13: Which of the following is NOT an important aspect of using HubL?
- Documentation
- Memorizing all tags and parameters
- Community
- Developer info
Question 14: Which data structure does HubL use for storing data in key and value pairs?
- Lists
- Dictionaries
- Objects
- Binary trees
Question 15: Which of the following sets of data would NOT be a good fit for storing in a single HubDB table?
- Names, titles, and biographies of employees of an organization
- A dinner menu for a restaurant
- Information about cats available for adoption from an animal shelter
- Product inventory, hex values for internal branding guidelines, vendor contact archive
Question 16: Which of the following is not an aspect of dynamic pages?
- Dynamic pages require multiple templates.
- Pages are generated from table rows.
- A published page must be linked to a dynamic page table via page settings.
- Links to dynamic pages should be added to the listing section of a template.
Question 17: Which of the following is NOT a sound strategy for working with HubDB?
- Plan out your data needs with stakeholders before creating tables in HubDB.
- While adding data to tables, create columns as needed and iterate as the project grows.
- Use multiple tables linked with foreign ids to handle complex, multi-faceted content.
- Use select columns to standardize repeated values.
Question 18: True or false? HubDB is a good place to store customer data such as credit card numbers.
- True
- False
Question 19: Which of the following is NOT a feature of the HubSpot CMS of special interest to web developers?
- Preconfigured solutions to common tasks
- Security and updates
- In-app and local dev workflows
- The ability to add PHP anywhere in a template
Question 20: Which of the following is possible with the command line tools?
- Creating a new template
- Watching for changes in local files and uploading on save
- Creating a new module
- All of the above
Question 21: Which of the following statements about templates is NOT TRUE?
- Templates allow content creators to do their job without having to collaborate with designers and developers during every step of creating web pages.
- Templates have a big effect on the editing experience for content creators.
- Templates can only be used to create one live page in the HubSpot CMS.
- Templates are an important intersection point for developers and content editors.
Question 22: Which of the following statements about templates is TRUE?
- Templates must be purchased from a 3rd party vendor.
- There are no requirements for header and footer content.
- Comments are not allowed in templates because they look messy.
- Templates use HubL to create editable areas of pages.
Question 23: Which of the following statements about drag and drop areas is TRUE?
- The dnd_area tag is all that is needed for basic drag and drop functionality in the page editor.
- Drag and drop areas allow developers to drag scripts into their pages for rapid prototyping with handlebars.
- Drag and drop areas must contain at least one rich text area.
- The dnd_area tag is a special HubL tag that editors can copy and paste into the file manager to edit photos.
Question 24: True or False? People hate dragging and dropping things so the HubSpot CMS does not contain this capability
- True
- False
Question 25: Which of the following statements about a healthy codebase is TRUE?
- Repeating the same code throughout your codebase is usually preferable to abstracting and reusing code because it’s easier for novice developers to understand.
- Developers using the HubSpot CMS are discouraged from reusing snippets of code because the cost of the CMS is prorated by file size and we would prefer that your codebase is extremely large.
- DRY is an acronym that stands for Do Right Yesterday. It means that finishing a project early is better than taking extra time to make a codebase maintainable.
- Reducing instances of repeated code helps to keep your codebase tidy and bug free.
Question 26: Which statement about repeating module fields is FALSE?
- Repeating fields give editors the ability to add or subtract instances of fields.
- The HubL used to implement repeating fields uses a loop.
- Repeating fields and flexible columns are the same thing
- It is also possible to use repeating field groups.
Question 27: Which of the following statements about HubSpot CMS themes is TRUE?
- Themes are a package of assets that help keep a website consistent.
- Themes are only relevant for very large websites.
- Themes should only contain 5 templates.
- Themes cannot contain modules.
Question 28: Which file in a theme controls the global fields that content editors can edit?
- fields.xml
- theme.json
- fields.json
- That depends on the operating system the content editor is using.
Question 29: Choose all that apply. Which of the following options is configured in the theme.json file?
- Name of the theme
- Link to a preview image for the theme
- List of account users who cannot use the theme
Question 30: Which of the following statements about global partials is NOT TRUE?
- Global partials are a good way to keep your codebase DRY.
- Global partials can only be used on one template in a theme.
- Global partials can be used to give content editors access to content that appears in more than one template.
- Global partials can contain content that is not editable in the content editor.
Question 31: If you wanted to create an unordered list from each value in a dictionary, which aspect of HubL would be most essential?
- An expression test
- A Loop
- The do tag
- This is not possible in HubL
Question 32: How many different email templates should be created?
- Three: a thank you email, a welcome email, and a “sad to see you go” email.
- One for each day of the week.
- None, each email should be built specifically for each use case.
- It depends on the organization and should be discussed with the broader team to align with marketing goals.
Question 33: True or false? System templates can only be built using the Design Manager.
- True
- False
Question 34: True or false? The best way to style emails is through an external CSS stylesheet.
- True
- False
Question 35: In the blog listing template, which variable provides access to blog post data?
- contents
- posts
- post_data
- articles
Question 36: True or false? You can add modules to your blog listing page in the page editor even if your blog listing template does not contain a drag-and-drop area.
- True
- False
Question 37: Fill in the blank: You should omit the ______ from the simple listing page using the {% if not_simple_list_page %} statement.
- post title
- post excerpt
- featured image
- post author
Question 38: Which of the following is NOT an additional page view generated by the blog listing template?
- Author page
- Category page
- Simple listing page
- Tag page
Question 39: What HubL function must you use when calling a list of custom object records on a CMS page?
- crm_associations
- crm_objects
- crm_property_definitions
Question 40: Which of the following datasets would be a good fit for creating a custom object?
- Location data for retail stores
- Job listings
- List of favorite books
- Dog breeds
Question 41: If you need your app code to inspect information about the current build, which class should you use?
- BuildConfig
- BuildInfo
- ConfigParams
- ConfigInfo
Question 42: Which of the following is required to use custom objects in dynamic pages?
- The custom object must have one property where hasUniqueProperty is set to true.
- The custom object must be associated with the contact CRM object.
- The custom object must have at least three custom properties.
- The custom object must be associated with CMS Hub.
Question 43: What pages are you required to set up when creating membership pages?
- registration page, login page, password reset request page, password reset page
- registration page, logout page, membership account page, password reset page
- registration page, login page, membership account page, password reset page
- registration page, login page, logout page, password reset page
Question 44: Which of the following statements about theme modules is TRUE?
- Theme modules should never contain styles.
- Theme modules are a great way to keep sites stylistically consistent.
- Theme modules need to contain a special JavaScript statement that makes them appear in the theme module section of the content editor.
- Themes that use fields should not need modules.
Question 45: Which of the following statements about theme fields is NOT TRUE?
- Theme fields can give editors access to CSS properties.
- Developers can use theme fields to make a theme extremely flexible.
- Developers don’t need to worry about how theme fields might be used by editors because theme fields can’t be used to make a website inconsistent or difficult to navigate.
- Theme fields can affect the appearance of an entire website.
Question 46: Choose all that apply. Which of the following are always good strategies for building templates?
- Keeping content editors front of mind at all times and optimizing their editing experience.
- Building in appropriate guardrails to help content editors quickly build pages and reduce the likelihood of errors and bugs.
- Looking for ways to keep your codebase DRY and avoid repeated code that is prone to bugs.
- Creating lots of blank templates that require content editors to build everything from scratch.
Question 47: What does the hubspot.config.yml file do?
- Configures field names for a theme
- Configures the relationship between local files and HubSpot CMS accounts including authentication
- Configures account settings like system templates and navigation trees
- Configures the relationship between a HubSpot account and the yaml preprocessor
Question 48: Which CMS tool are developers most likely to spend the most time with?
- Editor
- File manager
- CRM
- Design manager
Question 49: Which of the following statements about HubL and JavaScript is TRUE?
- ubL can be used in both the HTML + HubL and the JS sections of the module editor.
- HubL tags contain a “post_js_rendering” attribute so that you can pass JS data to HubL in modules.
- Module builders can choose between JavaScript and HubL to add module fields to their markup.
- JS written in the HTML + HubL section of the module editor will be repeated on a page for every instance of a module unless it is wrapped in a require_js statement.
Question 50: Which of the following HubL and HubDB behaviors should be avoided if possible?
- Use a filter query to reduce the data returned from a request.
- Use the reject attribute filter to create subsets of table data from an initial request.
- Use multiple requests to the same table to build complex templates.
- Use loops to access data in multi-select columns.
Question 51: Which type of CMS assets do not require HubL?
- Custom modules
- Drag and drop templates
- Coded email templates
- Coded blog templates
Question 52: Which of the following statements about blog templates is NOT true?
- Listing and post pages can be separate templates.
- Templates are connected to blogs in settings.
- Blog templates must contain an author profile and a full list of available topics.
- The blog content module contains listing and post HubL markup.
Question 53: Which of the following statements about using HubL in blog listing templates is NOT true?
- Use a loop to add blog posts to the listing template.
- Author name is the only author data available in the listing conditional of a template.
- Conditionals can be used to add or subtract content from author and topic views.
- If you’re using one template for both the listing and post views, you’ll need a conditional to separate the markup for each view.
Question 54: Which of the following characters are used to open a HubL statement?
- {-
- {%
- [&
- {#
Question 55: Which of the following statements about blog settings is TRUE?
- Content editors can assign any number of templates to individual blog posts by tag.
- It is not possible to assign separate templates for listing and post views in settings.
- Listing page post summaries can be enabled and disabled in settings.
- All blog settings can be overridden by HubL at the template level.
Question 56: Which of the following is NOT possible with HubL?
- Passing data from HubL to client side code
- Passing data from client side code to HubL
- Looping through data
- Conditionally executing HubL statements
Question 57: Which of the following is NOT an aspect of HubDB?
- HubDB is a semi-relational data store.
- HubDB is a subset of fork of MySQL.
- HubDB uses tables to store data in rows.
- HubDB tables are accessed with a unique ID.
Question 58: Which of the following statements about email templates is NOT true?
- CAN SPAM fields are required.
- You can customize the appearance of CAN SPAM content with HTML and CSS.
- Email templates cannot contain custom modules.
- Email testing is accessed through the editor.
Question 59: Which of the following statements about HubL filters is TRUE?
- HubL filters are only used in expressions.
- HubL filters are used for a wide variety of tasks.
- HubL filters cannot be used in loops.
- HubL filters do not accept arguments or parameters.
Question 60: Which of the following is NOT a system template?
- Email subscription preferences page
- Search results page
- Blog preferences page
- Error page
Question 61: True or false? It is not possible to publish an email without a link to at least one email subscription template.
- False
- True
Question 62: True or false? Page metadata can be populated in the “Settings” section of the page editor.
- False
- True
Question 63: Which statement about the “Prevent editing in content editors” option is TRUE?
- Prevent editing in content editors is not an option in HubSpot CMS templates.
- Prevent editing in content editors is a blog feature that allows developers to lock the number of tags in a blog.
- Prevent editing in content editors allows content editors to set permissions levels for specific content so that other editors cannot make edits.
- Prevent editing in content editors allows developers to set static values for components at the template level that content editors cannot modify in the page editor.
Question 64: Which statement about template types in the HubSpot CMS is TRUE?
- There is only one template type.
- There are a number of different template types which can be created in either drag and drop or coded formats.
- The editing experience is exactly the same for every template type.
- There are three template types.
Question 65: When creating a drag and drop template, how do you add components?
- Components are added in “Settings.”
- Templates are pre-populated with all the available components.
- Components can be dragged from the “Add” section of the Inspector.
- Components must be coded in Javascript and uploaded via FTP.
Question 66: Which statement about naming components is FALSE?
- Components can be named in the Inspector.
- Component names help content editors understand how to use a template. Component names can be the same as their default values.
- Component names should be left at default because content editors will always get all the context they need from the editor.
Question 67: Which statement about adding classes to groups is TRUE?
- You must use a coded template to add classes to groups.
- Classes added to groups of components will be added to all components inside the group.
- Classes inside of global groups will apply to every instance of that global group in a site.
- Classes cannot be added to groups.
Question 68: Which statement about stylesheets is TRUE?
- When a template is created, a new stylesheet with the name of the new template is automatically created and attached to the template.
- New stylesheets automatically include helpful but optional CSS.
- HubSpot stylesheets are written in Javascript
- Stylesheets can be added to specific areas of templates with the stylesheet module.
Question 69: Which statement about module fields is FALSE?
- It’s a good idea to give fields an intuitive and descriptive name to help content editors use your modules.
- Fields have HubL variable names that are used to create the markup for modules.
- Fields can be required but there’s no support for custom validation.
- The available options for fields vary depending on the field type.
Question 70: True or false? System templates are not published from templates by content editors.
- True
- False
Question 71: Which of the following statements about the design manager is NOT true?
- The design manager is an IDE.
- The design manager helps developers build and manage assets.
- The design manager is used by content editors to publish pages.
- The design manager can be used to edit CSS files.
Question 72: Which of the following statements about HubL in modules is TRUE?
- Modules must contain custom HubL and cannot be published without it.
- HTML attributes cannot contain HubL code.
- Module fields are added to module markup with HubL.
- The drag and drop editor allows you to write HubL in a custom module without having to write code.
Question 73: Which of the following statements about blog templates is TRUE?
- Any template can be used for blogs.
- Blog templates cannot contain custom modules.
- To build a blog template, you must write custom HubL.
- Only blog templates can be used for blogs.
Question 74: Which of the following statements about accessing HubDB via Javascript is NOT true?
- Most GET requests only require a table ID.
- Modifying table data requires authentication.
- Using an API key in client side code is a bad idea.
- As long as your Javascript is written in the CMS, it can be used to modify table data.
Question 75: Which of the following is NOT true about section templates?
- Section templates allow you to add a screenshot Path annotation that is used to preview that section in the page editor.
- Section templates have CSS and JavaScript attached to them, just like modules.
- Modules can be added to section templates to extend their reusability.
Question 76: Fill in the blank: If you wanted to copy the HubL markup of a section in the page editor, you would need to _____.
- Place the query string? developerMode=true at the end of the url to enter developer mode.
- Hover over the section, then right click and copy the code using the developer tools in your browser.
- Use the Design Manager.
Question 77: Select all that apply. Which of the following is something that can NOT be added to a dnd_section tag inside a section template.
- Template annotations
- A link to a style sheet
- A section classes
- A context parameter
Question 78: In the body of a section template, which tag needs to be the parent tag?
- dnd_column
- dnd_section
- dnd_area
- dnd_row
Question 79: Select all that apply. In order to create a section template, you need which of the following in the file?
- A template annotation with the “templateType” set to the value of “section”.
- A dnd_section tag
- A dnd_area tag
- A link to a css file