Skip to main content

Overview

How It Works

Each app runs on managed infrastructure, provisioned via the Naive API. When you create an app:
  1. Managed hosting is provisioned in the Naive org (Next.js framework)
  2. For fullstack apps, a managed backend is also provisioned (PostgreSQL, auth, storage, edge functions)
  3. A production domain is assigned (e.g., naive-myapp-abc123.vercel.app)
  4. The response includes a template block — the GitHub clone command for the starter template. If the company has an agent container, a dedicated engineer agent is also provisioned with the template scaffolded into its workspace.
Apps are fully standalone — you can create, build, and deploy without any orchestration. naive apps deploy uploads your local project directory when run on your own machine; inside agent containers it deploys the agent’s workspace. The curated commands above cover the common path, and the vercel / supabase proxy commands cover everything else the underlying platforms support.

Typical Workflow (Direct)

In orchestrated mode (CEO/engineer agents), the same commands run inside the agent container and deploy from the agent workspace automatically.

Create App

Options


Deploy

Outside a container, the CLI packs your project directory (excluding node_modules, .next, .git) into a tarball and uploads it through the Naive API — max 30 MB gzipped. Inside an agent container, the agent’s workspace is deployed instead (auto-detected from the current directory). Returns the deployment ID and preview URL.

Options

Templates

Lists every starter template with its GitHub path and a ready-to-run clone command. Templates live at github.com/usenaive/app-dev-templates.

Publish

Waits for the build to be ready, then aliases the deployment to the production domain.

Options


Secrets

Secrets are stored encrypted by Naive and synced to the app’s environment variables. Redeploy after changes for them to take effect.

Options (set/delete/reveal)

NEXT_PUBLIC_APP_URL (all apps) and NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY (fullstack) are provisioned automatically.

Domains


Database (Fullstack Only)

Unquoted SQL also works — the remaining arguments are joined with spaces — but quoting is safer: your shell will otherwise expand *, ; and friends before the CLI ever sees them. Only available for apps created with --type fullstack. Queries run against the app’s managed PostgreSQL database with admin privileges via the backend management API. While the backend is still being provisioned the query returns job_not_ready (409) — poll naive apps show <id> until the backend link appears.

Direct Provider Access (Advanced)

Anything the underlying hosting REST API or backend management API supports can be called through the scoped proxies — Naive injects the credentials and restricts each call to the app’s own project:

Options

The project ID / ref are shown by naive apps show <id>. Deleting the underlying project through the proxies is blocked — use naive apps delete. See the hosting proxy and backend proxy references for full scoping rules.

Retry Provisioning

Re-creates the managed hosting and/or backend if provisioning previously failed (e.g., network timeout, rate limit). Already-linked infrastructure is untouched, and calling it on a healthy app returns status: "noop" rather than an error — it is safe to retry. Backend re-provisioning runs in the background: the response reports supabase: "provisioning" and the app is only usable once naive apps show <id> shows the backend link. See POST /v1/apps/:id/retry.

Delete App

Permanently deletes the app, its hosting project, its backend (if fullstack), all secrets, domains, and archives the dedicated engineer agent.