How to improve the CMS


Small list of things I'd personally like to see that bug me daily about the HubSpot CMS.


1a. Dev pipelines we can hook into to configure things like automatic compilation of critical css and other features that significantly impact vital web metrics. Sure if you're using the newer react / vue local stuff you can hook in webpack and do this. Not good enough. Add a build pipeline when pages are saved or published


1b. Continuation of above you could even add a build step to auto-calc the heights and use the new content-visibility CSS property for vastly improved rendering. HubSpot is really bad here because of the way the modules etc loadHonestly not worth it - no real support yet and it's a headache but would help improve. Maybe for the future.


2. Drop the restriction to be grid compatible for themes, modules, etc. The HubSpot layout system (layout.css) is very outdated. Still using *zoom and float for a grid? Didn't realize we were still tackling IE 6-8 and decade old browsers? There are a lot of restrictions in HubSpot like this for "compatability" that are just.... poor.


3. Open up all of the theme fields. Compeltely baffled why these were ever restricted. This is fundamentally in contradiction with what a theme is designed to be - an abstract open ended playground for developers to build whatever they want that clients may find useful and / or request. You're severely restricting a ton of  cool things people can build. Literally cant use half the fields you can for modules.


4a. More complex logic conditions (display, ...) on fields whether they be module or theme. i.e. - What if I wanted a field to be visual only when two, three, or more booleans are valid instead of one? Maybe I have nested selectors and codependent regexes. Whatever the case is... Doesn't matter not possible currently. Logical complexity here is.... lacking. This really shouldn't be that difficult... Make it a repeating field and mash the booleans together.


4b. Codependent fields, choices, etc. What if I had logos or some section of content and I wanted users to select just those dynamic options from a dropdown? E.g. - Light vs dark logos in a navbar or even mobile vs standard variants.


5. On that note... Expose image internals better. I'd very much like to see the ability to generate small placeholder images for lazy loading purposes. Whether it's LQIP, SQIP, I don't care. You can somewhat do this by making a 1x1 pixel variant with resize_image_url but it's completely naive way that isn't sufficient. Yes, you can technically offload it cloudinary or somewhere else. But... again this is a very basic backend web feature nearly any modern CMS allows. You also apparently can't hide the alt text. Even using the "visibility: {"hidden_subfields": ...}" option doesn't work. Not all fields need alt text especially when they're decorative per the implication of a blank alt text.


6. Sub-block variations like WordPress. While the new CMS functonality is great.... The harsh reality is it's still severely behind literally any other competitor. There are tons of variations that differ slightly and have a degree of polymorphism, but the same core structure. A very good example of this is hero banners.


7. Expose the internal headers and compilation process better for devs to modify. There's so much junk that gets injected with the standard_header_includes and standard_footer_includes. Similarly, why on earth is a script tag loaded for every single CTA. The form javascript is massive. That alone kills a second off most peoples pages.


8. Allow same domain routing for files such as browserconfig.xml etc that doesn't require the annoying process of having to set up proxy routing for everything. 


9. Allow child themes of themes people create for white-labeling purposes to market them to agencies etc better who may want to keep their branding in tact. Honestly, don't really care about this one. But, it's a nice to have.


10. Inline SVG elements from the file manager. You guys have no idea how annoying this is and requested. It would make everyones life significantly easier to not mention empowering sites from a dev standpoint. When was the last time a designer made a fancy SVG with accessibility in mind, a title, or anything else? Never. It's also just annoying we can't do this. SVGs are used everywhere now.


11. The selenium layer for editing seriously needs improvmenet. It's slow and just janky.


12. Build accessibility into the editing experience. Color contrast anyone? Not that hard to make a popup for insufficent colors and obvious accessibility concerns.


13. Fix your internationalization problems. You allow a dropdown that is a very small contrived listing of BCP-47 / IETF language tags of form (language-region) but the real language tags are (language-extension language - script - region - variant - private use) for full globalization options. 


14. Make the sitemap (.XML) and other files configurable for developers or some way to hook into them. I could fix the above myself and so many other things if I had a way to dynamically inject said fixes. But, I don't.  So, everyone has to sit around twiddling their thumbs for 6+ months / years (for some of the requested features that finally came out) when I could fix it in less than a week. Unreal.


15. Workflows that hook into broader spectrum API events. Such as page publishing. Congrats! You just made "plugins" possible. Welcome to Critical CSS, dynamic image opts, and many other things that would finally push HubSpot into the modern era.


Small list that would be a good start. In short, there are a lot of issues like this which simply make HubSpot an exceptionally poor choice in comparison to other more modernized solutions. It excels at some things, but the vast majority of things are just a headache and an uphill battle.


Especially when you factor in the exorbitant cost of HubSpot in comparison to these options.


HubSpot updates
1 Reply
Participant | Platinum Partner

Would also love to see bulk editing tools, vaguely similar to what CMS Comander can do for Wordpress.