---
title: Projects
description: The TypeScript source of a Workspace's definitions, and how applying it commits them.
---

A **Project** is the local TypeScript source of a Workspace's Resource definitions. A Project is not itself a Resource, and the same Project can apply to any Branch.

## Apply

**Apply** commits the definitions that changed in a Project to a Branch, as one Commit. Definitions that did not change stay as they are.

## Bindings

A **binding** is a typed value through which running code uses one Resource. A Project's generated TypeScript files hold its bindings, so a Function names the Resources it uses through types the Project checks.
