Static Website Hosting - Static.app

Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like "deploy to static.app", "upload to static", "host on static.app", "static.app deploy", or when working with the Static.app hosting service.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Static Website Hosting - Static.app" with this command: npx skills add Akellacom/static-app

Static.app Deployment Skill

Deploy static websites and applications to Static.app hosting directly from OpenClaw.

Workspace Structure

All Static.app operations in your workspace use a dedicated folder structure:

workspace/
└── staticapp/              # Main folder for all Static.app operations
    ├── new-site/           # New sites created locally
    └── {pid}/              # Downloaded existing sites (by PID)
  • New sites: Created in staticapp/ subfolders before deployment
  • Downloaded sites: Extracted to staticapp/{pid}/ for editing

How Static.app Handles Files

Static.app automatically creates clean URLs from your filenames:

FileURL
index.html/ (homepage)
about.html/about
portfolio.html/portfolio
contact.html/contact

No subdirectories needed! Just create .html files in the root folder.

Project Structure

Simple Multi-Page Site

my-site/
├── index.html          # Homepage → /
├── about.html          # About page → /about
├── portfolio.html      # Portfolio → /portfolio
├── contact.html        # Contact → /contact
├── style.css           # Stylesheet
├── js/                 # JavaScript files
│   ├── main.js
│   └── utils.js
└── images/             # Images folder
    ├── logo.png
    └── photo.jpg

JavaScript App (React, Vue, etc.)

For JS apps, build first, then deploy the dist (or build) folder:

# Build your app
npm run build

# Deploy the dist folder
node scripts/deploy.js ./dist

Prerequisites

  1. Get API Key: Go to https://static.app/account/api and create an API key (starts with sk_)
  2. Set Environment Variable: Store the API key in STATIC_APP_API_KEY env var

Usage

Deploy Multi-Page Site

# Create your pages
echo '<h1>Home</h1>' > index.html
echo '<h1>About</h1>' > about.html
echo '<h1>Portfolio</h1>' > portfolio.html

# Deploy
node scripts/deploy.js

Deploy Specific Directory

node scripts/deploy.js ./my-site

Update Existing Site

node scripts/deploy.js . --pid olhdscieyr

List All Sites

node scripts/list.js

List Site Files

node scripts/files.js YOUR_PID

Options:

  • --raw — Output raw JSON
  • -k <key> — Specify API key

Delete Site

node scripts/delete.js YOUR_PID

Options:

  • -f, --force — Skip confirmation prompt
  • -k <key> — Specify API key

Download Site

Download an existing site to your workspace for editing:

node scripts/download.js YOUR_PID

This will:

  1. Fetch the download URL from Static.app API
  2. Download the site archive
  3. Extract it to staticapp/{pid}/

Options:

  • -p, --pid — Site PID to download
  • -o, --output — Custom output directory (default: ./staticapp/{pid})
  • -k <key> — Specify API key
  • --raw — Output raw JSON response

Example:

# Download site to default location
node scripts/download.js abc123

# Download to custom folder
node scripts/download.js abc123 -o ./my-site

Script Options

node scripts/deploy.js [SOURCE_DIR] [OPTIONS]

Arguments:
  SOURCE_DIR          Directory to deploy (default: current directory)

Options:
  -k, --api-key       API key (or set STATIC_APP_API_KEY env var)
  -p, --pid           Project PID to update existing site
  -e, --exclude       Comma-separated exclude patterns
  --keep-zip          Keep zip archive after deployment

Default Exclusions

The following are automatically excluded from deployment:

  • node_modules
  • .git, .github
  • *.md
  • package*.json
  • .env
  • .openclaw

Important Notes

✅ What Works

  • Static HTML sites — Any number of .html pages
  • CSS & JavaScript — Frontend frameworks, vanilla JS
  • Images & Assets — Place in images/ folder or root
  • JavaScript files — Place in js/ folder or root
  • Built JS Apps — Deploy dist/ or build/ folder after npm run build

❌ What Doesn't Work

  • Node.js Server Apps — No server-side rendering, no Express.js, no API routes
  • PHP, Python, Ruby — Static.app only serves static files
  • Databases — Use client-side storage or external APIs

JavaScript Apps Workflow

# 1. Build your React/Vue/Angular app
npm run build

# 2. Deploy the build output
node scripts/deploy.js ./dist --pid YOUR_PID

API Reference

Deploy Site

  • Endpoint: POST https://api.static.app/v1/sites/zip
  • Auth: Bearer token (API key)
  • Body: Multipart form with archive (zip file) and optional pid

List Sites

  • Endpoint: GET https://api.static.app/v1/sites
  • Auth: Bearer token (API key)
  • Headers: Accept: application/json

List Site Files

  • Endpoint: GET https://api.static.app/v1/sites/files/{pid}
  • Auth: Bearer token (API key)
  • Headers: Accept: application/json

Delete Site

  • Endpoint: DELETE https://api.static.app/v1/sites/{pid}
  • Auth: Bearer token (API key)
  • Headers: Accept: application/json

Download Site

  • Endpoint: GET https://api.static.app/v1/sites/download/{pid}
  • Auth: Bearer token (API key)
  • Headers: Accept: application/json
  • Response: Returns download URL for the site archive

Dependencies

  • archiver — Zip archive creation
  • form-data — Multipart form encoding
  • node-fetch — HTTP requests
  • adm-zip — Zip extraction

Install with: cd scripts && npm install

Response

On success, the script outputs:

✅ Deployment successful!
🌐 Site URL: https://xyz.static.app
📋 PID: abc123

STATIC_APP_URL=https://xyz.static.app
STATIC_APP_PID=abc123

Workflow

  1. Check for STATIC_APP_API_KEY env var or --api-key
  2. Create zip archive from source directory (with exclusions)
  3. Upload to Static.app API
  4. Parse response and output URLs
  5. Clean up temporary zip file

Error Handling

  • Missing API key → Clear error with instructions
  • Network issues → HTTP error details
  • Invalid PID → API error message

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Charging Ledger

充电记录账本 - 从截图提取充电信息并记录,支持按周、月查询汇总。**快速暗号**: 充电记录、充电账本、充电汇总。**自然触发**: 记录充电、查询充电费用、充电统计。

Registry SourceRecently Updated
General

qg-skill-sync

从团队 Git 仓库同步最新技能到本机 OpenClaw。支持首次设置、定时自动更新、手动同步和卸载。当用户需要同步技能、设置技能同步、安装或更新团队技能,或提到「技能同步」「同步技能」时使用。

Registry SourceRecently Updated
General

Ad Manager

广告投放管理 - 自动管理广告投放、优化ROI、生成报告。适合:营销人员、电商运营。

Registry SourceRecently Updated