Develop scalable, opinionated, AI-hardened full stack apps.
nstack is the deployment and provisioning tool for Encore + Nuxt apps on Dokploy. Create the app, keep the typed client synced, run local dev, provision resources, and ship through one CLI pipeline.
Starts with
Start in one shell
Run the installer, then create an app with nstack init my-app.
curl -fsSL https://nstack.tech/install.sh | bashInstall
curl -fsSL https://nstack.tech/install.sh | bashCreate
nstack init my-appRun locally
cd my-app && nstack devArchitecture agents can keep working with.
nstack gives agents a real project shape: typed APIs, resource declarations, frontend rules, generated client code, and Dokploy target config they can inspect.
Three-command start
Install nstack, create an app, and let the CLI run local services, rebuild the client, and prepare deploy files.
Encore-shaped backend
APIs, databases, caches, Pub/Sub, and object storage live in source, so the architecture stays visible as the app grows.
Agent-ready frontend
The typed Encore client is rebuilt as APIs change, so Nuxt screens stay in sync while agents work.
Dokploy provisioning
nstack turns the project shape into Dokploy services, routes, domains, resources, and deploy files.
Start from a production-shaped app.
Pick a file to inspect the Encore API, Nuxt page, generated client, API helper, workspace config, and package scripts.
nstack init my-appbackend/api/status.ts
TypeScript
import { api } from "encore.dev/api";import { db } from "./db";interface StatusResponse { app: string; commit: string; database_ok: boolean; uptime_seconds: number;}export const ready = api( { expose: true, method: "GET", path: "/ready" }, async () => ({ ok: true }),);export const status = api( { expose: true, method: "GET", path: "/status" }, async (): Promise<StatusResponse> => { const row = await db.queryRow<{ ok: number }>`SELECT 1 AS ok`; return { app: process.env.APP_ID || "my-app", commit: process.env.GIT_COMMIT || "", database_ok: row?.ok === 1, uptime_seconds: Math.floor(process.uptime()), }; },);
Provision Dokploy, then ship.
Run nstack deploy from the app directory. The CLI prepares deploy files, provisions needed resources in Dokploy, rebuilds the generated client, and runs the deployment pipeline for the target you choose.
Resource provisioning
nstack reads Encore resource declarations and provisions the matching Dokploy services for the selected target.
SQL databases
Encore SQL databases map to Dokploy Postgres resources.
Caches
Encore caches map to Dragonfly services.
Pub/Sub
Topics and subscriptions map to NSQ-backed services for the deployed app.
Object storage
Encore buckets map to RustFS buckets.
Cron jobs
Encore cron definitions become scheduled jobs for the target.
Secrets
Secrets are stored as target-specific deployment environment values.
Deploy pipeline
nstack deploy discovers Encore resources, renders deploy files, provisions the target in Dokploy, rebuilds generated client code, deploys backend and frontend services, and verifies the published URL.
If Dokploy has a Git provider connected, nstack can use that source provider for deploys. Targets let the same app ship to production, staging, or another Dokploy environment.
Three-command loop
Use this path for a new app. Add nstack deploy after the Dokploy target is configured, and nstack takes the build and deploy handoff from there.
