Skip to main content

Structure an app project

Keep the manifest, tests, and custom page source together. The manifest is the deployable contract; your frontend build supplies files to a frontendPages resource.

my-app/
├── package.json
├── twl-tool.app.ts
├── twl-tool.tool.test.ts
├── frontend/
│ ├── src/
│ └── dist/
│ ├── index.html
│ └── assets/
└── README.md
FileResponsibility
twl-tool.app.tsApp identity, permissions, resources, surfaces, and bindings
twl-tool.tool.test.tsExecutable expectations for the exact Tool version
frontend/srcDeveloper-authored UI for custom surfaces
frontend/distStatic files included in resources.frontendPage()

One source of truth

Use ref() wherever one manifest object depends on another. Avoid copying slugs or trying to predict installed database IDs. During installation, the platform resolves the reference for the target organization.

For a single-file proof of concept, files can contain an inline index.html. For a production page, read the compiled assets into the manifest as part of your build pipeline.