App Deployment
Build interactive apps on canvas, deploy them with a URL.
From canvas to app
Any project can become a running app. Build frames on your canvas (a dashboard, a CRM, a blog), iterate until it’s right, then tell the agent: “Deploy this.” The agent packages everything up and deploys it.
Two deploy targets
| Target | How it works | Best for |
|---|---|---|
| Local | Runs as a Docker container on your machine. Gets a public URL via Cloudflare relay. Accessible from anywhere as long as your machine is running. | Personal tools, dev/staging, internal team dashboards |
| Jetro Cloud | Hosted on Jetro’s infrastructure. Always-on, nothing to install on your machine. | Production apps, blogs, anything that needs 24/7 uptime |
Jetro Cloud deployment is coming soon. Local deployment is available now.
How local deployment works
Local deploy runs your app inside a Docker container on your machine. The container is fully isolated with its own dependencies, and your project data is mounted as a volume so the app can read and write to it.
Jetro connects the container to a Cloudflare relay, giving your app a public URL at your-app.apps.jetro.ai. Anyone with the link can access it from anywhere, as long as your machine is on and the container is running.
Local deployment requires Docker installed on your machine. See the Prerequisites page.
- Agent analyzes the project Identifies target frames, data dependencies, and refresh logic.
- Agent writes the app Generates a server, Dockerfile, and everything needed to run your project as a standalone app. Includes routes, storage, live updates, and background data refresh.
- Build & deploy Docker builds the image and runs the container on your machine.
- Public URL Your app gets a URL at
your-app.apps.jetro.ai, or you can bring your own domain.
Custom domains
Bring your own domain on either target. Tell the agent: “Use app.mycompany.com” and it handles the DNS instructions and SSL setup. Just add a CNAME record on your domain and you’re live.
What deployed apps can do
- Interactive forms. Users input data via the browser, stored in your project database
- Live refresh. Background tasks fetch data on timers and push updates automatically
- Persistent data. Your database persists across restarts and redeploys. Great for CRM-style apps
- Full isolation. Runs in its own Docker container. Clean dependencies, reproducible, easy to stop and remove
Security
Deployed apps support three auth modes:
| Mode | When |
|---|---|
| Token (default) | Simple dashboards. An auto-generated token secures access via a URL parameter. |
| App-managed | Apps with their own login system. Jetro’s token is disabled so you don’t have double authentication. |
| Public | Read-only dashboards. No auth, restricted to safe routes only. |
Sidebar controls
Deployed apps show status directly in the project card in your sidebar: live/stopped indicator, public URL, custom domain status, and controls to stop, restart, redeploy, or remove entirely.