Nubo

web apps & apis

Bring your framework. We bring everything else.

Node, Python, Go, Ruby, anything that fits in a container. You get a public URL on your domain with TLS handled, logs you can tail, replicas that grow with traffic, and a rollback button when a release goes sideways.

raypacks · auto-detected stacks · or your own dockerfile

If it runs in a container, it runs on Nubo.

Builds run through Raypacks, our own buildpacks, so the common stacks auto-detect from your repo. Need something else? Drop in a Dockerfile and we'll run that instead.

runtimes · auto-detected

frameworks

  • React
  • Next.js
  • Remix
  • SvelteKit
  • Nuxt
  • Astro
  • Express
  • Django
  • FastAPI
  • Flask
  • Rails
  • ASP.NET Core
  • Laravel

Wired in, day one. The stuff you'd otherwise build into a server.

Nubo handles the nginx config, the certbot cron, and the log shipper for you. You write the app; we run the layer between your laptop and the public URL.

  • Custom domain + TLS · Connect your domain, type the hostname, click save. We issue the cert and renew it.
  • Real-time logs · Every request, every console.log, every error, streamed into the dashboard you deploy from.
  • One-click rollback · Every deploy is saved. Bad release? Roll back to the last good one in seconds.
  • Secrets & env vars · Encrypted at rest, scoped per Frame, never checked into your repo.

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

A live URL for every pull request.

Open a PR, get a Frame with its own URL. Share it with design, QA, or your boss before anything ships to production. Closed and merged PRs clean themselves up.

github · pull request #142

Add Stripe checkout webhook

@gabriel wants to merge into main

Nubo / checkout preview ready
pr-142-checkout.frames.nubo.app
built 14s · auto-expires on merge
  • 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.
  • 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.

Scales as the traffic does.

Set a min and max on replicas and Nubo Cloud scales between them as your app gets busier. Pick a region close to your users, or run in two when one isn't enough.

checkout / production us-east-01

replicas

3 / 10

rps

428

p95

38ms

load · last 5 minutes scaled to 3 replicas at 14:42

Plays well with the rest of your stack.

Connect to managed Postgres, Redis, or any external API the same way you would on a server. Drop the URL into secrets and ship.

env / production checkout · 4 keys
  • DATABASE_URL =
  • REDIS_URL =
  • STRIPE_SECRET_KEY =
  • SENTRY_DSN =

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.