Its not as rigid as software design patterns, and I think that's by design.<p>I'll try to share some tips - hopefully this is the kinda thing you're after - i recognize some of it might not be on topic.<p>* use html partials to reduce complexity<p>* think about cachability and rendering needs - sometimes a simple display feature can have huge ramifications on code required and complexity<p>* semantic markup is optional, but definetly helps break up a sea of divs, and is good for people who use screen readers<p>* decouple your HTML from your CSS - if something is to be blue or big, it should be from the CSS, not because it has a "big" or 'blue" class. (see: csszengarden.com)<p>* scss & co are really useful, but be careful to not go overboard.<p>* don't assume what fonts your users have - linux, mac, win all differ. if unsure, check all 3 platforms rendering<p>* load JS at the bottom of the page to prevent render blocking (vs. in the head)<p>* always test browser size reflow & zoom rendering<p>* always test css,html, js validations<p>* test design in grayscale/color blindness simulations<p>* be aware of browser compatibility and vendor prefixing needs - its not cookie cutter.<p>* flexbox is new on the block, but it's dreamy to work with and is great for layout (shoutout to flexboxin5.com for helping me)<p>* code comments, such as those that highlight return values, or why something is X, are hugely helpful<p>* check for unused CSS - there are a number of scripts/browser extensions/sites that can tell you what CSS is never used, and help you remove it.<p>* same for JS - make sure you still need / use it all<p>* html/css is rarely (for me) polished at first pass. Iteration is instrumental at arriving to clean, maintainable code.