catalyst-slate — Claude Code skill: frontend hosting on Slate
Walks your agent through deploying a frontend to Catalyst Slate: scaffold the app, configure slate-config.toml, ship the build. Handy when React or Next.js needs to live on Catalyst.
npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a claude-codeWhat catalyst-slate does
This skill drives the agent through Catalyst Slate, a Git-based frontend host with preview deploys. React, Next.js, Vue, Angular, Svelte, Astro, SolidJS, Preact and other frameworks are covered. The agent first checks whether Slate is activated in the project, then scaffolds with catalyst slate:create, loads references/slate-basics.md for framework setup and the slate-config.toml format, and finally runs catalyst deploy slate <name> -ni.
Activation is the trap. slate:create succeeds locally without it, but the first backend call happens at deploy time and fails with HTTP 400. So before deploying, open the Catalyst console once, go to your project → Slate in the left sidebar → click Start Exploring. The check runs through the MCP call CatalystbyZoho_List_All_Slate_Apps: an INVALID_URL_PATTERN response means the service is not on yet. The skill explicitly forbids falling back to the deprecated Web Client over this.
Second thing to watch: calling functions from a Slate app. The app is served from *.onslate.com while functions sit on *.catalystserverless.com, so relative paths like /server/fn/execute break silently. Every call has to become an absolute URL with generateAuthToken() headers, and the domain goes into the CORS whitelist. For backend APIs and server-side logic this skill is the wrong tool — use catalyst-appsail or catalyst-functions instead.
What it helps with
- deploy a React app to Catalyst Slate
- scaffold a Slate app with
catalyst slate:create - configure
slate-config.tomland baseUrl - fix relative paths when calling functions from Slate
- diagnose an
HTTP 400deploy failure
Example prompts for the agent
- Deploy my Next.js app to Slate
- Create a Slate app and set up
slate-config.toml - Rewrite my Slate function calls as absolute URLs with
generateAuthToken()
How to install catalyst-slate
1Skills CLI (Vercel)
npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a claude-code2Manually: put the files in place
~/.claude/skills/catalyst-slate/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/catalyst-slate/
1Skills CLI (Vercel)
npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a codex2Manually: put the files in place
.agents/skills/catalyst-slate/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a cursor2Manually: put the files in place
.cursor/skills/catalyst-slate/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install catalystbyzoho/agent-skills catalyst-slate2Manually: put the files in place
.github/skills/catalyst-slate/SKILL.md1Skills CLI (Vercel)
npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a gemini-cli2Platform CLI
gemini skills install https://github.com/catalystbyzoho/agent-skills --path skills/catalyst-slateManually: put the files in place
.devin/skills/catalyst-slate/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about catalyst-slate
How do I install catalyst-slate in Claude?
Run npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a claude-code. The skill lands in ~/.claude/skills/catalyst-slate/SKILL.md.
What does catalyst-slate do?
It guides the agent through Catalyst Slate: activation check, app creation, framework and slate-config.toml setup, and deploy with preview URLs.
Why does my deploy fail with HTTP 400?
Slate is not activated in the console. Open your project → Slate in the left sidebar → Start Exploring; it is a one-time step. slate:create still runs locally without errors.
Source text
SKILL.md · Apache-2.0
---
name: catalyst-slate
description: "Catalyst Slate — Git-based frontend hosting for React, Next.js, Vue, Angular, Svelte, Astro, SolidJS, Preact and other frameworks with preview deploys. Trigger on 'Slate', 'frontend hosting', 'slate-config.toml', 'deploy React app', or 'cross-domain Slate to function'. Do NOT use for backend APIs or server-side logic — use catalyst-appsail or catalyst-functions instead."
metadata:
version: "2.0.1"
---
> **⚠️ PRE-FLIGHT CHECK — Slate activation (one-time, per project):**
> Before any Slate command, confirm Slate is activated in the console.
> Open the Catalyst console → your project → **Slate** (left sidebar) → click **Start Exploring**.
> This is a one-time step. Skipping it means `catalyst deploy slate` fails with `HTTP 400` even though `slate:create` succeeds locally.
## How It Works
1. **Check if Slate is activated** — Use MCP: call `CatalystbyZoho_List_All_Slate_Apps` with the project ID.
- **If it returns apps or an empty list** → Slate is activated. Proceed.
- **If it returns `INVALID_URL_PATTERN`** → Slate is not yet activated. This is NOT an MCP bug — it means the service needs a one-time console activation. Tell the user:
> "Please open the Catalyst console, go to your project → Slate (left sidebar) → click **Start Exploring**. This is a one-time step that takes 5 seconds. Let me know when done and I'll continue."
Wait for confirmation, then proceed.
- **Never fall back to Web Client (legacy) because Slate isn't activated yet.** Web Client is deprecated — Slate is always the right choice for frontend hosting. The one-time activation is not a reason to change the approach.
> If Slate was not selected during `catalyst init`, run `catalyst slate:create --name <name> --framework <framework> --default` immediately after init. This command updates `catalyst.json` and prompts for the source directory automatically — it is faster than manual setup and should be the default recommendation.
2. **Check if Slate app exists** — If no app exists yet, run `catalyst slate:create --name <name> --framework <framework> -ni` to scaffold one. If Slate was not selected during `catalyst init`, run this immediately after init.
3. **Load `references/slate-basics.md`** — for framework setup, `slate-config.toml` format, and baseUrl configuration.
4. **Cross-domain calls** — If the query involves calling functions from a Slate app, apply the full URL + `generateAuthToken()` + CORS whitelist pattern.
> ⚠️ **Migrating from basic client hosting?** Relative paths like `/server/fn/execute` that worked in basic client **silently break on Slate** — Slate is served from `*.onslate.com` while functions are on `*.catalystserverless.com`. Every function call must become an absolute URL. Find and replace all relative `/server/...` paths with the full `https://<project>.catalystserverless.com/server/...` URL and add `generateAuthToken()` headers.
5. **Deploy** — Before deploying, confirm Slate is activated in the console (Console → Slate). `slate:create` runs locally and succeeds without activation — the first backend call happens at deploy time, which fails with `HTTP 400: Please access the Slate service in your project's console before deploying` if not activated. Once confirmed: `catalyst deploy slate <name> -ni` deploys to the current environment. Preview URLs are available after the build completes.
## Triggers
Use this skill for: "Slate", "frontend hosting", `catalyst slate`, `slate-config.toml`, "deploy React app", "Slate framework", `slate:create`, `slate deploy`, "frontend on Catalyst", "Slate vs Vercel", "cross-domain Slate to function", "Slate baseUrl", "Next.js on Catalyst", or "static frontend on Catalyst".
## References
| Reference | Load when the query is about… |
|-----------|-------------------------------|
| `references/slate-basics.md` | Framework setup, `slate-config.toml` gotchas, baseUrl config, CORS for Slate→function calls, Git deploy, CLI commands |
© catalystbyzoho · Apache-2.0 · catalystbyzoho/agent-skills