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, or use the homepage email field, or POST https://api.novence.ai/v1/demo with no email. You receive an nv_ API key immediately. With an email, a one-time code is sent; verify via POST /v1/auth/verify-email. Anonymous demo accounts claim later with POST /v1/auth/claim. 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). Click Verify on novence.ai in the email (https://novence.ai/verify) or POST /v1/auth/verify-email with the one-time code. That 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 code with POST /v1/auth/resend-verification (it emails even if you are already verified — look for sent: true). Then POST /v1/auth/reissue-key with that OTP. The same code verifies the email if needed and issues a new nv_ key; the old account key returns 401. Do not call verify-email separately.
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. Improve them with third-party widgets (Cal.com, Snipcart, GA) and /data/*.json files fetched same-origin — see /site-data. 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 (on Pro/Scale) video (.mp4, .webm, .mov). Free max file size is 10 MB with no video. Pro allows up to 50 MB per file; Scale up to 100 MB. Prefer compressed H.264 MP4 with ffmpeg +faststart. 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, embed a third-party widget, ship JSON data files with the site, call public APIs from client-side JavaScript, or host a backend elsewhere. Contact forms are the one built-in exception — Novence Forms handles submissions without any server. See /site-data.
Which frameworks can I deploy?
Any tool that emits static HTML/CSS/JS with /index.html at the site root: Next.js static export, Astro, Gatsby, Nuxt generate, Eleventy, Hugo, Vite, SvelteKit adapter-static, Jekyll, VitePress, Remix SPA/prerender, or plain HTML. Novence does not run SSR or platform builds. See /guides.
Can I add Cal.com, Snipcart, or other widgets?
Yes. Paste a script or iframe in your HTML. Novence serves the file as-is and does not strip tags. Same for Shopify Buy Button, Stripe Payment Links, GA, and Formspree. Never put nv_ keys in the page. See /site-data.
Can the site use its own data files (menus, hours, team)?
Yes. Upload /data/menu.json (or hours.json, team.json — .json is allowlisted). Page JS fetches it same-origin. Free: update that file and deploy. Pro/Scale: PUT /v1/projects/{id}/data/{name} or MCP put_site_data writes it live without a deploy (keep the file in the project). Do not store secrets. See /site-data.
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. For menus, hours, or team lists, keep data in /data/*.json — Free redeploys that file; Pro/Scale can PUT it live (put_site_data) without counting a deploy. See /site-data.
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. Unverified accounts have 0 check minutes — deploys skip the check suite and still publish. 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). Required: CNAME www → fallback.novence.ai. Then do exactly one for apex: ALIAS/ANAME/CNAME-flattening @ → fallback.novence.ai, or a registrar URL-redirect @ → https://www.yourdomain/.
Will my https://{suffix}.novence.ai site appear on Google?
No. Project hosts on {suffix}.novence.ai are share URLs: the edge sends X-Robots-Tag: noindex, nofollow so they do not rank. Attach a custom domain if you want the site indexed — your robots.txt on that domain is authoritative.
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) Required DNS: CNAME www → fallback.novence.ai. Then do exactly one apex option: ALIAS/ANAME/CNAME-flattening @ → fallback.novence.ai, or registrar URL-redirect @ → https://www.yourdomain/. 4) Poll GET /v1/projects/{id}/domains and follow dns.next until it is null. HTTPS is issued automatically — 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 (or MCP get_domain_status) returns dns.www, dns.apex, and dns.next — a single next DNS step, or null when the www CNAME is in place and apex has records. Follow dns.next until it is null. customDomainStatus stays pending after attach; it is not flipped to active from DNS.
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?
Required: CNAME www → fallback.novence.ai. Then do exactly one for apex: ALIAS/ANAME/CNAME-flattening @ → fallback.novence.ai (Cloudflare, Route 53 alias, NS1, DNSimple), or a registrar URL-redirect @ → https://www.yourdomain/ (GoDaddy-style). Do not point the apex at raw A records.
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
Can I add teammates?
Yes on Pro (5 extra seats per project) and Scale (20). Free is owner-only — invites return HTTP 402. POST /v1/projects/{id}/members or MCP invite_project_member. Invitees accept at https://novence.ai/invite and get their own project-scoped nv_ key. Deploys still count against the owner's quota. Never share the owner's key.
How do I upgrade to Pro or Scale?
Tell your agent to open the console-kit, click the manage billing tab. Or 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. Stripe emails the invoice/receipt to your account email (enable Customer emails in the Stripe Dashboard). PDFs and payment history are also in the Stripe Customer Portal via POST /v1/billing/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. Tell your agent to open the console-kit. 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. Overview and screenshots: /dashboard.
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?
CLI (npx novence — https://novence.ai/cli), TypeScript and Python SDKs (https://novence.ai/sdk), REST at https://api.novence.ai/v1, GraphQL at https://api.novence.ai/graphql, and MCP (streamable HTTP) at https://api.novence.ai/mcp. Same control plane. OpenAPI, llms.txt, and llms-full.txt 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, all three. CLI: npx novence deploy ./dist — https://novence.ai/cli. TypeScript: npm install @novence/sdk. Python: pip install novence (3.10+, no dependencies). Guide: https://novence.ai/sdk.
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 inject analytics scripts into my site?
No. HTML is served as-is. Cookieless pageviews are off by default. Enable with PATCH /v1/projects/{id} { analyticsEnabled: true } or MCP update_project_settings. See /analytics.
Can I still add my Google Analytics or DataFast script?
Yes. Put any client script in your own HTML. Novence does not strip or rewrite tags. Same for Cal.com, Snipcart, Shopify Buy Button, and other widgets. Built-in traffic stays cookieless and separate from whatever you embed. See /analytics and /site-data.
Does Novence modify my robots.txt?
On a custom domain, the robots.txt you upload is authoritative — the platform does not inject AI-crawl directives. On {suffix}.novence.ai (and legacy /p/{suffix}/ URLs), Novence sends X-Robots-Tag: noindex, nofollow and ignores tenant sitemaps so project hosts do not rank in Google. api.novence.ai is also noindexed.
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.