Skip to main content
Building and Hosting Sites

Sites: Build and Host Websites

Qoder Sites lets you build, publish, and manage websites directly from Qoder CLI — from static pages to Agent Apps with a database, server functions, and object storage. There are three entry points:
  • Natural language in a session (recommended): describe your goal in an interactive session, and the built-in Sites Skills drive the build, publish, and management flows.
  • The /sites panel: manage sites, sharing policies, and environment variables visually inside the TUI.
  • The qoder sites terminal subcommand: a machine-readable JSON interface for scripts and automation.

Build and manage in a session

Interactive sessions ship with the following Sites Skills; express your intent in natural language to trigger them:
SkillPurpose
sites:sites-buildingBuild a website from scratch or from an existing project, then package it for publishing
sites:sites-build-agent-appBuild an Agent App with a database backend
sites:sites-hostingPublish drafts, track publish progress, and restore published sites
sites:sites-managementDay-to-day management: site info, sharing policies, environment variables, data, logs, and analytics
For example: "Publish dist as a site", "Make this site visible to specific members only", or "Show me yesterday's traffic analytics". For write operations — publishing, deleting, changing sharing policies, deleting secrets — the Agent restates the impact and waits for your explicit confirmation before executing. Confirmation and idempotency semantics are orchestrated by the Skills; you never construct these requests by hand.

The /sites panel

Type /sites in an interactive session to open the panel, where you can:
  • List: browse sites you own and sites shared with you
  • Detail: inspect site status, the active deployment, and progress
  • Publish / suspend / resume / delete: publishing picks from ready deployments; deletion requires a second confirmation
  • Sharing: switch the access policy between private, selected members (invite by email or UID), organization, and public; going public requires an extra confirmation
  • Environment variables (Secrets): add, replace, and delete; values are write-only and can never be read back
The panel is available only in the local interactive TUI.

The qoder sites terminal subcommand

qoder sites list                 # list your sites
qoder sites operations           # list the operations catalog
qoder sites describe <operation> # show an operation's input JSON Schema
qoder sites <operation> [--input <JSON> | --input-file <path>]
  • Interactive terminals get a human-readable rendering (grouped operation catalog, error summary, pretty-printed JSON); pipes, redirections, and any call carrying --session (the fixed contract of the in-session Skills) always receive the single-line JSON ({"schemaVersion": 1, ...}) for script parsing
  • list lists your sites (add --input '{"scope":"shared"}' for sites shared with you); operations lists the operations catalog; describe <operation> prints the operation's input JSON Schema — the authoritative source for parameters
  • Exit codes: 0 success; 2 invalid input; 3 login or session required; 4 conflict; 5 write result unknown (query the status before retrying); 6 cancelled; 1 other

Operations suited to direct use

Read-only query operations are safe to call directly from scripts and automation: list_sites, get_site, get_analytics, get_site_access, check_subdomain, get_function_logs, list_storage_objects, get_operation
qoder sites list_sites --input '{"page": 1}'
qoder sites describe get_analytics

Operations driven by Skills

The following capabilities are invoked by in-session Skills carrying the session context (--session) and are part of the Agent workflow:
  • Build and publish pipeline: prepare_site, publish_site, get_publish_status, get_context
  • Database management: get_database_schema, create_database_migration, apply_database_migration, query_database_rows, and friends
  • Storage and write operations: upload_storage_file, delete_storage_object, update_access_policy, delete_project, and other operations with confirmation, idempotency, and reference (ref) semantics
To use these capabilities, express your intent in a session and let the Agent handle confirmation and invocation; constructing these requests by hand bypasses the confirmation safeguards.

Login and network

The terminal subcommand uses the local Qoder login state and guides you through login when needed (see Authentication); in-session calls use the current session's identity and never fall back to a different local login. Routing follows the CLI's current network configuration (see Network).

Next steps