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·6 min read·app.nz

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.

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.

Build Studio exists for the deploys that are not static: server apps, custom runtimes, workers, and anything that needs a container image. The core contract is simple: app.nz takes a build context and Dockerfile, builds an image, pushes it to the private registry, and records the result.

The details are where reliability lives.

Inline context, explicit Dockerfile

The API accepts a Dockerfile and optional build context. The server writes the Dockerfile into a temporary directory as Dockerfile.appnz, arranges the context, and runs docker build from that directory. If a project needs special build behavior, the Dockerfile is the source of truth.

For static apps, app.nz can infer a simple Node build. For serious server apps, especially Rust, Go, Python with system packages, or GPU images, inference is the wrong abstraction. The Dockerfile is the reproducible build recipe.

Private registry naming

Successful builds push into the app.nz registry under a user namespace:

registry.app.nz/u-<user>/<image>:<tag>

That gives every image a stable release reference without exposing another user's namespace. The release system can later deploy by image ref instead of rebuilding source.

This is also the main reason "deploy" and "build" should be separate words. A build turns source into an image. A release points traffic at an image.

Temporary Docker auth

Build jobs need registry credentials, but the host should not have its normal Docker config mutated by every user build. app.nz writes Docker credentials into a temporary DOCKER_CONFIG directory for the duration of the build and deletes that directory afterward.

That avoids a subtle class of operational bugs:

  • one build overwriting another credential,
  • host-level auth leaking into user builds,
  • future jobs inheriting stale registry state,
  • local developer Docker config changing after a test run.

Credentials should be scoped to the job that needs them.

Logs are user-facing

Build logs are both operational data and product UI. Users need the error, but they should not see secrets echoed from build args, environment, or failed shell commands. app.nz runs logs through a redaction path before persistence.

That does not make it safe to print secrets in builds. It makes the common failure mode less damaging.

What makes container builds slow

Build Studio cannot make Docker ignore physics. Slow builds usually come from one of these:

  • a giant context sent to the builder,
  • dependency installation before copying lockfiles,
  • missing layer cache,
  • compiling native code every build,
  • downloading toolchains in the runtime stage,
  • pushing huge layers over the network.

The platform can help by surfacing build phase timings and encouraging cache-friendly Dockerfiles. It should not hide the fact that a bad Dockerfile is a slow build recipe.

The release path we want

The target shape is:

build once push image store immutable image ref release by moving routing metadata roll back by pointing to the previous ref

Once the image exists, releasing it should be a control-plane operation. That is how app.nz gets to fast server deploys without pretending source compilation is free.

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

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.

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.

How we built isolated containers for agents and CI

The app.nz isolation model: per-run Docker networks, per-step containers, service sidecars, temp Docker auth, label cleanup, timeouts, and remote machines for bigger blast-radius boundaries.