Projects
A Project is the workspace dashboard for one thing you’re working on — the billing refactor, the v2 migration, the flaky-test cleanup. Instead of viewing all your DevBoxes, runs, and schedules globally, a Project gathers the ones that belong to a single effort into one landing page that acts as its dashboard: what needs you, what’s running, and the levers to start more.
A Project is a lightweight grouping, not a hierarchy. Every DevBox, run, and schedule can optionally belong to at most one project — and resources are perfectly happy with no project at all. You reach for a Project when an effort grows enough moving parts that a dedicated dashboard beats scrolling the global lists.
The project dashboard
Section titled “The project dashboard”A project has an identity — a name, an optional one-line description, and an optional repository URL — shown at the top of the page. Below it, the dashboard puts everything for that effort on one screen:
- Inbox — the project’s notifications, scoped to this effort: a run needs your input, a run completed or failed, a schedule was skipped, a DevBox was created or started. This is the “what needs me, here” view, without the noise of every other thing you’re running.
- DevBoxes / Runs / Schedules — three collapsible sections listing the project’s resources, each with create and view actions. Start a new run, add a schedule, or launch a DevBox right from the dashboard and it’s linked to the project automatically.
- Environment variables — project-level env vars injected into every DevBox launched in the project (see below).
The point is one page, one effort: you see what’s happening and you act on it without leaving.
Linking resources to a project
Section titled “Linking resources to a project”Linking is optional and at most one project per resource. There’s no forced ownership — a project is just a grouping key.
The create forms — new run, new schedule, launch DevBox — each have a Project selector:
- From the project dashboard — the selector is pre-selected to that project, so anything you start there is linked with zero extra clicks.
- From a global page — the selector lets you pick a project (or none).
| A project groups | What you see / do from the dashboard |
|---|---|
| DevBoxes | List the project’s DevBoxes; launch a new one, pre-linked |
| Runs | List the project’s runs; start a new run, pre-linked |
| Schedules | List the project’s schedules; create one, pre-linked |
| Inbox | Notifications scoped to this project’s activity |
| Env vars | Project-level variables injected at DevBox launch |
Environment variables
Section titled “Environment variables”Project-level environment variables are injected into every DevBox
launched in the project, at launch time. Set DATABASE_URL,
STRIPE_TEST_KEY, or a feature flag once on the project, and every run,
schedule, or DevBox you start there inherits it — no copy-pasting into each
launch.
Env vars are the first of a family of project-level defaults — settings the project hands down to everything you launch inside it. More defaults (credentials, a project knowledge base, a default image) are on the roadmap; the shape is the same: configure it once on the project, inherit it everywhere.
Scoped navigation
Section titled “Scoped navigation”A Project is a lens you carry, not a mode you enter and exit. When you open a
resource from a project — a run, a schedule, a DevBox — the project travels
with you in the URL as ?project=<id>, and a clickable project badge appears
in the breadcrumb.
- One click on the badge takes you back to the project dashboard.
- The surrounding list links stay scoped to the project, so you navigate within the effort instead of falling back to the global lists.
Open the same resource from a global page and there’s no badge — you get the plain, unscoped view. The project context only follows you when you started from the project.
Plans & limits
Section titled “Plans & limits”How many projects you can keep active at once depends on your plan:
| Free | Starter | Pro | Enterprise |
|---|---|---|---|
| 1 | 3 | 25 | Unlimited |
The cap counts active projects only. Archiving a project takes it out of the count without deleting its history, so you can park finished efforts and free a slot. Re-activating an archived project consumes a slot again, so unarchiving is gated by the same limit as creating a new one.
See Plans & Limits for the full per-tier table.