Angular is a platform and framework for building client applications in HTML and TypeScript. The main building blocks of an Angular application are modules, components, directives, and services. Modules provide a compilation context and make components and directives available. Components define views and use services. Services provide reusable business logic. Directives add behavior to existing elements.