# Deploying an application
Deploying your application is the process of compiling, or building, your code and hosting the JavaScript, CSS, and HTML on a web server.
This section builds on the previous steps in the [Getting Started](start "Try it: A basic application") tutorial and shows you how to deploy your application.
## Prerequisites
A best practice is to run your project locally before you deploy it. To run your project locally, you need the following installed on your computer:
* [Node.js](https://nodejs.org/en/).
* The [Angular CLI](https://cli.angular.io/).
From the terminal, install the Angular CLI globally with:
```sh
npm install -g @angular/cli
```
With the Angular CLI, you can use the command `ng` to create new workspaces, new projects, serve your application during development, or produce builds to share or distribute.
## Running your application locally
1. Download the source code from your StackBlitz project by clicking the `Download Project` icon in the left menu, across from `Project`, to download your files.
1. Create a new Angular CLI workspace using the [`ng new`](cli/new "CLI ng new command reference") command, where `my-project-name` is what you would like to call your project:
```sh
ng new my-project-name
```
This command displays a series of configuration prompts. For this tutorial, accept the default settings for each prompt.
1. In your newly CLI-generated application, replace the `/src` folder with the `/src` folder from your `StackBlitz` download.
1. Use the following CLI command to run your application locally:
```sh
ng serve
```
1. To see your application in the browser, go to http://localhost:4200/.
If the default port 4200 is not available, you can specify another port with the port flag as in the following example:
```sh
ng serve --port 4201
```
While serving your application, you can edit your code and see the changes update automatically in the browser.
To stop the `ng serve` command, press `Ctrl`+`c`.
{@a building}
## Building and hosting your application
1. To build your application for production, use the `build` command. By default, this command uses the `production` build configuration.
```sh
ng build
```
This command creates a `dist` folder in the application root directory with all the files that a hosting service needs for serving your application.
If the above `ng build` command throws an error about missing packages, append the missing dependencies in your local project's `package.json` file to match the one in the downloaded StackBlitz project.
1. Copy the contents of the `dist/my-project-name` folder to your web server.
Because these files are static, you can host them on any web server capable of serving files; such as `Node.js`, Java, .NET, or any backend such as [Firebase](https://firebase.google.com/docs/hosting), [Google Cloud](https://cloud.google.com/solutions/web-hosting), or [App Engine](https://cloud.google.com/appengine/docs/standard/python/getting-started/hosting-a-static-website).
For more information, see [Building & Serving](guide/build "Building and Serving Angular Apps") and [Deployment](guide/deployment "Deployment guide").
## What's next
In this tutorial, you've laid the foundation to explore the Angular world in areas such as mobile development, UX/UI development, and server-side rendering.
You can go deeper by studying more of Angular's features, engaging with the vibrant community, and exploring the robust ecosystem.
### Learning more Angular
For a more in-depth tutorial that leads you through building an application locally and exploring many of Angular's most popular features, see [Tour of Heroes](tutorial).
To explore Angular's foundational concepts, see the guides in the Understanding Angular section such as [Angular Components Overview](guide/component-overview) or [Template syntax](guide/template-syntax).
### Joining the community
[Tweet that you've completed this tutorial](https://twitter.com/intent/tweet?url=https://angular.io/start&text=I%20just%20finished%20the%20Angular%20Getting%20Started%20Tutorial "Angular on Twitter"), tell us what you think, or submit [suggestions for future editions](https://github.com/angular/angular/issues/new/choose "Angular GitHub repository new issue form").
Keep current by following the [Angular blog](https://blog.angular.io/ "Angular blog").
### Exploring the Angular ecosystem
To support your UX/UI development, see [Angular Material](https://material.angular.io/ "Angular Material web site").
To test your Angular applications, see [Angular Protractor](https://protractor.angular.io/ "Angular Protractor web site").
The Angular community also has an extensive [network of third-party tools and libraries](resources "Angular resources list").