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
| Need | Use |
|---|---|
| Separate company billing and policy | Organization |
| Separate team, customer, or business boundary | Workspace |
| Group one app and its resources | Project |
| Develop mutable source | Sandbox |
| Operate one stable production app | Deployment |
| Keep a persistent interactive desktop | Computer |
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.
Recommended lifecycle
- Resolve the Organization and Workspace.
- Create or resolve one Project.
- Create a Sandbox in that Project.
- Preview and test the mutable application.
- Publish an immutable release into a Deployment in the same Project.
- Attach data and domains to the durable production resources.
- 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 platform | MIOSA |
|---|---|
| Company account | Organization |
| Customer or team | Workspace |
| App, site, document, or product | Project |
| Editable build environment | Sandbox |
| Live application | Deployment |
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
| Symptom | Likely cause | Correction |
|---|---|---|
| Resources appear under the wrong customer | Workspace or Project was inferred from stale UI state | Send the canonical IDs explicitly |
| A new app overwrites an older app’s history | Both products share one Project and Deployment | Create a separate Project and Deployment |
| A domain change does not affect Sandbox previews | A production hostname was changed | Configure the Project preview domain separately |
| Deleting a Sandbox appears to delete the app | Development and production were treated as one resource | Publish to a Deployment before removing development state |
Next steps
Create, resolve, update, and inspect Projects. Open reference →
Move from mutable source to an immutable candidate. Open publishing →
Configure previews, generated app URLs, and exact hostnames. Open domains →