Hero and banner modules
Flexible headings, supporting copy, imagery or video, background options and one or two calls to action, with responsive behaviour that holds up rather than just shrinking.
If you already know you need a custom module rather than a redesign, you're in the right place and this page has prices on it. Built to your design, editable by your marketing team, delivered in days rather than weeks.
Your HubSpot theme came with a set number of module types, and everything your marketing team can drag onto a page comes from that list. A custom module adds a new one, so once it's built it appears in the editor alongside the rest and behaves in exactly the same way, and none of your existing pages, templates or content are touched in the process.
The build itself is HubL, HTML, CSS, JavaScript where it's needed, and a fields.json that decides what your editors can change. That last file is the one that determines whether the module is any good. Everything else is rendering.
Plenty of people arrive here having been told they need a custom module when what they actually need is a settings change, or a redesign, or nothing at all. Send me the page and I'll tell you which it is before either of us talks about money, and I'd rather do that than build something you didn't need.
You don't have to pick from this list, and roughly half of what I build isn't on it. It's simply where most requests land.
Flexible headings, supporting copy, imagery or video, background options and one or two calls to action, with responsive behaviour that holds up rather than just shrinking.
Services, products, case studies, team members and resources, with a repeater so your team can add a seventh item without asking anybody, and a sensible limit so the layout can't break.
Configurable plans with features, ticks and crosses, a highlighted recommendation, and a mobile layout that was thought about rather than left to chance.
Quotes with names, companies, results and images, along with customer logo strips and accreditation badges that align properly regardless of what gets uploaded.
Expandable content built on semantic markup, with the FAQPage structured data generated from the same loop that renders the questions, so the two can't drift apart.
Sliders, tabbed content, filterable listings, ROI and savings calculators, and modules that feed a HubSpot form on submission so the enquiry arrives with the answers attached.
A developer writes it once and a marketer uses it for the next three years, so a module that renders beautifully and has eleven fields called text_1 through text_11 with no help text has solved the easy half of the problem. The person who inherits it eighteen months later is the one whose experience decides whether it was worth building.
So the fields get named the way your team talks, grouped in the order somebody would fill them in, with help text against anything that isn't obvious and defaults that look right before anyone types a word. Repeaters get minimums and maximums so a fifth item can't break a three-column row, and every image field has alt text attached and required.
You also get a one-page written guide per module, covering what each control does and what it changes on the page, written for whoever picks this up after you've moved on.
HubSpot's own library covers a great deal, and if a standard module will do the job then that's what you should use.
General-purpose components with limited configuration and standard layouts, designed for broad use across every kind of site. Free, immediate, and perfectly adequate for a lot of what a page needs.
Built around a specific requirement with the fields and controls your team actually needs, in your own design rather than a generic one, and with functionality that doesn't exist in the library.
Fixed against a written scope. If a build runs over because I misjudged it then that's mine to absorb, so the number you agree at the start is the number you pay.
A module with a fixed set of fields and no repeating content.
Repeating content, conditional fields and layout choices the editor controls.
Modules that do something, rather than just render something.
Three modules start at £1,800, which works out cheaper per module because the styling, the naming conventions and the documentation get done once across the set rather than three separate times. A full library for a theme is quoted as project work, and if that's what you're after it's worth a conversation rather than a form, because the number depends almost entirely on how many distinct layouts you genuinely need rather than how many you currently have.
A Figma file, a screenshot, a page you want to match, or a description if that's all there is. I'll tell you whether it's a module at all.
What your editors will be able to change, before anything is built. This is the conversation that decides whether the module is good.
In writing, with the price, the date and what isn't included. It doesn't move unless the scope does.
Built in a sandbox or on an unpublished page, then a preview link for you to try in the editor rather than just look at.
Uploaded to your account, with the written guide and a walkthrough for whoever will be using it. Fourteen days of fixes after that.
A reusable component built specifically for a HubSpot CMS or Content Hub website, made up of HubL, HTML, CSS, any JavaScript it needs, and a fields file that defines what content editors can change. Once it's in your account it appears in the page editor alongside HubSpot's own modules and works in exactly the same way, so nobody has to learn anything new to use it.
Yes, and that's the quickest version of this job because there's nothing to interpret. A screenshot or a live page to match works nearly as well. If there's no design at all then I'll make those decisions and defend them, which takes a little longer and costs slightly more, and I'd rather say that up front than surprise you with it.
That's the point of building it properly rather than quickly. Whoever edits your pages will see clearly labelled boxes for each piece of content, with help text against anything that isn't obvious and limits where a wrong value would break the layout. If somebody in your team can update a blog post then they can use the module, and I'll walk through it with them so nobody's guessing on the first day.
Yes, and it should be. A module is added once and then used as many times as you like with different content in each instance, which is the main reason to build one rather than hard-coding something into a single template. Change the module later and every page using it updates together.
Yes, and doing it as a set is considerably better value than commissioning components one at a time, because the styling, the naming conventions and the documentation get done once across the whole library. It's quoted as project work rather than per module. Worth knowing that the number depends on how many genuinely distinct layouts you need rather than how many templates you currently have, and those two figures are rarely the same.
Most of the time, yes. Modules can be added to a site that's already live without disturbing any of your existing pages, templates or content, which is what makes this a much smaller piece of work than people expect.
Tabs, sliders, accordions, filterable listings, calculators and scorecards are all possible, along with modules that write into a HubSpot form on submission so an enquiry arrives with the visitor's answers already attached. Anything with real interaction sits in the Clever tier, and I'd want half an hour on it before quoting rather than guessing from a description.
They should help rather than hurt, assuming semantic markup, a sensible heading order and no unnecessary weight added to the page. Where it's relevant, a module can generate its own structured data from the same content it renders, which is how you avoid the common problem of schema describing something that isn't actually on the page.
Custom modules need Content Hub or CMS Hub, and some functionality — HubDB and serverless functions in particular — requires Professional or Enterprise. Tell me what you've got on the first call and I'll check before quoting anything, because there's no sense pricing something your account can't run.
No. Every quote is a fixed price against a written scope, so if the work takes me longer than I judged then that's mine to absorb rather than something that appears on your invoice. A day rate is an estimate with your name on the risk, and it quietly rewards taking longer.
I take two jobs at a time, which is the only reason the dates I give mean anything. If I can't hit yours then I'll say so in the first conversation rather than take the money and let it drift, and you'll have lost nothing but half an hour.
A Figma link, a screenshot or a page you want to match is enough for me to tell you the tier, the price and the date. If it turns out you don't need a custom module at all, I'll say that instead.
Free first conversation · Fixed quote in two working days