Core Concepts

Projects

Group services and resources that belong to the same application.

A project is a group of related services and resources inside a workspace. Think of it as the unit a real application lives in: one project per app, containing every process that runs for it and every database it reads from.

Grouping this way pays off immediately. Services in the same project automatically share their environment, and any database or key-value store you create inside the project injects its connection details into every service in that project. You never have to copy credentials from one place to another or manage shared secrets by hand.

What lives inside a project

A project can hold any combination of the following, and most real apps use three or four of them together:

  • Web services. HTTP apps and APIs that handle public traffic.
  • Workers. Long-running background processes without a public URL, like queue consumers or websocket brokers.
  • Cron jobs. Scheduled tasks that run on a recurring schedule and exit.
  • Resources. Managed databases and key-value stores that your services read from.

Everything in a project shows up in the same dashboard view, and their logs and metrics sit next to each other so you don't have to click around to correlate a spike.

Lifecycle

Deleting a project deletes every service, worker, cron job, and resource inside it. This is irreversible, so the dashboard will ask you to type the project name to confirm. If you want to keep a database that was attached to a project you're deleting, detach it first from the resource's settings page.