Docs
On this page

Projects

A Project is the durable product boundary inside one Workspace.

It groups the resources for one application or customer deliverable, but it does not run code itself.

Use one Project when the resources should share ownership, attribution, lifecycle visibility, and default domain settings.

Where a Project fits

Choose the right boundary

NeedUse
Separate company billing and policyOrganization
Separate team, customer, or business boundaryWorkspace
Group one app and its resourcesProject
Develop mutable sourceSandbox
Operate one stable production appDeployment
Keep a persistent interactive desktopComputer

Create separate Projects when applications need independent deployment history, domains, environments, or usage attribution.

Do not create a new Project for every build, preview, or release.

  1. Resolve the Organization and Workspace.
  2. Create or resolve one Project.
  3. Create a Sandbox in that Project.
  4. Preview and test the mutable application.
  5. Publish an immutable release into a Deployment in the same Project.
  6. Attach data and domains to the durable production resources.
  7. Record the returned Project and Deployment IDs in your application database.

Domain inheritance

A Project can define a preview-domain default for its Sandboxes and generated deployment URLs.

An exact custom hostname still attaches to one Deployment.

The effective order is:

Exact deployment hostname
  -> Project domain default
  -> Workspace domain default
  -> Organization domain default
  -> MIOSA-managed fallback

Always display URLs returned by MIOSA instead of rebuilding them from slugs.

External platform mapping

White-label platforms usually map their own records as follows:

Your platformMIOSA
Company accountOrganization
Customer or teamWorkspace
App, site, document, or productProject
Editable build environmentSandbox
Live applicationDeployment

Store canonical workspace_id and project_id values after the first resolution.

Use external_workspace_id, external_project_id, and external_user_id for correlation, not as substitutes for MIOSA ownership.

Operating checklist

  • Every resource resolves to exactly one Organization and Workspace.
  • Every product resource has the intended project_id.
  • Development happens in a Sandbox, not the live Deployment.
  • Production changes only through publish, verify, and promote.
  • Data survives Sandbox replacement and application rollback.
  • The UI displays the authoritative URL returned by the API.

Common mistakes

SymptomLikely causeCorrection
Resources appear under the wrong customerWorkspace or Project was inferred from stale UI stateSend the canonical IDs explicitly
A new app overwrites an older app’s historyBoth products share one Project and DeploymentCreate a separate Project and Deployment
A domain change does not affect Sandbox previewsA production hostname was changedConfigure the Project preview domain separately
Deleting a Sandbox appears to delete the appDevelopment and production were treated as one resourcePublish to a Deployment before removing development state

Next steps

Projects API

Create, resolve, update, and inspect Projects. Open reference →

Publishing

Move from mutable source to an immutable candidate. Open publishing →

Domains

Configure previews, generated app URLs, and exact hostnames. Open domains →

Was this helpful?