Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add catalystbyzoho/agent-skills --skill catalyst-slate -a claude-code
Open on GitHub

What 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.toml and baseUrl
  • fix relative paths when calling functions from Slate
  • diagnose an HTTP 400 deploy 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-code

2Manually: put the files in place

~/.claude/skills/catalyst-slate/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/catalyst-slate/

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

Similar skills

Everything for DevOps and infrastructure →

From the same set14

catalyst-appsail Guides the agent through deploying a persistent server on Catalyst AppSail, whether a managed Node.js, Java or Python runtime or your own Docker container. CX Codex +1 1,000installs catalyst-by-zoho Guides Claude Code through building full-stack serverless apps on Catalyst by Zoho. Helps wire Functions, Slate, and storage via Zoho MCP tools and the CLI. CX Codex +1 1,000installs catalyst-authentication Guides user login, social auth, and OAuth connections in Zoho Catalyst. Prevents broken production deployments caused by mismatched ZAID identifiers. CX Codex +1 999installs catalyst-zoho-mcp This skill wires an AI agent to the Zoho Catalyst MCP server so tables, buckets and cache get created from plain chat instead of the console. CX Codex +1 1,000installs catalyst-cache A skill that teaches the agent to use Catalyst Cache: store temporary values in segments, read them back, and respect the TTL. Handy for session data. CX Codex +1 997installs catalyst-stratus A skill for Catalyst Stratus object storage: file uploads, signed URLs, multipart upload. Useful when your project keeps files in Stratus. CX Codex +1 994installs catalyst-nosql A skill that tells the agent how to work with Catalyst NoSQL tables: build items with NoSQLItem, insert, fetch and update records. CX Codex +1 991installs catalyst-zia Wires Zia's pretrained APIs into your agent: OCR, face analytics, object detection, barcode reading and content moderation. Useful when you need image or text extraction without training a model. CX Codex +1 987installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor