DocsPricingBlogChangelog
Sign inStart free
All systems operational
Product
  • Dashboard
  • Documentation
  • Pricing
  • Changelog
Company
  • Blog
  • Why Suga
  • Brand Assets
  • Support
Legal
  • Privacy Policy
  • Terms of Service
  • Acceptable Use
© 2026 Nitric Inc.
DiscordXLinkedIn
Changelog

What we shipped.

The latest updates, improvements, and fixes to Suga.

All UpdatesFeatureImprovementFixAdjustment
RSS Feed
May 18, 2026
May 18, 2026

Undo a typo, not the canvas

Hitting `ctrl+z` while typing in a sheet used to undo your last canvas edit instead of fixing your typo. Same story for redo and a handful of other shortcuts that fired when you didn't mean them to. Canvas shortcuts now stay out of the way while you're typing.

Apr 22, 2026
Apr 22, 2026

Empty repo imports

If you tried to import a repo you'd just pushed commits to, you might have seen it show up as "empty" and refuse to import, leaving you stuck with no obvious way forward. Fixed now.

Worth sharing the lesson: the GitHub API exposes a `size` field on each repo, and `size === 0` is a tempting shortcut for detecting empty ones. It isn't reliable. That field is updated by a background job on GitHub's side that can lag by up to an hour, so a repo you just pushed to can still report zero size well after the fact. We now detect empties at the branch-fetch stage instead: no branches, no commits, nothing to import. Repos with actual content sail through, regardless of what `size` claims.

Apr 16, 2026
Apr 16, 2026

Build log fixes

If you noticed your build log freezing mid-build, that wasn't you. Fixed now, along with a couple of related quirks.

  • Logs will reliably stream live as the build runs.
  • Logs consistently show up on completed builds too, not just in-progress ones.
  • If your connection drops mid-build, it reconnects and picks up where it left off.

Apr 13, 2026
Apr 13, 2026

UX fixes and polish

Handful of UI improvements:

  • The "enable Suga domain" option was hard to find and didn't prefill the port. It's now a clickable card with a default port.
  • We've improved the consistency of styling (borders, radius, etc.) for UI elements, such as inputs, selects, and autocompletes.
  • Services no longer require a private port. Public ports are automatic, so leaving private ports empty is fine.
  • Container errors in deployment logs now link to explanations, instead of just expanding the log line.

Apr 2, 2026
Apr 2, 2026

Canvas node positioning and selection fixes

A round of fixes to how nodes behave on the deployment canvas:

  • Services no longer appear behind the config panel when added to the canvas. Centering now accounts for the side panel width.
  • Adding a new service opens the config tab automatically. Switching between existing services preserves whichever tab you were on.
  • Unmounting a volume no longer sends it off screen. Detached volumes now reposition next to their parent node.
  • Undo after deleting a node restores it to its original position on the canvas.
Mar 20, 2026
Mar 20, 2026

Variable masking improvement

Switched environment variable masking from native input type toggling to CSS-based masking. This fixes cross-browser inconsistencies where some browsers would offer to save masked values as passwords or interfere with copy/paste behavior.

Feb 9, 2026
Feb 9, 2026

Canvas viewport improvements

Fixed several canvas viewport issues:

  • New nodes now center correctly in the viewport regardless of sidebar state
  • Fixed offset calculation when the sidebar is open, so nodes don't appear shifted
  • Volume deletion no longer causes sync issues that could desync the canvas state
Jan 19, 2026
Jan 19, 2026

Resource name validation

Resource names are now validated before deployment to catch naming issues early. Previously, invalid names (too long, unsupported characters) would only fail at deployment with cryptic error messages. Now you get clear feedback in the UI before you deploy.

Dec 30, 2025
Dec 30, 2025

Google Translate compatibility

We fixed several issues where Google Translate broke the Suga dashboard for users with auto-translate enabled in their browser.

The problem#

Google Translate works by walking the DOM and replacing `TextNode` elements with `<font>` elements containing the translated text. This is fundamentally incompatible with React, which maintains references to the original DOM nodes. When React tries to update or remove a node that Google Translate already replaced, two things happen:

  1. Stale content: React updates its reference to the old `TextNode`, but that node is no longer in the DOM. The translated `<font>` element stays unchanged, so dynamic content like form values and status indicators stop updating.
  2. Crashes: When React tries to call `removeChild` on a node that Google Translate already removed, it throws a `NotFoundError` that can crash the entire component tree.

Martijn Hols wrote an excellent deep dive on this exact issue, which informed our approach.

Our fix#

We took two approaches:

  1. `translate="no"` attributes on interactive elements and dynamic content: dialog inputs, endpoint URLs, form fields, and status text that updates in real-time. This tells Google Translate to leave those nodes alone while still translating static UI labels and descriptions.

  2. Wrapping conditional `TextNode`s in `<span>` elements. When React conditionally renders a text node (e.g., `{isLoading ? "Loading..." : "Done"}`), Google Translate can replace the bare `TextNode` before React swaps it out, causing the `removeChild` crash. Wrapping these in a `<span>` gives React a stable parent element to work with, which solved a large chunk of the crashes.

This is not a perfect solution (as the blog post explains, there is no complete fix for this incompatibility), but it protects the critical paths where stale or broken content would cause real problems.

Dec 15, 2025
Dec 15, 2025

Deployment stream reliability

Fixed an issue where long-running deployments could time out and lose their connection to the deployment stream. Deployments now maintain a stable connection throughout the entire rollout process, so you always see the final result.