The CRM behind the forms
Every form on a theme page writes to a HubSpot contact record. Salesforce sync is a HubSpot app, so that record can carry on into a CRM you already run.
A theme is files in your portal, so most of what it needs is already in HubSpot. The rest is a short list: typefaces, an icon set, maps and one script. This page names each one, where it loads from, whether it wants a key of yours, and whether you can switch it off.
None of these is something we built or a company we have an arrangement with. They connect to HubSpot through its own app marketplace, and a site built on this theme is a HubSpot site, so it inherits every one of them on the day it goes live.
Every form on a theme page writes to a HubSpot contact record. Salesforce sync is a HubSpot app, so that record can carry on into a CRM you already run.
Zapier picks up a HubSpot form submission and puts it wherever the rest of your process lives. Nothing about that touches the theme.
Stripe, Shopify, Xero and QuickBooks all have HubSpot apps. A pricing page built from the theme links out to whichever of them takes the payment.
Segment and Snowflake read from HubSpot rather than from the page, so what a theme page has to do is emit a clean submission and get out of the way.
These use the native HubSpot tags rather than anything of ours, so the data stays where your portal keeps it and nothing new has to be connected.
The hero banner, the modal and the navigation each take a form field, and each renders it with the native HubSpot form tag. You pick a form that already exists in the portal. The submission goes to HubSpot and lands on the contact record the same way it would anywhere else. The theme stores nothing.
The header carries the HubSpot search input. The blog hero and the navigation emit the same hs-search-field markup and post to the results page. The suggestion list under the blog search reads the same-origin index at /_hcms/search rather than an outside service.
The navigation module takes a menu field, so the links come from the navigation tool in your portal settings. Editing the menu there changes the header on every page, because the header is a global partial.
Blog listing and post templates read your blog, and the recent posts module calls the HubSpot function for it with a blog and an author to filter on. Nothing is mirrored or cached outside the portal.
If your policy forbids requests to hosts you do not control, the fonts and the icon set are the two to deal with, and both are links in one layout file.
Paste the URL into the module and the markup is written for you. The same goes for a map, a form and a script tag that has to run on one page and nowhere else.
Modules name an icon and the icon partial draws it in whichever library is selected, so switching library repaints every icon on the site without editing a module.
Material Symbols, Font Awesome, Phosphor, Bootstrap Icons, Remix Icon, Tabler and HugeIcons each pull a stylesheet from their own CDN. Phosphor loads two, because its outline and solid glyphs live in separate faces and a filled star needs the second one.
Lucide ships as a script that replaces placeholder elements after the page parses. The layout requests it with defer and calls its render function once the document is ready.
Heroicons and HubSpot Icons are not webfonts. The icon partial draws both of them as Material Symbols instead, so picking either changes nothing about what loads. Material Symbols is also requested alongside any other library, for modules that still name its glyphs directly.
Only the pages that carry a map module make either of these requests. The rest of the site never touches a mapping service.
The default, and the one to reach for if you would rather not hold another credential. Leaflet is bundled in the theme folder and served from your own portal, and the tiles come from OpenStreetMap without a key. The optional MapTiler and Carto tile styles are the exception: those stamp a notice across the tiles until their own key is pasted into the field beside them.
The store locator and the map module both take a Google Maps API key. The account, the quota and the bill behind that key are yours. It needs a Google Cloud project with billing switched on and the Maps JavaScript API enabled, and the field help tells you to restrict the key to your domains first. Without a key this mode draws nothing.
The glyphs the module picker draws with
After the fonts, the icons and the maps, this is everything else that can reach outside the portal.
The layout checks the site setting first. If HubSpot is already including jQuery for the domain, the theme adds nothing. If it is not, the theme requests jQuery from code.jquery.com. Turning the portal setting on removes the outside request.
The video library and the hero banner take a video URL and build the embed from it. The frame is created when a visitor opens the video, so a page that nobody plays makes no request to either service.
Leaflet, the carousel, the lightbox and the date helper all sit in the theme and load from your own domain. So do the stylesheets and the theme JavaScript. None of them is fetched from a CDN.
There is no account to create, no service to authorise and no key we issue. The theme has no server side, so there is nowhere for it to phone home to and no licence check at page load.
Yes. The font links sit in the layout, so replacing them with faces uploaded to your file manager is one edit in one file. The token that names the family stays as it is and the rest of the theme follows.
Not as shipped. Self-hosting the typefaces and the icon face gets you there, and both are links in the layout rather than anything buried in a module. If that is a requirement, budget an afternoon for it rather than assuming a setting covers it.
No. There is no analytics of ours, no licence ping and no error reporting. Whatever tracking runs on your pages is the tracking your portal is already configured to run.
Only the ones with a map module on them. The request is built when that module renders, so a page without one is silent whatever the theme settings say.
Only for the Google mode. The default draws with Leaflet on OpenStreetMap tiles and needs no key of any kind. Address search in that mode goes to the OpenStreetMap geocoder, which is also keyless.
Into HubSpot. Modules that show a form use the native form tag and the form you pick is one that already exists in your portal, so submissions reach the same contact records and workflows they always did. The theme styles the fields and does nothing else with them.
No. Modules store an icon name and the partial maps that name into whichever library is selected, with a per-library translation table for the ones that call things by different names. A glyph missing from a library falls back rather than rendering as raw text.
Send the constraint you are working under and we will tell you which file it lands in and how long the change takes. If the answer is that this theme does not suit you, that is the answer you get.
Check it in the browser you are reading this in This site runs the theme. Open the network panel and count the hosts.
If a request on this list is one your policy will not allow, say so before you buy rather than after.