Publishing an app
Apps ship as a pack: a repository with a top-level manifest and one directory per app. This page covers where your app goes and how a change reaches the pack. Run the checks on Testing an app first.
Layout
w6w-apps/
├── w6w-pack.json # top-level pack manifest, the registry entry point
├── apps/ # every App lives here
│ └── <app>/ # one dir per App
│ ├── README.md # usage + health check (status, probe, quota)
│ ├── package.json # manifest (w6w field)
│ ├── deno.json
│ ├── tsconfig.json
│ ├── index.ts
│ ├── assets/icon.{svg,png}
│ ├── assets/icon.dark.svg # optional dark-theme variant
│ ├── auth/*.ts
│ ├── actions/*.ts
│ ├── health/*.ts # declared health checks (service, quota, dependency)
│ ├── lib/*.ts
│ └── tests/
└── _tools/ # scaffolding + porting helpers (not shipped)
w6w-pack.json lists the apps in the pack. Each app’s package.json carries its manifest in the
w6w field.
Porting an existing workflow
_tools/ includes a converter for n8n workflows. From _tools/:
deno task convert
Shipping a change
- Run the per-app tasks and the conformance audit, and fix every error.
- Fork the pack repository and make your change on a branch in your fork.
- Open a pull request against
w6w-io/w6w-apps. Never push directly tomain.
Each app’s own README.md documents its usage and health check, and HEALTHCHECKS.md indexes them.
For the spec behind the pack, see the App contract.