# Novence > Static website hosting for AI agents. Create a project, upload HTML/CSS/JS, run quality checks, publish to the edge at `https://{suffix}.novence.ai/`, and attach custom domains — via CLI (`npx novence`), TypeScript/Python SDKs, MCP, REST, or GraphQL. Live API: https://api.novence.ai Novence is API-first hosting built for autonomous agents (Claude, Cursor, and any MCP client) and developers who want a scriptable control plane for static marketing sites. There is no required dashboard for the core loop. `POST /v1/demo` (or `npx novence deploy`) returns an `nv_` key with no email. `POST /v1/bootstrap` with email returns an `nv_` key immediately — unverified trial can publish; verify OTP after the live URL to unlock full Free quotas. MCP (`https://api.novence.ai/mcp`) does not need a key to start: call `bootstrap(email)`; the session adopts the `nv_` key. Persist it in the client for later sessions. `checkout` / `mpp_upgrade` need verified email after the live URL. Core loop: if `NOVENCE_API_KEY` is set → `npx novence deploy ./dist --json --no-input` and return `url`; else if MCP is connected → `bootstrap(email)` if unauthenticated, then for **one HTML file** call `publish_html` (read the file, pass the string) or for a directory `create_project` → upload → `deploy` → poll until live; else `POST /v1/demo` or `POST /v1/bootstrap` (save `nv_`, do not wait for OTP) → one-shot `POST /v1/publish-html` `{ html, title }` **or** `POST /v1/projects` → upload (batch preferred) → `POST …/deployments` → poll `GET …/deployments/latest` until `deployment.status` is `live` or `failed` (checks may be skipped on trial; still live) → open `project.url` → then ask for the email OTP and `verify_email` / `POST /v1/auth/verify-email` for Free. Never put `nv_` keys in browser HTML, URLs, or git. Discovery also available via redirects from `https://api.novence.ai/llms.txt` and `https://api.novence.ai/openapi.yaml`. ## Docs - [Human docs](https://novence.ai/docs): CLI, SDKs, bootstrap, deploy, domains, forms, widgets, billing, and local account console - [Guides](https://novence.ai/guides): Deploy Next.js, Astro, Gatsby, Nuxt, Eleventy, Hugo, HTML, Vite, SvelteKit, Jekyll, VitePress, Remix — static export only; Novence does not run SSR or platform builds - [Claude Code guide](https://novence.ai/guides/claude-code): One prompt to a live URL - [Cursor guide](https://novence.ai/guides/cursor): One-click MCP, then Copy Prompt - [Grok Build guide](https://novence.ai/guides/grok-build): Terminal agent — MCP or `npx novence deploy` - [Docs (markdown)](https://novence.ai/docs.md): LLM-friendly markdown mirror of the docs - [CLI](https://novence.ai/cli): `npx novence deploy ./dist` - [SDKs](https://novence.ai/sdk): `npm install @novence/sdk` and `pip install novence` - [FAQ](https://novence.ai/faq): Common questions on plans, quotas, checks, custom domains, security, CLI, SDKs, and MCP/REST/GraphQL - [Pricing](https://novence.ai/pricing): Free, Pro, Scale plans and overages - [MCP](https://novence.ai/mcp): Hosted streamable HTTP MCP for Claude, Cursor, and other clients - [MCP plugin (GitHub)](https://github.com/Novence-ai/mcp): Claude Code plugin package + install docs - [Examples](https://novence.ai/examples): Local-business rebuild playbook (Claude Code → host → pitch) - [Artifacts](https://novence.ai/artifacts): Host a single HTML report, dashboard, or Claude-style artifact - [For agents](https://novence.ai/for-agents): Autonomous deploy loop - [For agencies](https://novence.ai/for-agencies): Multi-client hosting, style variants, forms on pitch sites - [Forms](https://novence.ai/forms): Novence Forms without a backend - [Widgets and data](https://novence.ai/site-data): Third-party widgets (Cal.com, Snipcart, GA) and `/data/*.json` files to improve hosted static sites - [Checks](https://novence.ai/checks): Lighthouse, axe, and link quality gates - [Analytics](https://novence.ai/analytics): Opt-in cookieless pageviews, 404s, referrers (no JS) - [Dashboard](https://novence.ai/dashboard): Local account console (console-kit) — quotas, projects, billing - [Domains](https://novence.ai/domains): Custom domains and DNS - [Security](https://novence.ai/security): Static-only posture and API key hygiene - [Status](https://novence.ai/status): Live control plane health probe - [Compare](https://novence.ai/compare): vs JAMstack PaaS (Netlify, Cloudflare Pages, Vercel) and vs static-only hosts (Static.app, Static.run, statichost.eu, Surge.sh, GitHub Pages, Tiiny.host) - [Alternatives](https://novence.ai/alternatives): Netlify, Vercel, Cloudflare Pages, GitHub Pages, Surge.sh — named lists with prices - [Integrations](https://novence.ai/integrations): Claude Code, Cursor, Cal.com, GitHub Actions - [Host HTML](https://novence.ai/host-html): one file or folder → live URL, no git, no credit card - [No credit card](https://novence.ai/no-credit-card) · [No dashboard](https://novence.ai/no-dashboard) · [No git](https://novence.ai/no-git) - [Home](https://novence.ai/): Product overview, agent loop, surfaces, and pricing - [OpenAPI](https://novence.ai/openapi.yaml): Full REST contract for the control plane - [Full agent brief](https://novence.ai/llms-full.txt): Complete API reference for agents (auth, uploads, domains, forms, widgets, data files, team seats, quotas, overages) ## Surfaces - [REST `/v1`](https://api.novence.ai/v1): JSON control plane for bootstrap, projects, uploads, deploys, domains, quotas, Checkout, and MPP - [GraphQL](https://api.novence.ai/graphql): One schema over the same services - [MCP](https://novence.ai/mcp): Hosted streamable HTTP MCP guide (endpoint `https://api.novence.ai/mcp`) - [CLI](https://novence.ai/cli): `npx novence deploy ./dist` — or `npx novence deploy report.html` for one file; `--json` and non-zero exits for CI - [SDKs](https://novence.ai/sdk): TypeScript and Python clients over the same control plane - [TypeScript SDK](https://www.npmjs.com/package/@novence/sdk): `npm install @novence/sdk` — dual ESM/CJS, typed responses - [Python SDK](https://pypi.org/project/novence/): `pip install novence` — Python 3.10+, standard library only - [Health](https://api.novence.ai/health): Live API status ## Plans - **Unverified** (before email OTP — not Free): 1 project, 50 MB storage, 0.5 GB bandwidth, 3 deploys/mo, 0 check minutes (deploys skip checks and still publish; `checksResults.passed` is `null` when `skipped: true`), 0 custom domains, 0 form submissions, no video, 10 MB/file. Account deleted after 30 days unless verified. Live caps: `GET /v1/billing/quotas`. - Free ($0/mo, after email verify): 1 project, 1 GB storage, 10 GB bandwidth, 20 deploys, 30 check minutes, 1 custom domain, 50 form submissions - Pro ($29/mo): 20 projects, 50 GB storage, 200 GB bandwidth, 2,000 deploys, 4,000 check minutes, 10 domains, 2,000 form submissions, 5 team seats/project - Scale ($149/mo): 125 projects, 250 GB storage, 1.5 TB bandwidth, 20,000 deploys, 40,000 check minutes, 100 domains, 20,000 form submissions, 20 team seats/project ## Optional - [Terms of Service](https://novence.ai/terms): Legal terms for the hosting service and APIs - [Privacy Policy](https://novence.ai/privacy): How account, billing, and site data are handled - [Sitemap](https://novence.ai/sitemap.xml): Indexable marketing URLs for crawlers - [vs Netlify](https://novence.ai/vs/netlify) · [vs Cloudflare Pages](https://novence.ai/vs/cloudflare-pages) · [vs Vercel](https://novence.ai/vs/vercel) - [vs Static.app](https://novence.ai/vs/static-app) · [vs Static.run](https://novence.ai/vs/static-run) · [vs statichost.eu](https://novence.ai/vs/statichost-eu) · [vs Surge.sh](https://novence.ai/vs/surge) · [vs GitHub Pages](https://novence.ai/vs/github-pages) · [vs Tiiny.host](https://novence.ai/vs/tiiny-host) - [Netlify alternatives](https://novence.ai/alternatives/netlify) · [Vercel alternatives](https://novence.ai/alternatives/vercel) · [Cloudflare Pages alternatives](https://novence.ai/alternatives/cloudflare-pages) · [GitHub Pages alternatives](https://novence.ai/alternatives/github-pages) · [Surge alternatives](https://novence.ai/alternatives/surge)