Skip to main content

How the Apps Layer works

The Apps Layer is a composition and installation system. It does not introduce a second workflow engine, document editor, chat implementation, or database product.

From source to installation

TypeScript manifest
↓ build + validate
Portable twl-tool.app.v1 manifest
↓ plan + deploy
Organization-scoped installation
↓ resolve references
Native surfaces + custom Frontend Pages

The installed resource map records which concrete table, workflow, folder, and page was created for each symbolic app reference. This keeps an app version portable while isolating every organization's data.

Apps and Spaces

Every app belongs to a Space. If you omit spaces, defineApp() generates spaces.root, names it after the app, and places all space-compatible resources inside it.

Declare spaces explicitly when you need nested folders, custom ordering, or selective placement:

spaces: {
root: {
name: 'Research Hub',
parent: null,
items: [
ref('dataWorkspaceTables', 'sources'),
ref('frontendPages', 'overview'),
],
},
library: {
name: 'Library',
parent: ref('spaces', 'root'),
items: [ref('documentFolders', 'reports')],
},
}

App lifecycle

  1. Author a typed manifest.
  2. Build it into portable JSON.
  3. Validate against the target platform schema.
  4. Test and certify behavior when publishing to a managed catalog.
  5. Plan resource changes for an organization.
  6. Deploy the exact plan fingerprint.
  7. Install or upgrade without silently deleting omitted resources.