No build step
Peerless has no npm dependencies, no bundler, and no compile step. Every file you edit in the Design Manager or in the repo is the file that ships. That trade-off costs you Sass nesting and JS transpilation; it buys you a theme any developer can open and understand in an afternoon, with nothing hidden behind a build pipeline.
Every module in Peerless ships with no padding or margin baked in. Spacing is a decision made per instance, through the section or column settings in the page editor, not a decision baked into the module's CSS. The same card grid module looks correct whether it is dropped into a tight sidebar or a full-width hero, without an editor fighting inherited spacing to make it fit.
Theme CSS is layered — generic resets, layout objects, element defaults, component styles, utilities — in that order, so specificity stays predictable as the stylesheet grows. A new component style never has to out-specificity an old one just because it loads later in the cascade.
HubSpot themes support inheritance, and Peerless is designed around that: CSS variables at :root for every themeable value, a consistent m- class prefix so child-theme modules never collide with base-theme ones, and a documented convention for adding new modules. Sportfolio, the child theme behind sportspage.io, is the proof — a full brand built on ten custom modules with everything else inherited.
None of this shows up in a module count. It shows up eighteen months in, when the theme still makes sense to work in.