Web components allow developers to build applications in a declarative and composable way using templates, custom elements, shadow DOM, and imports. Polymer is a library that uses these web component technologies to let developers create reusable custom HTML elements and take advantage of material design with core and paper elements. While browser compatibility and beginner friendliness present challenges, web components and Polymer provide benefits like modularity, consistent user experience, and easy customization.