Skip to content

Skill: Create Site

The Create Site skill builds a new website from raw HTML, CSS, and JavaScript provided by the agent. It uploads all files to Supabase storage, registers the site in the Horizon database, and returns a publicly accessible URL the user can visit immediately.

ParameterTypeRequiredDescription
htmlstringYesThe HTML content for the site’s index.html file. Must be a complete HTML document including <!DOCTYPE html> and a root <html> element.
cssstringNoCSS content for the site’s styles.css file. If omitted, the site will have no external stylesheet. Inline <style> tags in the HTML are still permitted.
jsstringNoJavaScript content for the site’s script.js file. If omitted, the site will have no external script file. Inline <script> tags in the HTML are still permitted.
site_namestringYesA human-readable name for the site. Used in the Horizon dashboard and in the site’s metadata. Must be unique per user.

A user might trigger this skill by saying:

“Build me a landing page for my coffee shop called Bean & Brew. It should have a hero section, a menu section, and a contact form. Use a warm color palette.”

The agent would generate the HTML, CSS, and JS, then invoke this skill with:

  • site_name: Bean & Brew Landing Page
  • html: (complete HTML document with hero, menu, and contact sections)
  • css: (stylesheet with warm color palette, typography, and layout rules)
  • js: (form validation and any interactive behavior)

The skill returns the public URL, which the agent shares with the user as a clickable link.

The skill returns a JSON object containing:

  • site_id — a unique identifier for the site, used for subsequent updates and management.
  • url — the public URL where the site is hosted and immediately accessible.
  • name — the site name as registered in the database.
  • created_at — ISO 8601 timestamp of when the site was created.
{
"site_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"url": "https://sites.horizon.app/a1b2c3d4/index.html",
"name": "Bean & Brew Landing Page",
"created_at": "2026-03-18T14:30:00Z"
}
  • File size limits — each file (HTML, CSS, JS) is limited to 1 MB. Sites exceeding this limit will return a validation error.
  • Name uniquenesssite_name must be unique for the calling user. Attempting to create a site with a duplicate name returns an error. Use Update Site to modify an existing site instead.
  • No server-side execution — sites are statically hosted. JavaScript runs in the visitor’s browser but there is no server-side processing.
  • Automatic asset linking — the skill places index.html, styles.css, and script.js in the same storage directory, so relative paths between them work without configuration.

POST /api/web/v1.0/create-site

See the Skill Execution API for details on authentication and request format.


Related skills: Update Site | List Sites | Retrieve Site