Micro frontends is an architectural approach that breaks large web applications into smaller independent applications. This allows individual modules to be developed, tested, and deployed independently while still being combined into a single app. The benefits include incremental upgrades, reduced communication overhead, and allowing autonomous teams. However, challenges include increased payload size and operational complexity. Frameworks like Single-spa and Frint help implement micro frontends by routing between modules.