A Frame is one deployable app - your landing page, API, Discord bot, or anything else you’d normally stand up on its own server. Each Frame gets its own domain, its own deploy history, and its own settings. Frames live inside a Space, and Spaces live inside a Project. If you’re coming from another platform: a Frame is roughly what other tools call a “service” or “app”.Documentation Index
Fetch the complete documentation index at: https://docs.withnubo.com/llms.txt
Use this file to discover all available pages before exploring further.
Create a Frame
The fastest path is the dashboard:- Open a Project, pick the Space you want (
dev,staging, orproduction), and hit New Frame. - Connect your GitHub repo and pick the branch you want Nubo to watch.
- Tell Nubo which port your app listens on.
- Hit deploy.
What a Frame’s status means
Open any Frame in the dashboard and you’ll see its current state in real time:| Status | Meaning |
|---|---|
| Starting | A deploy is in progress or the app is coming up. |
| Online | Healthy and serving traffic. |
| Degraded | Running, but not all replicas are healthy. |
| Error | No healthy replicas. The dashboard will tell you why. |
| Stopped | Scaled to zero or explicitly stopped. |
backoff_tripped reason so you stop seeing the same error toast over and over. The next push (or hitting Deploy) scales it back up and clears the trip, so a fresh image automatically recovers a stuck Frame.
Stop and start a Frame
Need to take a Frame offline without losing it? Hit Stop on the Frame to pause it (replicas scale to zero, or for self-hosted Agents the container is stopped). The Frame’s config, deploy history, environment variables, and domains are all kept. When you’re ready, hit Start to bring it back up. Via API:202 Accepted. The Frame moves through Stopped and back to Online as the change is applied. If the Frame is on a self-hosted Agent that is currently offline, you’ll get back 503 Service Unavailable.
Update a Frame’s settings
The Frame’s Settings tab groups everything you can change into clear sections (General, Source, Runtime, Environment variables, Custom domains, Danger zone). A sticky save bar at the bottom tracks unsaved changes so you always know if something is pending. You can:- Rename the Frame.
- Switch the branch Nubo watches.
- Change the port your app listens on.
- Scale the replica count up or down.
- Update environment variables.
- Attach or remove custom domains and volumes.
Changing the port re-rolls the Frame so the new value takes effect. Picks must be between 1024 and 65535.
Delete a Frame
From the dashboard: open the Frame’s Settings tab and scroll to the danger zone. Via API:Related
Deployments
How a push turns into a running Frame
Environment variables
Pass secrets and config into your app
Custom domains
Serve a Frame at your own hostname
Volumes
Add persistent storage to a Frame
