SkillHub

web-hosting

v1.0.0

Meta-skill for zero-friction deployment of local web projects to production URLs by orchestrating github-api, vercel/netlify, domain-dns-ops, and api-gateway. Use when users want to make a local site live with SSL, CI/CD, and optional custom domain wiring.

Sourced from ClawHub, Authored by Hagen Hoferichter

Installation

Please help me install the skill `web-hosting` from SkillHub official store. npx skills add h4gen/web-hosting

Purpose

Take a local codebase or static site and publish it to a production URL with minimal DevOps friction.

Primary outcomes: 1. repository created and synced, 2. deployment triggered, 3. live URL verified, 4. custom-domain path documented when requested.

This is an orchestration skill. It does not guarantee uptime/SLA by itself.

Required Installed Skills

Core: - github-api (inspected latest: 1.0.3) - One deploy path: - vercel (inspected latest: 1.0.1), or - netlify (inspected latest: 1.0.0)

Optional: - domain-dns-ops (inspected latest: 1.0.0, environment-specific) - api-gateway (inspected latest: 1.0.29)

Install/update:

npx -y clawhub@latest install github-api
npx -y clawhub@latest install vercel
npx -y clawhub@latest install netlify
npx -y clawhub@latest install domain-dns-ops
npx -y clawhub@latest install api-gateway
npx -y clawhub@latest update --all

Verify:

npx -y clawhub@latest list

Important name mapping: - If user says /netlifly, map it to /netlify.

Required Credentials

Mandatory: - MATON_API_KEY (required for github-api, and for api-gateway routes)

Provider/CLI auth (at least one deploy path): - Vercel path: logged in vercel login or VERCEL_TOKEN - Netlify path: logged in netlify login or NETLIFY_AUTH_TOKEN

Optional (custom infra through api-gateway): - active app-specific OAuth connection in Maton control plane (ctrl.maton.ai)

Preflight:

echo "$MATON_API_KEY" | wc -c
echo "$VERCEL_TOKEN$NETLIFY_AUTH_TOKEN" | wc -c

Mandatory behavior: - Never fail silently on missing keys/tokens. - Always return MissingAPIKeys (or missing auth) with blocked stages. - Continue with non-blocked stages and mark output as Partial when needed.

Inputs the LM Must Collect First

  • project_path
  • repo_name
  • repo_visibility (private or public)
  • deploy_target (vercel or netlify)
  • framework_hint (optional)
  • custom_domain (optional)
  • domain_provider (optional; Cloudflare/Namecheap/etc.)
  • infra_mode (frontend-static, fullstack-managed, vps-server)

Do not run deployment before deploy target and visibility are explicit.

Tool Responsibilities

github-api

Use for repository bootstrap and remote sync setup: - create repository (user/org), - configure visibility, - store remote URL metadata for subsequent push/deploy linkage.

Operational constraints from inspected skill: - requires MATON_API_KEY - uses Maton-managed OAuth connections - missing/invalid key leads to auth errors

vercel

Use for managed frontend/fullstack deploy path: - link project, - trigger deploy (vercel / vercel --prod), - inspect deployment and domain status, - manage domain attachments when needed.

netlify

Use as alternative managed deploy path: - site create/link/init, - CI/CD setup from GitHub, - manual or prod deploy, - environment variable and domain/dns capabilities.

domain-dns-ops

Use only when environment matches its assumptions.

Important limitation from inspected skill: - this skill is documented as environment-specific ("for Peter", source of truth in ~/Projects/manager). - if that source context does not exist, do not assume it is portable.

api-gateway

Use for optional infra/API-managed operations when connected apps exist.

Operational constraints from inspected skill: - requires MATON_API_KEY - requires active app-specific connection per target service - 400 indicates missing app connection - 401 indicates missing/invalid Maton key

Capability disclosure: - inspected list clearly includes Netlify and many SaaS apps. - DigitalOcean/AWS are not explicitly listed as native app names in the inspected api-gateway skill index. - treat VPS/server provisioning via gateway as conditional, not guaranteed.

Canonical Causal Signal Chain

  1. Code Audit
  2. scan project root for framework markers:
  3. package.json, next.config.*, vite.config.*, index.html, dist/, build/
  4. classify project type (Next.js, Vite, static HTML, other)
  5. determine default build and publish path

  6. Git Inception

  7. initialize git if needed,
  8. create remote repository via github-api,
  9. set origin, commit, and push branch.

  10. Infrastructure Gate

  11. present hosting recommendation based on project type:
  12. Vercel/Netlify for frontend-managed deploy,
  13. custom infra path only if supported connections exist.

Required gate format: - InfraGateStatus: available or blocked - Reason: missing auth / missing connection / unsupported provider - Action: exact next step

If user asks about provider signup/offers: - provide neutral official onboarding links only.

  1. Deployment Trigger
  2. Vercel path: run vercel link (if needed), then deploy (vercel --prod).
  3. Netlify path: create/link/init and deploy (netlify deploy --prod).

  4. Status Monitoring

  5. poll deploy status/logs until final state:
  6. Ready/success -> proceed,
  7. failure -> return build error summary + remediation actions.

  8. Domain Wiring

  9. if custom domain requested:
  10. attach domain in provider (Vercel/Netlify),
  11. output required DNS records,
  12. verify DNS propagation and HTTPS readiness.

  13. Output

  14. return live URL,
  15. return domain instructions,
  16. return CI/CD update path (future pushes redeploy automatically).

Output Contract

Always return:

  • ProjectDetection
  • detected framework
  • build/publish assumptions

  • RepoStatus

  • repository URL
  • default branch
  • push status

  • InfraGateStatus

  • provider selected
  • gate status
  • blockers and actions

  • DeploymentStatus

  • live URL
  • deploy ID/reference
  • final state (ready or failed)

  • CustomDomainPlan

  • required DNS records
  • where to set them
  • verification checklist

  • NextActions

  • exact command/portal steps if anything remains manual

Quality Gates

Before final output, verify: - framework detection based on actual files (not guesswork) - remote repo exists and push path is valid - deployment URL resolves and status is successful - custom domain records are explicit and provider-correct - all missing credentials/connections are disclosed

If any gate fails, return Needs Revision with concrete missing dependencies or errors.

Failure Handling

  • Missing MATON_API_KEY: return MissingAPIKeys, skip github-api/api-gateway stages.
  • Missing Vercel/Netlify auth: return missing auth state and provide exact login/token setup steps.
  • Git push rejected: keep deployment blocked, return upstream remote/auth error and retry commands.
  • Deploy build failed: return build log summary and required fixes.
  • Missing domain control: return live platform URL and park custom-domain steps as pending.
  • Unsupported VPS provider path in gateway: disclose limitation and provide managed-hosting fallback.

Guardrails

  • Never claim deployment success without a reachable URL.
  • Never claim custom domain is active before DNS + HTTPS checks pass.
  • Never hide provider limitations or auth blockers.
  • Keep recommendations bounded to inspected, available integrations.