The batteries-included framework for large applications.
Angular is a full application framework maintained by Google, rebuilt from the ground up in 2016 (as "Angular", distinct from the earlier AngularJS). Unlike React or Vue, which are UI libraries you assemble a stack around, Angular ships with routing, forms, HTTP client, testing tools, and dependency injection built in — one opinionated way to structure an application rather than a menu of choices.
It's written in TypeScript by default, which brings strict typing to every part of the app, not just an optional add-on.
Angular fits large, long-lived applications built by larger teams — enterprise dashboards, internal tools, and products where consistent structure across many contributors matters more than initial setup speed. Its conventions and built-in tooling reduce "which library should we use for X" debates. For solo developers, small teams, or projects that need to ship fast, the upfront learning curve and boilerplate are usually not worth it — Vue or React get you moving faster.
@Component, paired with an HTML template and
(usually) a separate CSS file.
NgModules group related
components, directives, and services into cohesive units of the
app.
*ngIf, *ngFor, now
increasingly @if/@for in newer
versions) extends HTML with logic.
import { Component } from "@angular/core";
@Component({
selector: "app-counter",
template: `
<button (click)="count = count + 1">
Clicked {{ count }} times
</button>
`,
})
export class CounterComponent {
count = 0;
}
Compare this to the equivalent React or Vue counter: more ceremony up front (the class, the decorator), in exchange for a structure that scales predictably as the app — and the team building it — grows.
npm install -g @angular/cli,
then scaffold a project with ng new my-app.
ng serve, open the local URL, and edit
src/app/app.component.ts to see live reload.
ng generate
component to see how the CLI keeps the project
structured for you.