Skip to main content

Prerequisites

  • The Veryfront CLI installed (see Installation).
  • A terminal in which you can run veryfront init.

Scaffold

Run veryfront init to open the project wizard:
The wizard asks three questions in order and waits for an answer on each:
Press Enter three times to accept the preselected answers, or use the arrow keys to change an answer first. The wizard needs a terminal. In non-interactive environments (CI, piped stdin, scripts), veryfront init skips every prompt and uses ai-agent on Node.js without initializing Git. Passing --template also skips the whole wizard, including the runtime and Git questions. Choose a starting point directly when you already know what you want to build, or when running the command from a non-interactive script:

Choose a runtime

By default, veryfront init scaffolds projects for Node.js. Pass --runtime <node|bun|deno> to select a different JavaScript runtime:
What this changes:
  • All runtimes get the same package.json and template files.
  • --runtime deno additionally writes a thin deno.json so deno task dev / deno task build / deno task start / deno task eval work without extra setup. Deno reads npm dependencies directly from package.json via nodeModulesDir: "auto".
  • The install command and the printed next-steps match your runtime (npm install / bun install / deno install).
You can also set "runtime": "deno" in the JSON file passed to --config.

Use a package manager

Use these commands when you do not have the Veryfront CLI installed globally.

Run the dev server

The CLI prints the URL it is serving on:
Open http://localhost:3000. localhost resolves to 127.0.0.1 on every machine without a DNS lookup. File changes reload the browser.

Use project hosts from native clients

Multi-project browser URLs use http://<PROJECT>.localhost:<PORT>. Preview browser URLs use http://<PROJECT>.preview.localhost:<PORT>. Chromium treats the reserved .localhost tree as loopback on Windows. Native Node, Deno, and command-line resolvers can depend on operating-system resolver behavior for wildcard names. Veryfront’s Windows Server 2022 CI currently records ENOTFOUND from Node 24 for project and preview hosts, while Deno 2.7.7 resolves both to IPv4 and IPv6 loopback. Use literal loopback transport and keep the canonical virtual host when a native request does not resolve the browser URL:
This fallback stays on the local machine and preserves the distinction between project and preview routes. Do not replace it with a public loopback DNS name.

Change the port

The dev server binds port 3000. Pass --port to bind a different one:
When the requested port is already taken, veryfront dev does not fail. It scans forward for the first free port, reports the switch, and serves there:
Open the URL the CLI prints, not the one in the examples above. The development MCP server follows the port the dev server bound, plus 2.

Inspect the scaffold

The minimal template creates:
The ai-agent template creates:
Pages live in app/. The agent template also adds root-level agents/, tools/, and evals/. For the convention behind these directories, see Framework conventions. Generate additional app and AI primitives from the project root:
These names are examples. Use the generated files as starting points, then edit the agent instructions, tool implementation, and skill content for the workflow you are building. Every starter includes AGENTS.md. Coding agents should read that file first, then use veryfront schema --json or the Veryfront MCP tools for current CLI and project facts. Use Coding agents to connect Claude Code, Cursor, Codex, or another MCP-aware agent.

Verify it worked

veryfront dev prints a Ready in <duration> line followed by http://localhost:3000. Open that URL and save a source file. The browser should hot-reload.