Frequently asked questions
Novence FAQ
Everything about hosting static sites with Novence — API keys, deploys, checks, domains, plans, and billing. Can't find an answer? See the docs.
Getting started
What is Novence?
Novence is static-site hosting built for AI agents. Agents (and humans) get an API key, upload HTML/CSS/JS, run quality checks, and publish to the edge at https://{suffix}.novence.ai/ — all through REST, GraphQL, or MCP. There is no required dashboard or browser step in the core loop.
Who is Novence for?
Autonomous agents (Claude, Cursor, or any MCP client) that need to ship websites end to end, and developers who want a scriptable, API-first host for static marketing sites, landing pages, and docs. Humans can drive everything with curl or the SDKs — no agent required.
How do I get an API key?
POST https://api.novence.ai/v1/bootstrap with your email. You receive an nv_ API key immediately, plus a one-time code by email. Verify the code via POST /v1/auth/verify-email to unlock full free quotas. No signup form, no password.
Do I need to verify my email?
Yes, for full access. Unverified accounts get tight caps (1 project, 0.05 GB storage, 3 deploys, no checks or custom domains). Verifying the emailed one-time code unlocks the full Free plan, custom domains, and Stripe Checkout. Codes expire in 15 minutes; resend via POST /v1/auth/resend-verification.
What if I lose my API key?
Request a fresh one-time code by email, then call POST /v1/auth/reissue-key with the code. A new nv_ key is issued for the same account; treat the old one as dead.
Is Novence free to try?
Yes. The Free plan is $0/month and includes 1 project, 1 GB storage, 10 GB bandwidth, 20 deploys, 30 check minutes, and 1 custom domain (after email verification). No credit card required.
Hosting & deploys
What kinds of sites can I host?
Static sites only: HTML, CSS, client-side JavaScript, and common static assets (images, fonts, media). Marketing sites, landing pages, portfolios, and docs are the sweet spot. There is no server-side rendering, no server routes, and no databases. See /examples for an agency rebuild playbook.
How does a deploy work?
Create a project (POST /v1/projects), upload files (batch upload is preferred: request upload URLs, PUT the files, then confirm), then create a deployment (POST …/deployments). Poll GET …/deployments/latest until the status is live or failed. Once live, the site is served from the edge at your project URL.
What URL does my site get?
Every project gets https://{suffix}.novence.ai/, where the suffix is returned when you create the project. You can attach your own domain on top of it at any time.
What file types and sizes are allowed?
Standard static-web assets — HTML, CSS, JS, images, fonts, and similar — from an allow-list of extensions. Individual files are capped at 10 MB. Executables and server-side code are rejected.
Can I host a backend, API, or database?
No. Novence serves static files only. If your site needs dynamic behavior, call third-party APIs from client-side JavaScript, or host your backend elsewhere and point your frontend at it. Contact forms are the one built-in exception — Novence Forms handles submissions without any server.
How do I update a published site?
Upload the changed files and create a new deployment. The new version replaces the old one once it goes live. Each deployment counts against your monthly deploy quota.
Is my site served over HTTPS?
Yes. Both {suffix}.novence.ai URLs and attached custom domains are served over HTTPS from the edge.
Quality checks
What quality checks run on my site?
Deployments run Lighthouse performance audits, axe accessibility checks, and broken-link checks. Agents use the results to iterate until the site meets the bar before calling it done.
Where do I see check results?
Check results are included in the deployment payload (checksResults) when you poll GET …/deployments/latest, or fetch them directly via GET …/checks. MCP clients get the same data from the deploy and check tools.
What are check minutes?
Check minutes are the metered time spent running Lighthouse, axe, and link checks. Free includes 30 minutes/month, Pro 4,000, and Scale 40,000. On Pro and Scale, extra minutes bill at $0.04/minute.
Custom domains
Can I use my own domain?
Yes. Custom domains are attached per project: call POST /v1/projects/{id}/domains with your hostname (www is the default primary). Then add a CNAME record pointing www to fallback.novence.ai, and a URL redirect from the apex (@) to https://www.yourdomain/.
How do I add a custom domain to a project, step by step?
1) Verify your email — unverified accounts cannot attach domains. 2) POST /v1/projects/{id}/domains with {"hostname":"yourdomain.com"} using your API key (or the configure_custom_domain MCP tool). 3) The response includes the exact DNS records to create: a CNAME from www to fallback.novence.ai and a URL redirect from the apex to https://www.yourdomain/. 4) Add those records at your DNS provider. Once DNS propagates, your site is served on the domain with HTTPS — no extra SSL setup.
How many custom domains can one project have?
One custom domain per project. An apex + www pair (yourdomain.com and www.yourdomain.com) counts as a single domain and is set up together. Your plan's domain quota is counted across the whole account, so on Pro (10) or Scale (100) you spread domains across projects — one per project.
How do I check whether my domain is set up correctly?
GET /v1/projects/{id}/domains returns the project's domain, its status, and the DNS instructions, so you can re-check what records are expected. MCP clients can call the get_domain_status tool. The status shows pending while DNS propagates; once your CNAME resolves to fallback.novence.ai, the site is served on the domain.
How many custom domains does each plan include?
Verified Free includes 1 custom domain, Pro includes 10, and Scale includes 100. On Pro and Scale, additional domains bill as a soft overage at $1 per domain per month. Unverified accounts cannot attach domains, and requests beyond a hard limit return HTTP 402.
Do you support apex (root) domains?
The supported default is a www CNAME to fallback.novence.ai plus a URL redirect from the apex to www. Most DNS providers offer URL redirects; this keeps the apex working without fragile A-record setups.
Can I attach a subdomain like app.example.com?
Yes. Deeper subdomains are attached as a single host: POST the hostname (e.g. app.example.com) and add one CNAME record pointing it to fallback.novence.ai. No apex redirect is needed for subdomains.
How do I change the domain on a project?
POST /v1/projects/{id}/domains again with the new hostname. The new domain replaces the old one on that project — old DNS mappings are cleaned up and the swap doesn't consume an extra domain from your quota.
Do I need to configure SSL certificates for my domain?
No. A TLS certificate is issued automatically for your domain once DNS points at fallback.novence.ai, and the site is served over HTTPS from the edge. There is nothing to upload or renew.
Forms
Can my static site accept form submissions?
Yes, two ways. Novence Forms is a built-in form backend: create a form for your project and visitors' submissions are stored and emailed to you — no server needed. Or bring your own backend (Formspree, Web3Forms, or any custom action URL); third-party forms work normally and don't count against Novence quotas.
How do I add a Novence form?
Create the form with POST /v1/projects/{id}/forms (or the create_form MCP tool), passing a name and up to 32 typed fields — a verified email is required. Then point your HTML form at the same-origin action "/__forms/{formId}" or POST directly to the public API endpoint. Submissions are accepted as JSON or URL-encoded form data.
Where do form submissions go?
Each submission is stored and a notification email is sent to your account email (or a notify address you set on the form). Read them back with GET …/forms/{formId}/submissions or the list_form_submissions MCP tool; the local account console shows recent submissions per project. Delete individual submissions any time via the API.
How is form spam handled?
Every form has a honeypot field (default _gotcha) — submissions that fill it are silently discarded without counting against your quota — and public submissions are rate-limited to 30 per IP per hour. There is no CAPTCHA step, so genuine visitors are never interrupted.
How many form submissions are included in each plan?
Free includes 50 submissions/month as a hard cap. Pro includes 2,000 and Scale includes 20,000 per month; beyond that, Pro and Scale meter extra submissions at $0.005 each on the monthly invoice.
Can forms accept file uploads?
No. Submissions are limited to JSON or URL-encoded data up to 64 KB with a maximum of 32 fields; multipart/form-data uploads are rejected. For attachments, use a third-party form service or file host.
Plans, quotas & overages
What plans are available?
Free ($0/mo): 1 project, 1 GB storage, 10 GB bandwidth, 20 deploys, 30 check minutes, 50 form submissions, 1 domain. Pro ($29/mo): 20 projects, 50 GB storage, 200 GB bandwidth, 2,000 deploys, 4,000 check minutes, 2,000 form submissions, 10 domains. Scale ($149/mo): 125 projects, 250 GB storage, 1.5 TB bandwidth, 20,000 deploys, 40,000 check minutes, 20,000 form submissions, 100 domains. Full details: /pricing.
What happens when I hit a quota on the Free plan?
Free has hard caps: requests that would exceed a quota are blocked with HTTP 402 until the quota resets or you upgrade. Free never accrues overage charges.
How do overages work on Pro and Scale?
Usage beyond plan quotas is metered and added to your monthly Stripe invoice: storage $0.05/GB-month, bandwidth $0.08/GB, deploys $0.05 each, check minutes $0.04 each, form submissions $0.005 each, and custom domains $1/domain-month.
How do I check my current usage and quotas?
Call GET /v1/billing/quotas (or GET /v1/account) with your API key, use the get_account MCP tool, or generate the local account console for a visual view of quotas versus usage. Prefer the exact usage.storage_bytes field over the rounded storage_gb value.
Billing & payments
How do I upgrade to Pro or Scale?
POST https://api.novence.ai/v1/billing/checkout with the plan name returns a Stripe Checkout URL. Complete payment in the browser and the subscription activates with the licensed price plus metered overages on one monthly invoice. A verified email is required.
Can my agent pay without a browser?
Yes, via MPP (Machine Payments Protocol). POST /v1/billing/mpp responds with HTTP 402 and a WWW-Authenticate: Payment challenge; the agent completes it with a Stripe SPT (for example via the Stripe Link CLI). This creates the same monthly Pro or Scale subscription as Checkout, and renewals continue until cancelled.
How do I cancel or change my payment method?
POST /v1/billing/portal returns a Stripe Customer Portal link where you can cancel, update your payment method, and view invoices. It accepts your nv_ API key or a short-lived mgmt_ session token.
How am I invoiced?
Billing is handled by Stripe. You get one monthly invoice combining the fixed plan price and any metered overages. Invoices are available in the Stripe Customer Portal.
What happens to my sites if I downgrade or cancel?
Your account drops back to the Free plan quotas. Existing sites stay live, but anything beyond Free limits (extra projects, domains, storage) must be brought back within quota, and further requests that exceed Free caps are blocked with HTTP 402.
Account, console & security
Is there a hosted Novence dashboard?
No, by design. GET /v1/account/console-kit returns an account snapshot plus an HTML template; your agent writes a local novence-console.html showing your plan, quotas versus usage, projects, and billing actions. Serve it on http://127.0.0.1 for live refresh.
What is the difference between nv_ and mgmt_ tokens?
nv_ is your long-lived API key with full account scope — it stays with the agent or your server environment. mgmt_ is a short-lived (30 minute) browser session token limited to account:read and billing:portal scopes, created via POST /v1/account/sessions, for use in the local console only.
How should I keep my API key safe?
Never embed nv_ keys in HTML, URLs, client-side code, or git. The local console pattern exists exactly for this: the browser only ever sees a scoped, short-lived mgmt_ token stored in sessionStorage. If a key leaks, reissue it via email OTP and POST /v1/auth/reissue-key.
Can humans manage an account without an agent?
Yes. Every endpoint works with plain curl or the SDKs, and humans can start a console session with an email one-time code via POST /v1/account/sessions/request and …/verify — no API key on hand required.
APIs, MCP & SDKs
What API surfaces are available?
Three surfaces over the same control plane: REST at https://api.novence.ai/v1, GraphQL at https://api.novence.ai/graphql, and MCP (streamable HTTP) at https://api.novence.ai/mcp. An OpenAPI spec, llms.txt index, and llms-full.txt agent brief are published on the site.
How do I connect Claude or Cursor via MCP?
Point your MCP client at https://api.novence.ai/mcp with your nv_ API key. Tools cover the whole lifecycle: create_project, uploads, deploy, checks, domains, quotas, get_account, and get_account_console_kit.
Are there SDKs or a CLI?
Yes: @novence/sdk for TypeScript and the novence package for Python. The repo also ships a one-shot helper — pnpm launch-site -- --dir ./mysite --email [email protected] — that runs the whole bootstrap-to-live flow.
Where can my agent learn the API quickly?
Fetch /llms.txt for a curated agent index, /llms-full.txt for the complete API brief, /openapi.yaml for the REST contract, or hit https://api.novence.ai/ for API discovery. The docs page also has copy-paste curl flows for every step.
Policies & misc
Does Novence modify my robots.txt?
No. The robots.txt you upload is authoritative and served as-is. The platform does not inject AI-crawl directives or any other rules into your site.
Where are sites served from?
Sites are published to a global edge network once a deployment goes live, so they are served close to visitors worldwide.
How do I check platform status?
Open https://novence.ai/status for a live human-readable probe of the control plane, or GET https://api.novence.ai/health for the raw JSON used by that page.
Still have questions?
The docs cover every flow with copy-paste curls, and the llms.txt / llms-full.txt briefs get agents up to speed in one fetch.