# Web development and publishing process

> An overview of the steps to build, test, and publish an application on the Web platform.

Build and deploy a Web application in mobile and desktop environments.

Before you get started, check the [browser compatibility](/engine/6000.0/manual/platform-specific/webgl/intro/browsercompatibility.md) and [technical limitations](/engine/6000.0/manual/platform-specific/webgl/intro/technical-overview.md) for Web. Make sure you’re aware of any limitations for developing a project for this platform.

For a guided tutorial of the Web platform, refer to [Getting started with Unity Web](https://learn.unity.com/tutorial/getting-started-with-unity-web).

To build and deploy a Web application, complete the following tasks:

* [Add the Web module](#add-module)
* [Set up a testing environment](#test)
* [Profile and optimize](#profile-optimize)
* [Host your build](#host)

## Add the Web module

To get started with Web, [add the Web module](https://docs.unity.com/hub/add-modules.md) to your project. Once you add the module, you can access the Web **Player** and **Build** settings.

## Set up a testing environment

Browser security policies restrict loading scripts from `file://` URLs, so you can't open a Web build directly from your file system by double-clicking `index.html`.

To test your project, do either of the following:

* Use the **Build and Run** option in the Unity Editor’s [Build Profiles](/engine/6000.0/manual/building-and-publishing/build-settings/build-profiles-reference.md) window.
* Run your own web server.

If you run your own web server, Unity doesn’t need to rebuild the project for every test. For a simple local server, try running one of these options:

* Python: `python -m http.server`
* Node.js: `npx http-server`

For more advanced server configurations, refer to [Server configuration code samples](/engine/6000.0/manual/platform-specific/webgl/building-distribution/server-configuration-code-samples.md) and [Deploy a web application](/engine/6000.0/manual/platform-specific/webgl/building-distribution/deploying.md) for information about running your own server.

## Profile and optimize

Before you publish, gather performance metrics and reduce the build size to make a project that runs smoothly with the best quality possible.

Use the [Unity Profiler](/engine/6000.0/manual/analysis/profiler.md) to get performance data and refer to [Optimize your Web build](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization.md) and [Optimize Web platform for mobile](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization-mobile.md).

## Host your build

You need to host projects online to make them accessible to users. Use web hosting services such as [Unity Play](https://play.unity.com/en) depending on your needs.

## Additional resources

* [Unity Learn tutorial: Getting started with Unity Web](https://learn.unity.com/tutorial/getting-started-with-unity-web)
* [Web Player settings](/engine/6000.0/manual/platform-specific/webgl/develop/class-player-settings-web-gl.md)
* [Web build settings reference](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-build-settings.md)
* [Memory in Web](/engine/6000.0/manual/platform-specific/webgl/develop/memory.md)
* [Web graphics](/engine/6000.0/manual/platform-specific/webgl/develop/graphics.md)
