> ## 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.

# Release notes

<Update label="July 24th, 2026" tags={["Deployments", "Raypacks", "Pricing", "Bug-fixes", "Plans"]}>
  ## Email preferences, and a round of bug fixes

  <Frame>
    <img src="https://mintcdn.com/nuboinc/r57Rzj-c9fuaIJJ_/images/release-notes/07-24-2026/email_settings.png?fit=max&auto=format&n=r57Rzj-c9fuaIJJ_&q=85&s=d78855f284f14d8ab4afb178cf940a39" alt="Email settings" width="654" height="303" data-path="images/release-notes/07-24-2026/email_settings.png" />
  </Frame>

  This release adds customizable email preferences, alongside fixes for Raypacks targeting, studio pricing, and environment variables.

  ### Email preferences

  You can now customize which emails you get from Nubo, with the option to unsubscribe, right from your account settings.

  ### Bug fixes

  * Raypacks now target selected repositories.
  * Fixed inaccuracies with the studio pricing.
  * Fixed environment variables not being injected into Frame deployments.
  * Removed redundancies in the Frame spec.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="July 17th, 2026" tags={["UI", "Dashboard", "Frames", "Bug-fixes"]}>
  ## Project logs, a refreshed homepage, and reliability fixes

  <Frame>
    <img src="https://mintcdn.com/nuboinc/Ipai3slENBLIXJGg/images/release-notes/07-17-2026/project_logs.png?fit=max&auto=format&n=Ipai3slENBLIXJGg&q=85&s=09c8f3ac852ffb64e28315ac38cfc510" alt="logs page" width="1851" height="867" data-path="images/release-notes/07-17-2026/project_logs.png" />
  </Frame>

  This release brings a unified Project Logs page, a refreshed withnubo.com homepage, and a round of reliability fixes for the gateway and deployments.

  ### Project logs

  Search across every Frame and Space in your project from one place, no more digging through individual build or runtime logs.

  * Powerful filter bar lets you search by keyword, exact phrase, or regex.
  * Combine filters with AND / OR / NOT, and narrow by space, frame, status, log level, or time range.
  * Live-tail support so you can watch new log lines come in as they happen.
  * Instantly find every error, warning, or specific issue across your whole project, no matter which Frame it came from.

  ### Homepage update

  We refreshed the withnubo.com homepage with a new look, including an animated banner that shows off our different products, sections highlighting key features, and a live counter showing real deployments happening right now.

  ### Smaller things worth mentioning

  * **Gateway reliability**: Fixed a background issue that could affect how traffic is routed. The system now clearly signals if something goes wrong instead of failing silently, and brief network hiccups no longer disrupt service.
  * **Deployment reliability**: Fixed an issue where some deployments could get stuck due to resource limits, and a bug so existing deployments update correctly. Deployments now consistently use the right setup, and addresses stay stable even after redeploying.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="July 10th, 2026" tags={["UI", "Dashboard", "Frames", "Bug-fixes"]}>
  ## A design overhaul, public profiles, and searchable build logs

  <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/design.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=cd6d0c6c0d018e45041e64195ff026bf" alt="The redesigned Nubo interface" width="2032" height="1162" data-path="images/release-notes/07-10-2026/design.png" />

  Nubo has a brand-new, optimized look. We've refreshed the entire interface while preserving all the functionality and features you rely on. Alongside the redesign: public profiles and organizations, an improved Frame overview with searchable build logs, a customizable navigation bar, and a round of smaller fixes.

  ### Public profiles and organizations

  <Frame>
    <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/public%20profile.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=25d5025da1b36c3beb115d3d473d2fbe" alt="Public profiles" width="1325" height="894" data-path="images/release-notes/07-10-2026/public profile.png" />
  </Frame>

  We're introducing public profiles and organizations. Enable a public-facing profile from your Settings page, then toggle individual Frames to public visibility from that Frame's settings. Public Frames appear on your profile, which you can share via a link found in Settings. Our goal is to help you showcase your projects and share your work more easily with the world.

  <Columns cols={2}>
    <Frame>
      <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/orgs.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=c459f5915c5b8d665b22cf0926fdd1f1" alt="organizations" width="465" height="453" data-path="images/release-notes/07-10-2026/orgs.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/profile.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=bae325e58ef0edbc0305af7f788cefa3" alt="Profile overview" width="1657" height="642" data-path="images/release-notes/07-10-2026/profile.png" />
    </Frame>
  </Columns>

  ### Improved Frame overview and build logs

  We've changed the Frame management flow: rather than the sidebar widget, Frames now open in a pop-up window. We've also added new functionality to the Frame Logs tab. Logs now include a search bar above the log output, so you can search by keyword, timestamp, or date, and buttons below the search bar let you jump directly to specific keyword matches within the logs. We hope this makes troubleshooting faster and gives you clearer insight into what's changed.

  ### A new, customizable navigation bar

  <Columns cols={2}>
    To help streamline your workflow, you can now edit and manage which widgets appear in your navigation bar, as well as the order in which they're stacked.

    <Frame>
      <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/widget.gif?s=97a2b7d808bdbbc69955144f9004b213" alt="Widget demo" width="400" height="1026" data-path="images/release-notes/07-10-2026/widget.gif" />
    </Frame>
  </Columns>

  <Columns cols={2}>
    <Frame>
      <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/activity_widget.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=4288cce997aac13e48c6ed8987cf505b" alt="Activity widget" className="rounded-lg" noZoom width="198" height="118" data-path="images/release-notes/07-10-2026/activity_widget.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/shortcut_widget.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=e001bedd42bf0b3b9e08a8b4d227113d" alt="Recent widget" className="rounded-lg" noZoom width="198" height="151" data-path="images/release-notes/07-10-2026/shortcut_widget.png" />
    </Frame>
  </Columns>

  <Columns cols={2}>
    <Frame>
      <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/recent_widget.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=68bb908e9f69d7bad4d23fa86762cc9b" alt="Recent widget" className="rounded-lg" noZoom width="198" height="78" data-path="images/release-notes/07-10-2026/recent_widget.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/nuboinc/Qiw4LANiJJF10MV-/images/release-notes/07-10-2026/plan_widget.png?fit=max&auto=format&n=Qiw4LANiJJF10MV-&q=85&s=75d3b2e4f36963821c050f0a67f173a2" alt="Recent widget" className="rounded-lg" noZoom width="198" height="78" data-path="images/release-notes/07-10-2026/plan_widget.png" />
    </Frame>
  </Columns>

  ### Smaller things worth mentioning

  * **Docs cleanup pass**: Fixed a bunch of small inaccuracies across the docs (plans, API versions, previews, build logs, and more), removed some broken links/images, and added new pages for MCP server, Teams, Organizations, Account security, Metrics, and Studio.
  * **Frame resource migration, fixed**: A background fix that correctly applies the right CPU/memory limits to existing Frames based on your plan tier — no Frames were downgraded, and everything's now sized correctly.
  * **Preview builds, more reliable**: Fixed an issue where some preview deployments could get stuck or fail to load, and made sure previews now build with the correct builder (Raypacks or Paketo) to match your Frame's setup.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="July 3rd, 2026" tags={["MCP", "Plans", "Bug-fixes"]}>
  ## New: Nubo MCP Server Support

  Nubo now supports MCP, making it easy to connect your projects to AI assistants and other MCP-compatible clients. You can securely inspect, deploy, and manage your infrastructure using your existing Nubo account and permissions.

  Every MCP request is authenticated with your Nubo account and sent through the existing API, so your permissions, rate limits, role-based access control, and audit logs continue to work exactly as they do today.

  * Connect Nubo to any MCP-compatible client.
  * Use a local MCP server or connect through Nubo's hosted endpoint.
  * Authenticate with your existing Nubo account with no additional credentials required.
  * Grant clients only the permissions they need with scoped access: read, deploy, and write.
  * No separate backend or permission system; every request goes through Nubo's existing API.

  Start using AI to inspect, deploy, and manage your Nubo projects while keeping the same security model you're already familiar with.

  ### Getting Started

  There are two ways to get started with Nubo's MCP server: you can connect your MCP client, or run it locally instead.

  **Connecting your client (Claude Code)**

  If you're using Claude Code, you can connect your client by running:

  ```bash theme={null}
  claude mcp add --transport http nubo https://mcp.withnubo.com/mcp
  ```

  **Running it locally**

  You can also run it locally using the install command:

  ```bash theme={null}
  curl -fsSL https://dl.withnubo.com/nubo-mcp/install.sh | bash
  nubo-mcp login
  ```

  Then register the server with your client. For Claude Code:

  ```bash theme={null}
  claude mcp add nubo -- nubo-mcp stdio
  ```

  ## New pricing: more plans, more flexibility

  We've updated our pricing to give you more options depending on where you are and what you need. There's a new plan in the middle of the lineup, self-hosted agents get simple flat pricing, and a round of bug fixes rides along.

  ### Pick the plan that fits

  Plans now start at \$9 a month and come with \$9 of usage credit, so you only pay for what you actually use — no surprise bills, no paying for idle resources.

  * **Trial** — free for seven days, no card required.
  * **Basic** — \$9 per seat, includes \$9 of usage credit.
  * **Silver** — \$29 per seat, adds more headroom, storage, and support.
  * **Platinum** — \$59 per seat, for teams that need the most Nubo has to offer.

  Rather run it on your own hardware? **Self-hosted agents** are \$5 per agent per month and let you deploy through Nubo on your own infrastructure. See [Plans](/plans) for the full breakdown.

  ### Bug fixes

  * New Frames now use the correct builder on their first deploy.
  * A Frame's public URL stays stable across redeploys — no more random URL changes.
  * Preview deployments no longer time out due to server scheduling issues.
  * Preview builds now respect the Frame's selected builder instead of defaulting to Paketo.
  * Existing Frames now correctly reflect the resource limits for their plan tier.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="June 26th, 2026" tags={["Deployments", "Raypacks"]}>
  ## nubo.toml, the one config file Raypacks reads

  Raypacks works without any config for most apps. But when you need to step in and tell it something it can't figure out on its own, you can now drop a `nubo.toml` at the root of your repo and take control. Think of it as your single source of truth for how your app gets built.

  * **Pick a specific binary** when you have more than one. Set the entry point and Raypacks builds from exactly there.
  * **Don't need it? Don't add it.** Raypacks auto-detects most setups, so the file is completely optional.
  * **Bad config gets caught before the build starts**, so you'll see a clear error in your logs instead of a confusing failure ten minutes in.
  * **Every build shows a plan summary** of the final values and where each one came from, so there's no guessing what Raypacks decided.

  Best of all, `nubo.toml` acts like a blueprint for your project: a source of truth you scaffold once, then stand up your entire stack in minutes.

  ### Smaller things worth mentioning

  * The default builder is now Raypacks.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="June 19th, 2026" tags={["Deployments", "Analytics", "Support", "Raypacks", "Bug-fixes"]}>
  ## Deploy from a subdirectory, real request analytics, and a faster builder in beta

  This release brings subdirectory deploys for monorepos, per-Frame request analytics straight from our edge, in-app support tickets, and a new daemonless builder in beta. Plus a round of bug fixes.

  ### Deploy from a subdirectory

  Got a monorepo where your app lives in a subfolder instead of the root? Now you can set a **source directory** and Nubo builds from exactly that folder.

  * Set it when you first create a Frame.
  * Change it anytime in **Frame Settings**.
  * Works on managed cloud and on your own agents.

  ### Per-Frame request analytics

  You can now see real HTTP request traffic for each of your Frames, captured directly from Nubo's own edge, so what you're seeing is what's actually happening.

  * View volume, latency, status codes, and egress per Frame.
  * This isn't an estimate scraped from infrastructure metrics; it's real request traffic.

  Knowing how your app performs under live traffic is the difference between reacting to problems and preventing them. More depth is on the way, but the core picture is live now.

  ### In-app support tickets

  You can now open and view any support tickets you've opened, right from the dashboard.

  ### Beta: faster daemonless builds and layer cache

  You can now replace your Paketo / Cloud Native Buildpacks build path with **Raypacks**, a daemonless OCI buildpack system focused on speed and cache efficiency. This feature is still in beta, so we're testing for and addressing bugs as they appear.

  ### Bug fixes

  * Fixed a bug where you couldn't upgrade your account.
  * Fixed a bug where the repo picker would leak another tenant's repos to GitHub collaborators.
  * Fixed a bug where a Frame settings patch would overlay onto unrelated fields.
  * Fixed a bug where an "Invalid request body" error would pop up when submitting a form without first expanding the "General" FAQ dropdown.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="June 1st, 2026" tags={["Teams", "Security", "Databases", "Metrics", "Frames", "CI/CD", "Previews", "Dashboard"]}>
  ## Teams, a second factor for your account, more database engines, and metrics you can trust

  Big release this time. You can now invite people to work on your projects, lock down your account with multi-factor auth, run MySQL, MongoDB, or Redis right next to Postgres, and read a metrics page that finally tells you the truth about your apps. There's also a builder you can choose, deploys from any folder in your repo, and a stack of smaller fixes.

  ### Teams

  You don't have to share a login anymore. Spin up a team, invite people by email, and decide exactly what each person can touch.

  * Invite a teammate from the new **Teams** page. They get an email, click to accept, and they're in.
  * Grant access per project, with a role: **viewer** (look, don't touch), **member**, or **admin** (manage people and access).
  * You stay the owner. Projects, billing, and ownership don't move when you add people, so it's always clear who pays and who's in control.
  * Pull someone's access the second you need to. Unaccepted invites expire on their own after 7 days.

  ### Multi-factor authentication

  Add a second factor so a borrowed GitHub session isn't enough to get into your account.

  Turn it on in your account settings under **Two-factor authentication**. Your options:

  * An **authenticator app** (1Password, Google Authenticator, anything TOTP).
  * **Touch ID, Face ID, Windows Hello, or a hardware security key**, via passkeys.
  * **Recovery codes** for the day you lose your phone. Save them somewhere safe, and regenerate a fresh set whenever you want.

  With it on, signing in through GitHub drops you on a quick challenge screen before the dashboard loads. Setup takes about a minute.

  ### MySQL, MongoDB, and Redis

  Last time we said more database engines were on the way. Here they are. Pick your engine when you create a database:

  * **PostgreSQL** (16 or 15)
  * **MySQL** (8)
  * **MongoDB** (7 or 6)
  * **Redis** (7)

  The database's **Connect** panel shows the right details for whatever you picked: user, password, and database name where they apply, plus a ready-to-use connection string. Wiring it into an app works the same as before: point the app at the database and Nubo drops a `DATABASE_URL` in on the next deploy. See [Databases](/databases).

  ### A metrics page you can trust

  We rebuilt the Project **Metrics** page, and more to the point, we fixed what it was telling you.

  * **The numbers are right now.** The old page quietly left push-triggered deploys out of your counts and mis-averaged per-Frame usage. Both fixed, so deploy counts, success rates, and resource usage match what actually happened.
  * **New: network egress.** See how much data your apps are sending out, for the whole project and per Frame.
  * **An easier read.** A six-stat summary up top (CPU, memory, egress, deploys, success rate, deploy speed), a fleet-health bar, usage charts for the last 7 days, and a per-Frame table you can sort.
  * It all streams in with skeletons instead of staring at a blank page while it loads.

  ### Deploy from a subdirectory

  App lives in a subfolder of your repo? Set a **source directory** and Nubo builds from there instead of the root. Handy for monorepos.

  Set it when you first create a Frame (in the deploy wizard, quick create, or the new-Frame modal) and change it later in **Frame Settings**. Works on managed cloud and on your own agents.

  ### Choose your builder

  **Frame Settings** has a new **Builder** option:

  * **Paketo**: our default, Cloud Native Buildpacks.
  * **Raypacks (Beta)**: our own daemonless builder, built for faster builds. Still in beta, so expect the occasional rough edge.

  Pick it per Frame; it kicks in on your next deploy.

  ### Previews, now fully managed

  Preview deployments grew up. Switch them on in **Frame Settings** and every pull request gets its own running copy on an HTTPS `*.nubo.onl` subdomain. You control:

  * **What triggers one**: pull requests, branch pushes, or a branch allowlist.
  * **How long it sticks around** before idle cleanup (7 days by default).
  * **Per-preview env overrides**, so a preview can point at staging credentials.

  Nubo writes back to GitHub too, with commit status checks and a PR comment carrying the preview link. Close the PR and the preview tears itself down. See [Preview deployments](/preview-deployments).

  ### Emails got a redesign

  Our transactional emails (welcome, build and deploy failures, domain changes, support replies) now wear the Nubo look. Best part: when a build fails, the email shows the actual log inline with the errors highlighted, so you can usually spot what broke without opening the dashboard.

  ### Smaller things worth mentioning

  * **Storage now shows up on your billing page**, next to compute and egress, so nothing about your usage is hidden.
  * **Login and sign-up** moved to one tidy `/auth` page.
  * **Announcement banners** no longer run off the screen: long ones scroll inside the card while the header and dismiss button stay put.
  * The dashboard got a **consistency pass**, with shared components and a cleaner console look across pages.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="May 28th, 2026" tags={["Databases", "CLI"]}>
  ## Managed Postgres, and a CLI for your terminal

  Two things this time: you can spin up a managed Postgres database right next to your apps, and there's now an official command-line tool for checking on your account without opening the dashboard.

  ### Managed Postgres databases

  You don't have to run your own database anymore. Create a managed **Postgres** from a Project, pick a size, and Nubo hands you a connection string. It shows up alongside your apps as a Frame, so it starts, stops, and appears in your lists like everything else, and its data sticks around between deploys.

  Wiring it into an app is one step: point the database at the Frame that needs it and Nubo drops the connection string in as an environment variable (`DATABASE_URL` by default). Your app picks it up on its next deploy.

  More engines are on the way. For now it's Postgres, which covers most of what people reach for. See [Databases](/databases).

  ### A command-line tool

  There's now an official CLI. Install it with one line:

  ```bash theme={null}
  curl -fsSL https://dl.withnubo.com/nubo-cli/install.sh | bash
  ```

  Sign in with `nubo login`, then browse your projects, Frames, databases, volumes, and agents straight from the terminal, either with quick `ls` commands or a full-screen interactive view with live logs and metrics. Add `--json` to anything to pipe it into a script.

  This first version is read-only: it's for looking, scripting, and keeping an eye on things, not yet for deploying or editing. Those come next. See the [CLI guide](/cli).

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="May 20th, 2026" tags={["Volumes", "Plans", "Domains", "Frames", "Agents", "Dashboard"]}>
  ## Storage that sticks around, plans that fit, and a new home at console.withnubo.com

  A lot landed since last time. Frames now have storage that lives between deploys, Nubo has real plans you can pick from, custom domains spin up faster with a guided setup, and the dashboard has moved to a new home.

  ### The dashboard is now at console.withnubo.com

  The new address is **[console.withnubo.com](https://console.withnubo.com)**. The old one still works and forwards over, so your bookmarks aren't broken. Update them when you get a chance.

  ### Volumes

  Frames can now keep data between deploys. Attach a volume, give it a mount path, and your files are right there. Redeploy, rollback, restart, doesn't matter: the data stays put.

  Sizes go up to 1 TB. Each volume attaches to one Frame at a time. To move it to another Frame, detach it first. Spin one up from the new **Volumes** page on any Project, or from **Quick actions** in the sidebar.

  Billing runs by the hour for every volume you've provisioned, whether or not it's attached. Detaching doesn't stop the meter. Delete the volume to stop it.

  ### Pick a plan that fits

  Nubo now has plans. Every new account starts on a **7-day Trial** on us, so you can build something real before you commit. The Trial runs at trial-level compute (about half of Basic).

  * **Basic**: side projects and smaller apps.
  * **Platinum**: bigger Frames, faster builds, more storage.

  You can pick, change, or cancel a plan any time from the new **Billing** page in your account settings. It's also where you'll find invoices, payment methods, and a running view of your usage.

  If a card fails, your Frames keep running for a 7-day grace period while we try again. Sort it out and you're back to normal automatically. No surprises.

  ### Custom domains, set up in a minute

  Adding a custom domain is now a 4-step wizard inside your Frame's settings. Type the hostname, copy the DNS record we give you, and we issue your certificate while you watch. Most domains go live in under a minute. HTTPS is on by default.

  ### Edit a Frame's port

  Switched the port your app listens on? Open Settings, change the number, save. We roll the Frame for you. No more deleting and recreating just because of a port.

  ### Cleaner Frame settings

  The Frame's **Settings** tab got a real rework. Everything sits in clear sections (General, Source, Runtime, Environment variables, Custom domains, Danger zone), with a sticky save bar so you always know if you have unsaved changes. Environment variables now have a reveal toggle, and the Danger zone actually looks like one.

  ### Agents, smoother all around

  Running your own servers? A few things got nicer:

  * A new **Agents** page lists every server you've registered, with live status.
  * Registering a new agent walks you through the install command and shows your token once, with a copy button.
  * When you create a Frame, you now explicitly pick **Nubo Cloud** or one of your agents as the deploy target.
  * Delete an agent straight from the row, no extra clicks.

  The agents list also moved into your account settings where it belongs.

  ### Logs that load instantly

  Open a Frame's Logs tab and you'll see the last few minutes of output right away, before the live tail kicks in. No more empty pane waiting for the next line.

  ### In-app announcements

  We can now post short updates directly inside the dashboard so you don't have to hunt down release notes to know what's new. Dismiss any one you've already read, and replay them later from your settings if you want.

  ### A fresh login page

  The login screen got a new look with our logo in 3D. There's a small easter egg hidden in there too. Have a click around.

  ### Smaller things worth mentioning

  * Stopped Frames no longer get counted as broken on your dashboard.
  * Runtime logs no longer duplicate themselves when reconnecting.
  * The New Frame modal has a clearer source-and-target flow.
  * New Spaces get a friendly random name instead of "Default" every time.
  * Settings pages are grouped into Account, Developer, and Preferences so they're easier to scan.

  ### On the security side

  GitHub tokens are now encrypted at rest, customer Frames run with tighter sandboxing, and we tightened up a handful of permission checks across the API. Nothing you'll notice day to day. All things worth doing.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="May 9th, 2026" tags={["Agents", "CI/CD", "Previews", "Deployments", "Frames", "Metrics", "Notifications", "Dashboard"]}>
  ## Bring your own servers, push to deploy, see what's actually happening, and keep your streak alive

  Big one. Self-hosted Agents let you run Frames on your own servers. The managed platform gets push-to-deploy from GitHub, preview URLs for every pull request, one-click rollback, and status that updates the moment something changes. There's a new metrics tab on every Project, a streak counter in the sidebar, transactional email for the things you'd want to know about, and a sidebar that gets out of your way. No YAML, no runners.

  ### Introducing self-hosted Agents

  If you want to run on specific hardware, keep data on-premise, or use a server you already own, install the [Nubo Agent](/agents/overview) on Linux or macOS. Deploy Frames to it from the same dashboard you'd use for our managed cloud.

  The agent is a single binary that connects back to Nubo and waits for work. Install it, point wildcard DNS at your server, and you're set. Your Frames get their own subdomain on a domain you control, with TLS via ACME.

  Everything else in this release works the same on self-hosted Agents as on managed Frames: push-to-deploy, preview deployments, live status, deploy history, one-click rollback, environment variables, custom domains.

  See the [Agents overview](/agents/overview) for when to use one, or [Quickstart](/agents/quickstart) to install your first agent.

  ### Push to deploy

  Install the [Nubo GitHub App](https://github.com/apps/nubo-application) on your repo. Every push to your Frame's tracked branch triggers a build and release.

  Three knobs if you need more control:

  * `[skip ci]` or `[ci skip]` in a commit message skips that push.
  * **Ignored paths** (e.g. `docs/**`, `*.md`) skip builds when only matching files changed. Useful in monorepos or for docs-only commits.
  * **Auto-deploy** can be toggled off if you'd rather trigger builds manually.

  It all lives on the Frame's new **CI/CD** tab. See [CI/CD](/ci-cd).

  ### Personal access tokens for scripted clients

  Anything automated that talks to Nubo (CI runners, deploy bots, your own scripts) should now use a **personal access token** instead of your login session. Create one in **Settings → Developer tokens**, give it a name and an optional expiration, and send it as `Authorization: Bearer nubo_pat_...`.

  You see the token exactly once at creation. We store it as a hash, never in plaintext, and you can revoke it instantly from the same page. Give each integration its own token so a leak or a team change only affects that scope. See [API authentication](/api-reference/authentication).

  ### Date-based API versioning

  Pin your API client to a specific contract with the `Nubo-Version` header:

  ```
  Nubo-Version: 2026-05-24
  ```

  * **Most releases ship under the same date.** Bug fixes, new endpoints, and tuning don't move your pin. A new version is only cut when a change would actually break existing clients (field removed, type changed, validation tightened).
  * **Unpinned clients get the oldest supported version**, so a new version never silently upgrades your integration.
  * **Responses include a `Nubo-Build` header** naming the exact build that served them, useful for confirming what your client actually got.
  * **Old versions overlap new ones** for at least one release cycle before being retired.

  Production integrations should pin. Scripts and one-offs can skip the header and ride the default. See [Stability policy](/api-reference/stability) for the full rules, and [Authentication](/api-reference/authentication) for where it fits in a request.

  ### Preview deployments for every PR

  Every pull request against your tracked branch now gets its own running copy of the app at a Nubo-assigned URL. Share it with teammates, click around, show a customer what's coming. What they see is what will ship.

  Previews rebuild on every push to the PR and tear themselves down when the PR closes. Project-scoped [environment variables](/environment-variables) carry over, so your secrets and config keep working. See [Preview deployments](/preview-deployments).

  ### One-click rollback

  Shipped a bad commit? Open the Deployments tab, pick a previous working deploy, hit **Rollback**. Your Frame is back on that version in seconds, no rebuild. Same on managed cloud and self-hosted Agents. See [Rollback](/rollback).

  ### Cancel a deploy in progress

  Pushed the wrong commit, or watching a doomed build run to the end? Hit **Cancel** on a still-building deploy and Nubo stops it. Your Frame stays on whatever was already running, so there's no harm in pulling the cord. See [Cancel a deploy](/deployments#cancel-a-deploy-in-progress).

  ### Stop and start a Frame

  Hit **Stop** to take a Frame offline: replicas scale to zero on our cloud, the container stops on a self-hosted agent. Hit **Start** to bring it back. Config, deploy history, and domains stay where they were. See [Stop and start a Frame](/frames#stop-and-start-a-frame).

  ### Live Frame status

  Your Frame's status updates in the dashboard the moment it changes. No refresh, no polling. If an app crashes, runs out of memory, or fails its health check, the dashboard flips to an error state and shows the reason. You shouldn't have to read logs to find out something's wrong.

  ### A real deploy history

  Every build is now a record you can browse. Open the Frame's **Deployments** tab to see the commit, the time, what triggered the deploy, and whether it succeeded. Pull the same data programmatically:

  ```bash theme={null}
  curl "https://shuttle.withnubo.com/v2/projects/<p>/spaces/<s>/frames/<f>/deployments?limit=20" \
    -H "Authorization: Bearer <your-token>"
  ```

  ### Build logs, captured on every build

  Every build's full output is captured the moment the build finishes, success or failure. Build logs are kept for 7 days. The latest deploy of each Frame is kept on top of that, so you'll always have the most recent log even if older ones have aged out. Past 30 days, we return an "expired" signal so you can tell aged-out logs from a real fetch error.

  ### Live runtime logs

  The Frame's Logs tab now streams live lines from your running app, not just build output. Open the tab while a Frame is online and you'll see what your code is printing right now, with no refresh and no log file path to remember. Multiple tabs subscribed to the same Frame all see the same stream, and the line ordering matches what your app actually emitted.

  ### Custom domains for any Frame

  Bring your own hostname. Add a custom domain from the Frame's Domains tab, point your CNAME or A record at the value Nubo gives you, and we handle TLS. Domains are managed per Frame, so the same Project can serve `app.example.com` from production and `staging.example.com` from your staging Space. Works the same on self-hosted Agents under your wildcard. See [Custom domains](/custom-domains).

  ### Auto-pause for crashlooping Frames

  If a Frame crashes or runs out of memory five times in a row, or stays stuck pulling its image for more than three minutes, Nubo scales it to zero and shows a `backoff_tripped` reason on the status. The next push (or a manual Deploy) scales it back up, so a fresh image clears the trip. The platform takes a stuck Frame out of the loop until you ship a fix.

  ### A metrics tab for every Project

  Open any Project and there's a new **Metrics** tab in the header. It answers the "how is this thing actually doing?" question:

  * **Health at a glance**: total Frames, how many are online, how many need attention.
  * **CPU and memory**: the last 7 days as area charts.
  * **Build performance**: p50, p95, and average build time over the last 14 days, so you can spot when builds start creeping up.
  * **Per-Frame breakdown**: replicas, domains, deploy count, failure count, mean time to recover from a bad deploy, and the time of the last deploy. Sortable by any column.
  * **A 14-day deploy bar chart** with success and failure layered, so flaky runs stick out.

  The Project page gets a compact preview of the metrics under the architecture, so you can take the temperature without switching tabs.

  ### Build a streak

  The sidebar has a new activity widget at the bottom. It tracks how many days in a row you've shipped something and rewards you with milestones as you climb:

  * **3 days**: heating up
  * **7 days**: on fire
  * **14 days**: blazing
  * **30 days**: diamond
  * **50 days**: legend
  * **100 days**: GOAT

  Each tier recolors the streak counter, the bars under it, and a glowing under-bar that fuses your streak together. We will not pretend this isn't designed to make you want to deploy on a Sunday. It is.

  Below the streak there's a 60-day bar chart of your daily deploys so you can see the pattern of your work over a couple of months.

  ### Email notifications

  We now send transactional emails for the things you actually want to know about:

  * **Welcome** when you sign up.
  * **Replies on your support tickets**, and a heads-up to our team when you open one.
  * **Account state** changes (suspended, reinstated).
  * **Build or deploy failures** on your Frames, with the last 30 lines of the build log right in the email so you don't have to log in to see what blew up.
  * **Custom domains** when they're connected or removed.

  You can reply to any of them and reach a human at `support@withnubo.com`.

  ### Frame controls in the sidebar

  Click any Frame and you'll see a new control strip at the top of the sidebar:

  * **Redeploy**: kick a fresh deploy from the latest commit on the tracked branch.
  * **Stop / Start**: toggle replicas to zero and back without leaving the page.
  * **Open**: jump straight to the Frame's primary domain.

  No more bouncing through Settings to do a redeploy.

  ### Pull from your organization repos

  If you installed the Nubo GitHub App on an organization but only saw your personal repos when creating a Frame, that's fixed. The repo picker now spans every installation you have access to on GitHub: personal account first, then each org you belong to. Repos with the same name across different owners are now keyed by full path, so no more collisions.

  ### A sidebar that gets out of your way

  Hit the new chevron in the sidebar header to collapse it to a thin icon-only strip. Each Project shows up as a colored tile with its initials, so you can still pick one without expanding. The notification ping moves onto your avatar at the bottom-left. Click the avatar for a small Profile / Sign out menu, in either state.

  ### A visual refresh

  The architecture canvas, Frame tiles, Frame sidebar, and metrics view now share the same console-style look as the home dashboard: flat surfaces, mono captions, clean status pills. No more status-tinted gradient backgrounds. Status lives in a small dot and a label, so failed Frames stay easy to spot without painting half the sidebar red.

  ### Other fixes

  * The "New Frame" repo picker no longer flickers and re-fetches every 15 seconds while it's open.
  * The Frame status dot now correctly shows red for `failed` Frames (was reading as the neutral "unknown" color).
  * Deploy timestamps in the metrics view render as readable dates instead of "Invalid Date".
  * The architecture canvas is now bounded in height and scrolls inside its own box, so a project with many Frames doesn't push everything else off the page.
  * Build logs panel is capped at a sensible height so a chatty deploy doesn't make the sidebar run the full viewport.
  * Updating a Frame's settings no longer affects unrelated fields.
  * Fetching a single Frame via the API now works correctly under the full path.

  Questions or feedback: `support@withnubo.com` or [Discord](https://discord.com/invite/4SM4faYqWQ).
</Update>

<Update label="March 17th, 2026" tags={["Dashboard"]}>
  ## Major system changes

  You may notice that Nubo feels faster and performs more reliably. This is because we have been making some significant changes under the hood. At its core, we have chosen to do the infamous Rust rewrite.

  Over the past few months, we have been slowly adopting and rewriting critical systems in the Rust programming language. Rust is known for its memory safety and great performance. This is in an effort to make Nubo perform more faster and consistently.

  ## Other fixes

  We have been working hard with squashing bugs and making other smaller improvements. Below is a list of some of those fixes:

  * We fixed an issue with querying user repositories
  * An issue that caused 500 errors to display for deprecated Projects
  * Space deletion is now working properly

  ### Conclusion

  That's a wrap for this release notes. We hope you enjoyed these new updates. If you have any feedback, feel free to email us at `support@withnubo.com` or join our [Discord](https://discord.com/invite/4SM4faYqWQ)
</Update>

<Update label="February 24th, 2026" tags={["Dashboard", "Design"]}>
  ## Experience Nubo in light mode

  ### A brighter and more customizable dashboard

  We are excited to introduce a new variation of our dashboard – Light Mode! This new option offers a cleaner, brighter viewing experience for those who prefer it, while also improving accessibility. We hope that this will offer a more personalized experience while using Nubo; enabling users to more confidently release software.

  ### Conclusion

  That's a wrap for this release notes. We hope you enjoyed these new updates. If you have any feedback, feel free to email us at `support@withnubo.com` or join our [Discord](https://discord.com/invite/4SM4faYqWQ)
</Update>

<Update label="January 7th, 2026" tags={["Dashboard"]}>
  ## January 7th, 2026

  <Frame>
    <img src="https://mintcdn.com/nuboinc/B4HqwXqIUzxC4Kv5/images/release-notes/01-07-2026/new_dashboard_look.png?fit=max&auto=format&n=B4HqwXqIUzxC4Kv5&q=85&s=9329fbfa786cb72541cff3fe17aaf7ce" alt="New dashboard look" width="2998" height="1860" data-path="images/release-notes/01-07-2026/new_dashboard_look.png" />
  </Frame>

  ### UI/UX Improvements

  **Project Table Display**

  <Frame>
    <img src="https://mintcdn.com/nuboinc/B4HqwXqIUzxC4Kv5/images/release-notes/01-07-2026/project_table.png?fit=max&auto=format&n=B4HqwXqIUzxC4Kv5&q=85&s=0e145d8a8c127da6a6c2902c0c8cb197" alt="Project homepage table" width="2368" height="1102" data-path="images/release-notes/01-07-2026/project_table.png" />
  </Frame>

  Your projects are now displayed in a table on the homepage. This is in the spirit of making the dashboard more visually appealing and understandable.

  **Other Minor Improvements**

  We are always looking for ways to make our users experience with Nubo to be not only easy but memorable. Which is why we are dedicated to making our interface as visually pleasing as possible. We have made several minor typography, color, and hierarchical changes around the dashboard.

  ### Connection reliability

  The reliability of our product is priority number one. We put in hard work to ensure that the connection between the frontend and backend stays strong to ensure that our users have little issues with connection.

  ### Other updates

  * Fixed cursor inconsistencies
  * Bugs with invalid .env file upload
  * Text size adjustments on larger screens

  ### Conclusion

  That's a wrap for this release notes. We hope that you enjoy these new updates. If you have any feedback, feel free to email us at `support@withnubo.com` or join our [Discord](https://discord.com/invite/4SM4faYqWQ)
</Update>

<Update label="January 1st, 2026" tags={["Dashboard"]}>
  ## Status popups, Env file uploads, and Design changes

  ### Real-time status popups

  <Frame>
    <img src="https://mintcdn.com/nuboinc/VkcFTKNpaFc_yXw4/images/release-notes/01-02-2026/status_toast.png?fit=max&auto=format&n=VkcFTKNpaFc_yXw4&q=85&s=671f1e8cfb0e8180d1bd023977081ffd" alt="Status popup messages" width="434" height="117" data-path="images/release-notes/01-02-2026/status_toast.png" />
  </Frame>

  Nubo is more reactive than ever before. Get real-time updates on the status of Projects and Frame deployments. If issues occur, you will be notified. Simply click the message to bring you directly to the associated resource.

  ### Upload environment variables (`.env`)

  <Frame>
    <img src="https://mintcdn.com/nuboinc/VkcFTKNpaFc_yXw4/images/release-notes/01-02-2026/env_file_upload.png?fit=max&auto=format&n=VkcFTKNpaFc_yXw4&q=85&s=34568dd2c5e20593bc49b8a8c23df988" alt="ENV file upload" width="717" height="416" data-path="images/release-notes/01-02-2026/env_file_upload.png" />
  </Frame>

  You may now import environment variables directly from a `.env` file. Simply select the "Import variables" button in the Frame's settings.

  ### Design changes

  <Frame>
    <img src="https://mintcdn.com/nuboinc/VkcFTKNpaFc_yXw4/images/release-notes/01-02-2026/auth_routes.png?fit=max&auto=format&n=VkcFTKNpaFc_yXw4&q=85&s=feea08c371100056fa8eca3ee109d9f5" alt="New authentication routes design" width="1920" height="989" data-path="images/release-notes/01-02-2026/auth_routes.png" />
  </Frame>

  Consistency is key when communicating. Hence, we have updated our designs to the authentication routes to be more in line with our current branding and stylization.

  ### Other updates

  * We have made performance and organization improvements to the Project's Architecture. Things should feel a bit more smooth.

  ### Conclusion

  That's a wrap for this release notes. We hope that you enjoy these new updates. If you have any feedback feel free to email us at `support@withnubo.com` or join our [Discord](https://discord.com/invite/4SM4faYqWQ)
</Update>

<Update label="October 29th, 2025" tags={["Dashboard"]}>
  ## Architecture, Nubo status embed, and other minor fixes

  ### Architecture

  <Frame>
    <img src="https://mintcdn.com/nuboinc/9htY23QUlCz0kI3J/images/release-notes/10-29-2025/architecture.png?fit=max&auto=format&n=9htY23QUlCz0kI3J&q=85&s=1e0eb2c45d15736caee3b90b53b0242a" alt="Frame architecture" width="2988" height="1860" data-path="images/release-notes/10-29-2025/architecture.png" />
  </Frame>

  Visualize your Frames in a whole new way with our new Architecture. Designed to feel like a canvas, it nicely shows the status of your Space at a glance. See Frame statuses, languages, and the latest deployment triggers.

  Frames are displayed in a dynamic grid that can be moved around to your liking.

  ### Other updates

  * Added a toast message that syncs with our Status Page for alerting
  * Fixed log duplication issues
  * Added a better Frame display and settings on mobile

  ### Conclusion

  That's a wrap for this release notes. We hope that you enjoy these new updates. If you have any feedback feel free to email us at `support@withnubo.com` or join our [Discord](https://discord.com/invite/4SM4faYqWQ)
</Update>

<Update label="October 20th, 2025" tags={["Dashboard"]}>
  ## Mobile, docs, and design updates

  ### Mobile improvements

  We have spent the majority of the last few weeks making many improvements to the dashboard on mobile screens. We still have some more work to do. For now, the experience on mobile has been substantially improved.

  ### Design updates

  We have also made some design changes to our sidebar. Including color, sizing, and layout changes.

  ### Documentation

  Finally, we have added Golang docs and language tutorials to our documentation in order to help beginners.

  ### Conclusion

  That's a wrap for this release notes. We hope that you enjoy these new updates. If you have any feedback feel free to email us at `support@withnubo.com` or join our [Discord](https://discord.com/invite/4SM4faYqWQ)
</Update>

<Update label="October 6th, 2025" tags={["Company", "Dashboard"]}>
  ## New landing page, docs, blog, and status page

  Woah, that's a pretty big update. Yeah, we have been hard at work making Nubo a more suitable environment for launching the best software products.

  Let's break down these changes:

  ### A fresh new landing page

  <Frame>
    <img src="https://mintcdn.com/nuboinc/aXIZeM3n_tMN5VGB/images/release-notes/10-06-2025/new-landing-page.png?fit=max&auto=format&n=aXIZeM3n_tMN5VGB&q=85&s=2d0a486189f07605b4efe34948b6b9db" alt="New landing page" width="1898" height="1033" data-path="images/release-notes/10-06-2025/new-landing-page.png" />
  </Frame>

  Ooooh, wowww. What a clean and sharp new design. It nicely demonstrates the steps in getting a product launched with each tabs! These tabs visually show each step by using gifs.

  ### Documentation

  Writing documentation is always so much fun! Will many read it, probably not. But hey, at least it's here. We have created guides for each language and framework that we support.

  We will be expanding and adjusting the documentation as needed. The docs are available now on the site that you are currently on. Simply click "Documentation" at the top left.

  If you notice any issues or want to contribute. Submit a pull request on our [GitHub repository](https://github.com/withnubo/documentation).

  ### Is it down or just me?

  Stay up to date on the status of Nubo with our brand new [status page](https://withnubo.statuspage.io/). There's not really much more to discuss about this.

  ### Configure your projects and your profile

  We have also shipped new Project settings and User settings pages.

  #### Project settings

  <Frame>
    <img src="https://mintcdn.com/nuboinc/aXIZeM3n_tMN5VGB/images/release-notes/10-06-2025/project-settings.png?fit=max&auto=format&n=aXIZeM3n_tMN5VGB&q=85&s=8bdb27d7c087d5d7ac3e45a87f4eb551" alt="Project settings" width="1365" height="382" data-path="images/release-notes/10-06-2025/project-settings.png" />
  </Frame>

  Project settings lets you configure the following:

  * Project metadata (name and description)
  * Spaces (create, edit, and delete)
  * Danger actions (deleting project)

  You can access the project settings now by clicking the gear icon at the top right when viewing a project.

  #### User settings

  User settings lets you configure the following:

  * First and last name
  * Company

  This is available now by clicking your account tag (@myusername) at the bottom left in the dashboard.

  ### Other additions and fixes

  * The dashboard is now slightly more responsive (still have some work to do)
  * Made some UI/UX changes to the sidebar
  * Added a new snazzy new dropdown for selecting a Space
  * Added better page titles
  * Fixed other UI inconsistencies

  ### Conclusion

  That's a wrap for this release notes. We hope that you enjoy these new additions. If you have any feedback feel free to email us at `support@withnubo.com` or join our [Discord](https://discord.com/invite/4SM4faYqWQ)
</Update>
