# Initializing a coded app project

> Initialize a coded app project inside a Studio Web solution, build the app in your own local project, and push it into Studio Web with the UiPath CLI.

Because coded app source code is authored in your local IDE, working on a coded app project in Studio Web follows two distinct steps: **initialize** the project inside a solution in Studio Web, then **build and push** its source code from your own local project.

## Initializing a coded app project in Studio Web

Initialize the project the same way you create any other Studio Web project:

1. Go to the [Cloud Workspace](https://studio.uipath.com/projects) or Local Workspace page in Studio Web.
2. On the upper-right side of the page, select **Create New**.
3. In the **Start building** dialog, under **Building blocks**, select **App**.

   ![Start building dialog with the App option under Building blocks](https://dev-assets.cms.uipath.com/assets/images/studio-web/coded-apps/new-create-app-e5fe5e83.png)

4. On the **New app** screen, under **Build from scratch**, select **Coded app**.

   ![New app screen with the Coded app tile under Build from scratch](https://dev-assets.cms.uipath.com/assets/images/studio-web/coded-apps/new-codedapp-tile-7c27ab01.png)

Studio Web creates the project with a default name (`App`, `App 1`, `App 2`, and so on). You can rename it to something more meaningful, or leave the default in place.

At this point the coded app project contains a single file, `webAppManifest.json`, which describes the project's type and configuration. There is no source code, template, or framework scaffold yet — you bring those from your own local project.

## Reviewing the project in Studio Web

Once initialized, Studio Web shows the coded app project in the solution's project list. Opening it displays the setup page with links to the SDK documentation and the CLI commands needed to sync code from your IDE:

![Setup your coded app view in Studio Web, showing SDK links and the uip codedapp push/pull commands](https://dev-assets.cms.uipath.com/assets/images/studio-web/coded-apps/project-after-init-16fc6e60.png)

In this screen, you can access:

* **Project overview** — Name, current version, and the solution it belongs to.
* **Source** — After you push code, Studio Web shows the last pushed source here in read-only mode. Studio Web does not provide an in-browser code editor; use your local IDE for all edits.
* **Resources** — After you push code that includes a `bindings_v2.json` file, Studio Web shows the registered resources here and lets you map each declared resource to an Orchestrator entity. See [Bindings and runtime resources](https://docs.uipath.com/studio-web/automation-cloud/latest/user-guide/bindings-and-runtime-resources-for-coded-apps).

## Building the app locally

To develop the app's source code:

1. Create a local project in your IDE using the framework of your choice (React, Vue, Angular, or any framework that produces static browser assets).
2. Build the app with your framework's toolchain (for example, `npm run build`), which produces the deployable artifacts your app will serve at runtime.

If the app calls UiPath resources at runtime, add a `bindings_v2.json` file next to the built artifacts to declare each resource. See [Bindings and runtime resources](https://docs.uipath.com/studio-web/automation-cloud/latest/user-guide/bindings-and-runtime-resources-for-coded-apps).

:::tip
If you use a UiPath coding agent, invoke the `uipath-coded-apps` skill — it scaffolds the project, generates `bindings_v2.json`, and keeps it in sync with the resources your code references.
:::

## Pushing the app to Studio Web

When your local build is ready, push it into the Studio Web project with the UiPath CLI:

```bash
uip codedapp push --project-id <project-id>
```

The command uploads the build output directory (defaults to `dist`) to Studio Web. Override the directory with `--build-dir <dir>` if your framework builds elsewhere.

If you have not initialized a project yet, `push` interactively prompts to create one for you and saves the resulting `UIPATH_PROJECT_ID` to `.env` for subsequent pushes.

On push, Studio Web:

* Stores the pushed files and shows them in the project's **Source** view (read-only).
* Reads `bindings_v2.json`, if present at the root of the pushed content, and registers each declared resource under the project's **Resources** panel.

For the full CLI reference and the round-trip commands, see [Working in your IDE](https://docs.uipath.com/studio-web/automation-cloud/latest/user-guide/local-setup-for-coded-app-projects).
