Angular is a web framework that empowers developers to build fast, reliable applications.
Maintained by a dedicated team at Google, Angular provides a broad suite of tools, APIs, and libraries to simplify and streamline your development workflow. Angular gives you a solid platform on which to build fast, reliable applications that scale with both the size of your team and the size of your codebase. **Want to see some code?** Jump over to our [Essentials](essentials) for a quick overview of what it's like to use Angular, or get started in the [Tutorial](tutorials/learn-angular) if you prefer following step-by-step instructions. ## Features that power your development ## Develop applications faster than ever ## Ship with confidence ## Works at any scale ## Open-source first ## A thriving community Get started with Angular quickly with online starters or locally with your terminal. ## Play Online If you just want to play around with Angular in your browser without setting up a project, you can use our online sandbox: ## Set up a new project locally If you're starting a new project, you'll most likely want to create a local project so that you can use tooling such as Git. ### Prerequisites - **Node.js** - [v20.19.0 or newer](/reference/versions) - **Text editor** - We recommend [Visual Studio Code](https://code.visualstudio.com/) - **Terminal** - Required for running Angular CLI commands - **Development Tool** - To improve your development workflow, we recommend the [Angular Language Service](/tools/language-service) ### Instructions The following guide will walk you through setting up a local Angular project. #### Install Angular CLI Open a terminal (if you're using [Visual Studio Code](https://code.visualstudio.com/), you can open an [integrated terminal](https://code.visualstudio.com/docs/editor/integrated-terminal)) and run the following command: ```shell // npm npm install -g @angular/cli ``` ```shell // pnpm pnpm install -g @angular/cli ``` ```shell // yarn yarn global add @angular/cli ``` ```shell // bun bun install -g @angular/cli ``` If you are having issues running this command in Windows or Unix, check out the [CLI docs](/tools/cli/setup-local#install-the-angular-cli) for more info. #### Create a new project In your terminal, run the CLI command `ng new` with the desired project name. In the following examples, we'll be using the example project name of `my-first-angular-app`. ```shell ng new{{ fullName() }}
`, }) export class UserProfile { firstName = input(); lastName = input(); // `fullName` is not part of the component's public API, but is used in the template. protected fullName = computed(() => `${this.firstName()} ${this.lastName()}`); } ``` ### Use `readonly` for properties that shouldn't change Mark component and directive properties initialized by Angular as `readonly`. This includes properties initialized by `input`, `model`, `output`, and queries. The readonly access modifier ensures that the value set by Angular is not overwritten. ```ts @Component({/* ... */}) export class UserProfile { readonly userId = input(); readonly userSaved = output(); readonly userName = model(); } ``` For components and directives that use the decorator-based `@Input`, `@Output`, and query APIs, this advice applies to output properties and queries, but not input properties. ```ts @Component({/* ... */}) export class UserProfile { @Output() readonly userSaved = new EventEmitter