app.nzapp
AppsProjectsReposPullsChatIntegrationsGatewayModelsEvalsToolsDatasetsMCPDeploysPricingBlogDocsAssistantsCharactersArtMusic
Sign inStart building
Agent stack
Cloud coding agentAgents SDKIntegrationsBrowser agentMonitors & auto-agentsSchedulersAgent skillsMCP serversDeep research
Models & API
AI GatewayModel catalogModel evalsModel spacesPlaygroundText to imageImage to 3DText to 3DMusic & SFXAudio editorMedia optimizerAI art & libraryChatAPI referenceSchemaBecome a provider
Compute & hosting
DeploysAddonsPostgres hostinggobed vector searchSite hostingAnalyticsCog GPU hostingRL trainingBuilds & CIWorkersTask queuesDomainsGit hosting
Tools
AI toolsDrawDiffusion canvasLive DrawWriteSheetsArtifactsVideo studioNotebooksDatasets
Learn
DocsBlogEval guidesPrompt libraryCLIAlternativesPapersAI charactersArt gallerySecurityConsulting
Company
PricingEnterpriseSettingsBillingStatusInvestorsCreate accountTerms of ServicePrivacy Policy
app.nzapp.nz

AI agent cloud for coding, deploys, model routing, and research. Built for teams shipping software.

Built in New Zealand by App AI NZ.

Social
X / TwitterGitHubYouTube
The app.nz network
GpuBrainPapersReading TimemojojojoNetwrckText-Generator.ioCodex InfinityOpenPathsCuteDSLAI Art GeneratorAIArt-Generator.artSiteSimSimplexGenDictatorFlowWebFiddleRing.nzChatGibidyBitBankExperimentFlowEvangelerHires.nzHow.nzV5 GamesAddicting Word GamesBig Multiplayer ChessWord SmashingreWord GameMultiplication Master
© 2026 App AI NZ Ltd. All rights reserved.All systems normalTermsPrivacy
Blog
July 7, 2026·5 min read·app.nz

appnz.yaml: the runtime contract

Why app.nz separates static and server runtimes with a small config file instead of guessing forever from package.json, Cargo.toml, dist folders, or Dockerfiles.

Listen to this article

On-device voice

Uses the voice built into your browser; no article text leaves this page.

Audio narration is not supported by this browser.

appnz.yaml is the small file that keeps app.nz deploys from becoming guesswork. It tells the platform what kind of artifact this project produces and how the platform should run it.

The important field is runtime.

Static versus server

The current runtime split is intentionally blunt:

RuntimeMeaning
staticbuild output is files
serverbuild output is a container image

Static deploys go through hosted sites. Server deploys go through the build and container path. That distinction prevents the platform from treating every project like a web server.

Most frontends are static after build. React, Vite, SvelteKit static exports, docs sites, WASM frontends, and many agent-generated apps all fit this path. They should deploy as files.

APIs, long-running workers, websocket servers, and services with custom runtimes fit the server path. They need an image and a process.

Why a contract matters

Without appnz.yaml, a platform has to infer intent from files:

  • package.json means Node, maybe.
  • Cargo.toml means Rust, maybe static WASM or maybe an API.
  • Dockerfile means server, unless it is only a build container.
  • dist means static, unless it is stale.

Inference is convenient for demos, but painful in production because ambiguous guesses become outages. The config file makes the user's intent explicit.

Defaults are allowed, but not sacred

app.nz can infer a simple Dockerfile for common Node projects because that covers a large number of generated apps. But the default Dockerfile is a starting point, not a platform law.

Rust server apps should usually provide their own Dockerfile. GPU images must provide their own image and dependency story. Python apps with system packages should not rely on a generic inferred container.

Good defaults get a demo live. Explicit config gets a production app repeatable.

Build and release separation

The config file also creates a clean split:

source + appnz.yaml -> build artifact build artifact -> release release -> routing

Static artifacts are directories. Server artifacts are image refs. The control plane can reason about both without reading the repository again.

That separation is what makes fast rollback possible. If the platform stores old static file indexes and old image refs, rollback is not "run the old build again." It is "make the old artifact current."

The future fields

The next useful fields are not complicated:

  • build command,
  • output directory,
  • Dockerfile path,
  • health check path,
  • port,
  • runtime environment,
  • cache policy,
  • idle timeout,
  • CPU/GPU machine hint.

The danger is turning appnz.yaml into Kubernetes. The file should describe the app's contract with app.nz, not force users to learn the platform's internal scheduler.

The principle

The config is small because the product should be opinionated. If app.nz knows the runtime class, output, and health check, it can choose the boring path. If it cannot, the user should say so explicitly rather than hoping a heuristic guessed right.

Build what you just read

Ship agents, models, and apps on one cloud.

Start with free credits, then use the same platform from the web app, CLI, desktop app, or MCP.

Start building freeRead the docs

Keep reading

Build Studio: private container builds for app.nz

How app.nz turns a Dockerfile and build context into a private registry image, with scoped Docker auth, namespaced image refs, redacted logs, and a clean release boundary.

Deploying Rust in under five seconds

Fast Rust deploys come from separating build time from release time: compile once, push a small runtime image or static bundle, then publish by swapping bytes or image refs.

What is an AI agent cloud?

Why app.nz is broader than a coding agent, model gateway, inference provider, or app host—and how one integrated loop changes the work of shipping AI software.