How It Works
Identify the runtime — Managed runtime (Node.js, Java, Python) or custom Docker container.
Load references/appsail-basics.md — for PORT config, environment variables, Dockerfile requirements, and deploy commands.
PORT rule — Always use process.env.X_ZOHO_CATALYST_LISTEN_PORT, never hardcode PORT or 3000.
AppSail vs Functions decision — If the user is unsure which to use, apply this matrix:
|
Catalyst Functions |
AppSail |
| Code structure |
Catalyst-specific templates required |
Any framework, any format, fully independent |
| Use case |
HTTP handlers, events, cron, Zoho integrations |
Persistent servers, long-running processes, Docker |
| Billing |
Per API call |
Per instance uptime |
| Dependency management |
Handled by Catalyst |
You manage all libraries and frameworks |
Triggers
Use this skill for: "AppSail", "persistent server", "Docker on Catalyst", "backend hosting", X_ZOHO_CATALYST_LISTEN_PORT, appsail:add, "catalyst managed runtime", "deploy Express app", "AppSail vs Functions", "long-running process on Catalyst", or "containerized app on Catalyst".
References
| Reference |
Load when the query is about… |
references/appsail-basics.md |
Runtimes, project structure, app-config.json fields, Node.js/Docker templates, SDK version |
references/appsail-deploy.md |
Deployment commands (Path A/B/C), env variables, health checks, AppSail URL pattern, configurations |
references/appsail-crossorigin.md |
Slate + AppSail cross-origin errors, CORS setup via MCP, catalyst_auth, custom domain SSL |
1---2name: catalyst-appsail3description: Catalyst AppSail — persistent backend PaaS with managed runtimes (Node.js, Java, Python) and custom Docker containers. Trigger on 'AppSail', 'persistent server', 'Docker on Catalyst', 'X_ZOHO_CATALYST_LISTEN_PORT', or 'long-running process on Catalyst'. Do NOT use for stateless request/response handlers, event-driven functions, or scheduled jobs — use catalyst-functions instead.4---5
6## How It Works
7
81. **Identify the runtime** — Managed runtime (Node.js, Java, Python) or custom Docker container.
92. **Load `references/appsail-basics.md`** — for PORT config, environment variables, Dockerfile requirements, and deploy commands.
103. **PORT rule** — Always use `process.env.X_ZOHO_CATALYST_LISTEN_PORT`, never hardcode `PORT` or `3000`.
114. **AppSail vs Functions decision** — If the user is unsure which to use, apply this matrix:
12
13 | | Catalyst Functions | AppSail |
14 |---|---|---|
15 | Code structure | Catalyst-specific templates required | Any framework, any format, fully independent |
16 | Use case | HTTP handlers, events, cron, Zoho integrations | Persistent servers, long-running processes, Docker |
17 | Billing | Per API call | Per instance uptime |
18 | Dependency management | Handled by Catalyst | You manage all libraries and frameworks |
19
20## Triggers
21
22Use this skill for: "AppSail", "persistent server", "Docker on Catalyst", "backend hosting", `X_ZOHO_CATALYST_LISTEN_PORT`, `appsail:add`, "catalyst managed runtime", "deploy Express app", "AppSail vs Functions", "long-running process on Catalyst", or "containerized app on Catalyst".
23
24## References
25
26| Reference | Load when the query is about… |
27|-----------|-------------------------------|
28| `references/appsail-basics.md` | Runtimes, project structure, app-config.json fields, Node.js/Docker templates, SDK version |
29| `references/appsail-deploy.md` | Deployment commands (Path A/B/C), env variables, health checks, AppSail URL pattern, configurations |
30| `references/appsail-crossorigin.md` | Slate + AppSail cross-origin errors, CORS setup via MCP, `catalyst_auth`, custom domain SSL |