Nubo

describe it. ship it. run it.

From a prompt
to a running app.

Nubo builds it, ships it, and runs it, then shows you everything in one live dashboard, on our cloud or your own servers.

free for 7 days · no card · sign in with github

1 Describe

what people ship on nubo

Whatever you're building, we'll host it.

Web apps, databases, workers, and apps you built in Studio all live in the same dashboard, with the same deploy flow for each.

  • web apps & APIs

    Web apps & APIs

    Next.js, Django, Rails, or a plain Node server. Push a repo and it serves real traffic on a real URL.

  • ai-built apps

    Apps built in Studio

    Describe it in Nubo Studio, watch it build, then ship it here without copying anything between tabs.

  • databases

    Databases

    Postgres, MySQL, Mongo, or Redis as a first-class Frame, with a connection string and persistent storage.

  • bots & workers

    Bots & workers

    Discord bots, Slack apps, queue consumers, scheduled jobs. Long-running, no URL required.

  • static sites

    Static sites

    Marketing pages, blogs, docs, portfolios. Built from your repo, no server to keep alive.

  • your weird thing

    Your weird thing

    Internal dashboards, ops panels, the side project nobody asked for. If it runs in a container, it runs here.

nubo studio · ai app builder

Talk to it,
get an app.

Describe what you want in chat and an AI agent crew builds it. A PM, a designer, and a developer plan it, write it, and show you a live preview as it goes. When it's ready, deploy in one click.

  • A PM, designer, and developer AI agent work in parallel, in the open.
  • Multi-frame projects (a web app plus a database) get wired together for you.
  • Bring your own AI model, or use the default. Watch the code as it lands.
Nubo
app
Deploy

your app will appear here as the developer writes it

pm dsn dev
send

deploy from github

Push, and it is live.

Connect a repo and every push builds and deploys. No DevOps engineer, no vocabulary to learn before your first deploy.

  1. 01 connect

    Point at a repo.

    Sign in with GitHub, install the Nubo app, pick the repo. Setup takes under a minute.

  2. 02 choose where

    Our cloud or your server.

    Default to Nubo Cloud, or connect a box you already own with one command and deploy there instead.

  3. 03 push

    git push, like always.

    Every push to your default branch builds and deploys. No CI config, no Kubernetes manifests, no YAML.

  4. 04 live

    Share the link.

    You get a URL with TLS already done. Want yourdomain.com? Add it in the dashboard and we handle the rest.

push on the left. nubo reacts on the right.

your machine ~/web-app · main
$
nubo dashboard web-app · main
WE
web-app us-east-01 · 1 replica
online
build 0%
  • webhook accepted
  • image build started
  • image pushed
  • rolled out · 200 OK

previews & ci/cd

Every pull request gets its own deploy.

Review the running thing, not a diff. Previews spin up on push and tear down when the PR closes.

  • pull requests

    A preview URL per PR

    Open a pull request and Nubo builds it to its own URL on *.nubo.onl. Every branch gets a real environment you can click before you merge.

  • status checks

    Checks and a PR comment

    Build status reports back as a GitHub check, and Nubo writes a comment on the PR with the preview link and the result. No tab-switching to find out if it shipped.

  • control

    Skip, ignore, or hold

    Put [skip ci] in a commit to skip the build. Ignore paths that do not affect the app. Flip auto-deploy off when you want to push without going live.

Projects, Spaces, Frames

The same three-layer model as the dashboard.

01 Project

The thing you're building. Holds your landing page, API, workers, and database in one place.

02 Space

An environment inside a Project. Most have a dev, staging, and production.

03 Frame

One deployable thing inside a Space. Arrange them on a grid so you see everything at once.

a Frame can be

  • web app

    App or API

    An HTTP service that gets a URL and routes traffic.

  • static site

    Static site

    Built from your repo and served as static files. No server to keep alive.

  • worker

    Worker

    A bot or job with no public URL. We keep it running.

  • database

    Database

    Managed Postgres, MySQL, Mongo, or Redis.

click a Space · statuses update live

AC
acme Project
watching for events…
WE
web
main
:3000/tcp
online 1
AP
api
main
:4000/tcp
online 1
RE
redirect
main
:8080/tcp
online 1
MA
marketing
main
:3000/tcp
online 1

inside one Frame

What we actually run.

A web app Frame moves through four layers. You don't have to think about them, but when something surprises you, the dashboard tells you which one is misbehaving.

WE
acme / web · Frame
online

01 source

Your repo, your branch.

GitHub, the branch you pick, the commit you push.

02 build

Code becomes an image.

Nubo detects your stack and builds an image. Dependencies cached between builds.

03 runtime

A container that stays healthy.

Restarts on crash and scales to the replicas you set. Real env vars and secrets, injected at runtime.

04 network

URL, routing, and TLS.

A default subdomain or your own domain. SSL renewed automatically.

us-east-01 · 1 replica 200 OK
barber-db online
PostgresMySQLMongoDBRedis

Connection

user barber
database barber_db
password ••••••••••••

DATABASE_URL

postgres://barber:••••••••@barber-db.internal:5432/barber_db

Use in an app frame

barber-shop DATABASE_URL Inject

databases & volumes

Add a database.
Nubo wires it in.

Create a managed Postgres, MySQL, MongoDB, or Redis. The Connect panel gives you a connection string, and once you link it to an app, Nubo injects DATABASE_URL on your next deploy.

  • A database is just another Frame, so it starts, stops, and deploys alongside your apps.
  • Need storage that survives a redeploy? Attach a volume up to 1 TB and your data persists.

metrics & logs

See what your app is actually doing.

Per-project numbers, live logs, deploy history, and one-click rollback. The whole set lives in one console, next to the deploys that produced them.

metrics

The numbers worth tracking.

Requests, error rate, and p95 latency, plus CPU, memory, egress, and deploy success. A per-frame breakdown underneath, so you can tell which Frame is doing the work and which one is leaking.

request analytics live

Requests / min

1,140

p95 latency

40ms

Error rate

0.3%

CPU avg

17%

requests · last 24h peak 1,100/h
-24h -12h now
top paths
  • GET /api/posts 1,240
  • GET / 880
  • POST /api/auth/login 410
  • GET /api/me 360

live logs

Tail it in real time.

Runtime logs stream into the same dashboard you deploy from, line by line as your app prints them. Open the tab and the last few minutes are already there, then it tails live. Logs are kept across deploys, so yesterday's bug is still readable today.

web-app · logs live
10:42:18 INF server listening on :3000
10:42:19 REQ GET /api/posts 200 · 14ms
10:42:19 REQ GET /api/me 200 · 6ms
10:42:20 INF cache miss for slug=hello-world
10:42:20 REQ POST /api/posts 201 · 41ms
10:42:21 WRN slow query detected · 320ms
10:42:21 REQ GET / 200 · 8ms
10:42:22 REQ GET /api/posts/42 200 · 11ms

one-click rollback

Shipped a bug?
Undo it.

Browse the full deploy history for any Frame. When a release goes sideways, click "Roll back" on the last good one. Traffic returns to it in seconds. No git surgery required.

web-app · deployments error
  • v1.4.2 commit c0ffeebee · main
    failed
  • v1.4.1 commit 4b2a91e · main
  • v1.4.0 commit ae31fa2 · main
  • v1.3.9 commit 9f8de31 · main

custom domains

Your domain. HTTPS handled.

Connect your domain in the dashboard, paste the hostname, hit save. We issue the TLS cert, keep it renewed, and route traffic. The whole thing takes a minute.

web-app · custom domain

Hostname

  • Domain connected
  • TLS certificate issued
  • Routing live traffic

teams

Bring the rest
of your team.

Invite people by email and set per-project roles: viewer, member, or admin. The owner keeps billing, so nobody gets a surprise.

  • Grant access per project. Pull it the second you need to.
  • Unaccepted invites expire on their own after 7 days.
Members · 4 Invite

Pending invitation

[email protected] Member

self-host with agents

Your hardware,
same dashboard.

Drop one binary on a Linux or macOS box and deploy Frames straight to your own servers. Point your wildcard domain at it and get TLS through ACME. Cloud Frames and self-hosted Frames live in the same console.

  • 01 Add an agent in settings and copy the token.
  • 02

    Run the one-line installer on your box.

    $ curl -fsSL https://dl.withnubo.com/nubo-agent/install.sh | bash
  • 03 Pick the agent as the deploy target on any Frame.
  • 04 Point your wildcard domain at it. TLS is handled through ACME.

agent live link · websocket

Nubo
dashboard
WE
web-app target: my-server-1
status stopped
  • · agent connected
  • · task dispatched
  • · logs streaming back
  • · rolled out
your server
my-server-1

nubo-agent

handshaking…
build 0%
  • · docker + caddy ready
  • · pulling git repo
  • · building image
  • · serving traffic

from your terminal

The terminal tool.
CLI and TUI.

Install with one curl ... | bash. Browse projects, frames, databases, volumes, and agents from your shell. Add --json to pipe it into scripts, or open the full-screen TUI to tail live logs.

$ curl -fsSL https://dl.withnubo.com/nubo-cli/install.sh | bash
nubo · acme / web / frames shuttle.withnubo.com
api app
web app
worker app

and the rest

  • Encrypted secrets

    API keys and credentials live in one place, encrypted at rest, injected at runtime.

  • Persistent volumes

    Attach storage up to 1TB that survives every deploy, rollback, and restart.

  • Automatic TLS

    Every URL is HTTPS. Certificates issue and renew themselves.

  • Custom domains

    Point your own domain at a Frame and we handle the certificate.

  • Environment variables

    Set per-Frame env vars in the dashboard. Change one, redeploy in seconds.

  • Regions

    Pick where a Frame runs so it sits closer to the people hitting it.

  • $9 to start

    $9 of monthly usage credit covers most side projects. No card for the 7-day trial.

pricing

Seven days free.
Then $9 a month.

Every month includes $9 of usage credit, enough to cover most side projects and prototypes end-to-end. Above that, you only pay metered rates for the vCPU, memory, and egress your Frames actually use.

nubo basic

$9 / seat / mo + usage

Free for 7 days. No card to start.

  • 7-day free trial, no card to start
  • $9 of usage credit included every month
  • Push-to-deploy from GitHub
  • Custom domains + TLS, real-time logs
  • Rollback, metrics, auto-scaling replicas
  • First self-host agent free

stop reading

Go deploy something.

Free for 7 days, no card, no sales call. We will not pretend this page wasn't built to make you want to ship on a Sunday. It was.