<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://docs.computesphere.com/changelog</id>
    <title>ComputeSphere Docs Blog</title>
    <updated>2026-05-29T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://docs.computesphere.com/changelog"/>
    <subtitle>ComputeSphere Docs Blog</subtitle>
    <icon>https://docs.computesphere.com/https://computesphere.publicusercontent.com/brand-assets/computesphere-favicon.png</icon>
    <entry>
        <title type="html"><![CDATA[Documentation reorganized around tasks]]></title>
        <id>https://docs.computesphere.com/changelog/single-sidebar-docs</id>
        <link href="https://docs.computesphere.com/changelog/single-sidebar-docs"/>
        <updated>2026-05-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[One sidebar, fourteen sections, organized around what you're trying to do — deploy a service, manage data, expose a domain, watch logs. Replaces the previous tab-strip of six sections.]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-emerald-50 text-emerald-800 ring-emerald-200 dark:bg-emerald-950/40 dark:text-emerald-200 dark:ring-emerald-900/50">Improved</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">Docs</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">May 29, 2026</time><span class="sr-only"></span></div>
<p>One sidebar, fourteen sections, organized around what you're trying to do — deploy a service, manage data, expose a domain, watch logs. Replaces the previous tab-strip of six sections.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-changed">What changed<a href="https://docs.computesphere.com/changelog/single-sidebar-docs#what-changed" class="hash-link" aria-label="Direct link to What changed" title="Direct link to What changed">​</a></h2>
<p>The docs site used to split navigation across six top-level tabs (Getting Started, Features, Console, Platform, Support, References). You'd jump between sidebars depending on which tab you landed on, and a single feature could appear in two places with subtly different content.</p>
<p>Now there's one sidebar that travels with you everywhere on <a href="https://docs.computesphere.com/docs/getting-started" target="_blank" rel="noopener noreferrer">docs.computesphere.com</a>. Top-level sections track the customer journey:</p>
<ul>
<li><strong>Introduction</strong> — welcome, quickstart, concepts, API keys</li>
<li><strong>Deployments</strong> — full lifecycle, environments, health checks</li>
<li><strong>Datastores</strong> — Postgres, Valkey, MySQL, RabbitMQ</li>
<li><strong>Storage</strong> — persistent disks, SphereStor, SphereFiles</li>
<li><strong>Networking, Scaling, Observability, Integrations</strong> — task-grouped</li>
<li><strong>Console, CLI, Platform, API errors, Support</strong> — reference</li>
</ul>
<p>URLs didn't change. Bookmarks and AI-agent links keep working.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/single-sidebar-docs#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p>Premium dev-tool docs (Render, Vercel, Linear) all use a single task-first sidebar. We've followed suit. Skimming for "how do I add a custom domain?" should not require knowing which tab the author filed it under.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="improved" term="improved"/>
        <category label="docs" term="docs"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Every API error has a docs page]]></title>
        <id>https://docs.computesphere.com/changelog/api-errors-catalog</id>
        <link href="https://docs.computesphere.com/changelog/api-errors-catalog"/>
        <updated>2026-05-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Every error returned by the ComputeSphere API now ships with a stable code and a direct link to its catalog entry — paste the URL into Claude, Cursor, or ChatGPT and they have full context for debugging.]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-[#355dee]/10 text-[#2a4ac3] ring-[#355dee]/30 dark:bg-[#355dee]/20 dark:text-[#a9b7f3] dark:ring-[#355dee]/40">New</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">API</span><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">Docs</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">May 22, 2026</time><span class="sr-only"></span></div>
<p>Every error returned by the ComputeSphere API now ships with a stable code and a direct link to its catalog entry — paste the URL into Claude, Cursor, or ChatGPT and they have full context for debugging.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="the-envelope">The envelope<a href="https://docs.computesphere.com/changelog/api-errors-catalog#the-envelope" class="hash-link" aria-label="Direct link to The envelope" title="Direct link to The envelope">​</a></h2>
<p>Every error response carries the same shape:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">{</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">  "type":   "https://docs.computesphere.com/errors/trial_expired",</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">  "code":   "trial_expired",</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">  "title":  "Trial period ended",</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">  "status": 402,</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">  "detail": "Your 14-day trial has ended and no active subscription is on file.",</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">  "request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>Switch on <code>code</code> in your client — <code>title</code> and <code>detail</code> may evolve as we improve copy, <code>code</code> will not.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="the-catalog">The catalog<a href="https://docs.computesphere.com/changelog/api-errors-catalog#the-catalog" class="hash-link" aria-label="Direct link to The catalog" title="Direct link to The catalog">​</a></h2>
<p>The full catalog lives at <strong><a href="https://docs.computesphere.com/errors/"><code>/errors</code></a></strong>. Each entry includes plain-English explanation, action-led fix steps, retry guidance, and code samples in TypeScript, Python, Go, and curl.</p>
<p>You can jump straight to any error page by appending the code: <code>https://docs.computesphere.com/errors/&lt;CODE&gt;</code>.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/api-errors-catalog#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p>When something fails at 2 AM, the difference between "an opaque HTTP 500" and "a page that names the cause and shows the fix" is the difference between staying online and waiting on support.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="new" term="new"/>
        <category label="api" term="api"/>
        <category label="docs" term="docs"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Verify your email before creating projects]]></title>
        <id>https://docs.computesphere.com/changelog/email-verification</id>
        <link href="https://docs.computesphere.com/changelog/email-verification"/>
        <updated>2026-05-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[New signups must verify their email address before creating their first project. Existing accounts are unaffected.]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-[#355dee]/10 text-[#2a4ac3] ring-[#355dee]/30 dark:bg-[#355dee]/20 dark:text-[#a9b7f3] dark:ring-[#355dee]/40">New</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">Console</span><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">API</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">May 8, 2026</time><span class="sr-only"></span></div>
<p>New signups must verify their email address before creating their first project. Existing accounts are unaffected.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-changed">What changed<a href="https://docs.computesphere.com/changelog/email-verification#what-changed" class="hash-link" aria-label="Direct link to What changed" title="Direct link to What changed">​</a></h2>
<p>After signing up, you'll see a banner in the Console with a "Resend verification email" button. Clicking the verification link in your inbox unlocks the rest of the account immediately — across every open tab. You can still explore the Console while verification is pending; project and service creation just waits for the link.</p>
<p>If you call the API before verifying, you'll get a clear <code>email_verification_required</code> error (HTTP 409) with a link to <a href="https://docs.computesphere.com/errors/email_verification_required">the docs</a>.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/email-verification#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p>Cuts down on signup spam and accidental typos in email addresses — and means support tickets reach the right inbox the first time.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="new" term="new"/>
        <category label="console" term="console"/>
        <category label="api" term="api"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[14-day free trial on every paid plan]]></title>
        <id>https://docs.computesphere.com/changelog/trial-and-billing</id>
        <link href="https://docs.computesphere.com/changelog/trial-and-billing"/>
        <updated>2026-04-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Every paid plan now starts with a 14-day free trial. Add a card at signup, run your services on us for two weeks, first charge fires on day 15. Cancel anytime in the Console — no charge if you cancel before the trial ends.]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-[#355dee]/10 text-[#2a4ac3] ring-[#355dee]/30 dark:bg-[#355dee]/20 dark:text-[#a9b7f3] dark:ring-[#355dee]/40">New</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">Console</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">April 30, 2026</time><span class="sr-only"></span></div>
<p>Every paid plan now starts with a 14-day free trial. Add a card at signup, run your services on us for two weeks, first charge fires on day 15. Cancel anytime in the Console — no charge if you cancel before the trial ends.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-new">What's new<a href="https://docs.computesphere.com/changelog/trial-and-billing#whats-new" class="hash-link" aria-label="Direct link to What's new" title="Direct link to What's new">​</a></h2>
<ul>
<li><strong>14-day free trial</strong> on Hobby ($15/mo), Pro ($29/mo), and Team ($79/mo)</li>
<li><strong>Two Flex spherelets bundled</strong> into the trial — enough to run a small app, a worker, or both</li>
<li><strong>Annual billing</strong> option saves two months — $150/yr, $290/yr, $790/yr respectively</li>
<li><strong>Cancel from the Console</strong> at any time — no chat, no email loop</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/trial-and-billing#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p>Trials should feel like trials, not gauntlets. Two weeks is enough to ship a real thing, send it to a teammate, and decide whether to keep going.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="new" term="new"/>
        <category label="console" term="console"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[API v2 — stable endpoints and a published OpenAPI spec]]></title>
        <id>https://docs.computesphere.com/changelog/api-v2</id>
        <link href="https://docs.computesphere.com/changelog/api-v2"/>
        <updated>2026-04-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The new v2 API is live at api.computesphere.com/v2. Predictable response envelope, stable error codes, and a published OpenAPI spec that's the source of truth for every client we ship.]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-[#355dee]/10 text-[#2a4ac3] ring-[#355dee]/30 dark:bg-[#355dee]/20 dark:text-[#a9b7f3] dark:ring-[#355dee]/40">New</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">API</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">April 15, 2026</time><span class="sr-only"></span></div>
<p>The new <code>v2</code> API is live at <a href="https://api.computesphere.com/v2" target="_blank" rel="noopener noreferrer"><code>api.computesphere.com/v2</code></a>. Predictable response envelope, stable error codes, and a published OpenAPI spec that's the source of truth for every client we ship.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-new">What's new<a href="https://docs.computesphere.com/changelog/api-v2#whats-new" class="hash-link" aria-label="Direct link to What's new" title="Direct link to What's new">​</a></h2>
<ul>
<li><strong>Consistent response envelope</strong> for every endpoint: <code>{object, items|fields, pagination}</code> for lists, <code>{object, …fields}</code> for single resources</li>
<li><strong>Stable error shape</strong> — every failure ships a code from the <a href="https://docs.computesphere.com/errors/">error catalog</a> (see the <a href="https://docs.computesphere.com/changelog/api-errors-catalog">errors changelog entry</a> for the envelope)</li>
<li><strong>OpenAPI spec</strong> at <a href="https://docs.computesphere.com/api-reference"><code>/api-reference</code></a> — browse interactively or download the YAML for your own tooling</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="migrating-from-v1">Migrating from v1<a href="https://docs.computesphere.com/changelog/api-v2#migrating-from-v1" class="hash-link" aria-label="Direct link to Migrating from v1" title="Direct link to Migrating from v1">​</a></h2>
<p>The legacy <code>v1</code> API stays online — no deadline, no surprise removal. New endpoints land on <code>v2</code> first; a migration guide is on the way.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/api-v2#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p><code>v1</code> grew with us — each endpoint shipped its own envelope, error shape, and pagination dialect. <code>v2</code> is the version we should have shipped first: one envelope, one error shape, no surprises.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="new" term="new"/>
        <category label="api" term="api"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New quickstart — three CLI commands to a live service]]></title>
        <id>https://docs.computesphere.com/changelog/quickstart-three-step-cli</id>
        <link href="https://docs.computesphere.com/changelog/quickstart-three-step-cli"/>
        <updated>2026-04-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The Quickstart is rebuilt around three CLI commands. From csph init to a live service URL on computesphere.app in about a minute, with one-click "Add to Claude" and "Add to Cursor" handoffs for the agent-driven flow.]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-emerald-50 text-emerald-800 ring-emerald-200 dark:bg-emerald-950/40 dark:text-emerald-200 dark:ring-emerald-900/50">Improved</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">CLI</span><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">Docs</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">April 8, 2026</time><span class="sr-only"></span></div>
<p>The <a href="https://docs.computesphere.com/docs/getting-started/quickstart" target="_blank" rel="noopener noreferrer">Quickstart</a> is rebuilt around three CLI commands. From <code>csph init</code> to a live service URL on <code>computesphere.app</code> in about a minute, with one-click "Add to Claude" and "Add to Cursor" handoffs for the agent-driven flow.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="the-flow">The flow<a href="https://docs.computesphere.com/changelog/quickstart-three-step-cli#the-flow" class="hash-link" aria-label="Direct link to The flow" title="Direct link to The flow">​</a></h2>
<ol>
<li><strong><code>csph init</code></strong> — scaffold a new service in the current directory</li>
<li><strong><code>csph deploy</code></strong> — push the code, build the image, run the service</li>
<li><strong><code>csph open</code></strong> — open the live URL in your browser</li>
</ol>
<p>That's it. The page also has an Agent Toolbelt at the top — copy the docs into an AI coding tool with one click so it has full context.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/quickstart-three-step-cli#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p>The first impression of a platform is the time between "I want to try this" and "this thing is running." Sixty seconds. Three commands. Two clicks for the agent path.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="improved" term="improved"/>
        <category label="cli" term="cli"/>
        <category label="docs" term="docs"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Account changes sync across every open tab]]></title>
        <id>https://docs.computesphere.com/changelog/cross-tab-account-sync</id>
        <link href="https://docs.computesphere.com/changelog/cross-tab-account-sync"/>
        <updated>2026-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Verify your email in one tab and the other six update instantly. Switch accounts in one tab and the rest follow. No more stale states, no more "log out and back in to refresh."]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-emerald-50 text-emerald-800 ring-emerald-200 dark:bg-emerald-950/40 dark:text-emerald-200 dark:ring-emerald-900/50">Improved</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">Console</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">March 5, 2026</time><span class="sr-only"></span></div>
<p>Verify your email in one tab and the other six update instantly. Switch accounts in one tab and the rest follow. No more stale states, no more "log out and back in to refresh."</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-youll-notice">What you'll notice<a href="https://docs.computesphere.com/changelog/cross-tab-account-sync#what-youll-notice" class="hash-link" aria-label="Direct link to What you'll notice" title="Direct link to What you'll notice">​</a></h2>
<ul>
<li><strong>Email verification</strong> unlocks the Console across every open tab the moment the link is clicked</li>
<li><strong>Account switching</strong> propagates immediately — every tab shows the new account's resources, billing, and team</li>
<li><strong>Plan upgrades</strong> reflect across tabs without a refresh</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/cross-tab-account-sync#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p>Most people working with cloud infrastructure have at least three tabs open at any moment — Services, Logs, Billing. Drifting states between them was a constant low-grade annoyance. Now they all agree on what's true.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="improved" term="improved"/>
        <category label="console" term="console"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Better empty states across the Console]]></title>
        <id>https://docs.computesphere.com/changelog/console-empty-states</id>
        <link href="https://docs.computesphere.com/changelog/console-empty-states"/>
        <updated>2026-02-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Every empty page in the Console — no services yet, no alerts, no logs — now opens with a clear next step instead of a blank screen.]]></summary>
        <content type="html"><![CDATA[<div class="not-prose mb-3 flex flex-wrap items-center gap-2 text-xs"><span class="not-prose inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium uppercase tracking-[0.08em] ring-1 ring-inset bg-emerald-50 text-emerald-800 ring-emerald-200 dark:bg-emerald-950/40 dark:text-emerald-200 dark:ring-emerald-900/50">Improved</span><span class="not-prose inline-flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-medium text-slate-600 bg-slate-100 ring-1 ring-inset ring-slate-200 dark:bg-slate-900/60 dark:text-slate-300 dark:ring-slate-700">Console</span></span><span class="text-slate-300 dark:text-slate-700" aria-hidden="true">·</span><time class="font-medium text-slate-600 dark:text-slate-400">February 12, 2026</time><span class="sr-only"></span></div>
<p>Every empty page in the Console — no services yet, no alerts, no logs — now opens with a clear next step instead of a blank screen.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-changed">What changed<a href="https://docs.computesphere.com/changelog/console-empty-states#what-changed" class="hash-link" aria-label="Direct link to What changed" title="Direct link to What changed">​</a></h2>
<p>We swept the Console for every "you don't have any X yet" state and gave each one:</p>
<ul>
<li><strong>A short, specific line</strong> about what this surface is for</li>
<li><strong>A primary action</strong> to take the next step right now</li>
<li><strong>Eventual-consistency aware copy</strong> on log and metric panels — "No logs yet — this can take up to a minute" instead of a misleading dead zone</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-this-matters">Why this matters<a href="https://docs.computesphere.com/changelog/console-empty-states#why-this-matters" class="hash-link" aria-label="Direct link to Why this matters" title="Direct link to Why this matters">​</a></h2>
<p>Empty states are the most underrated page on any product. They're the first thing a new account sees, and the only thing an account with zero data ever sees. Making them earn their slot beats every other onboarding tweak combined.</p>]]></content>
        <author>
            <name>Peter Ekhator</name>
            <uri>https://github.com/peterekhator</uri>
        </author>
        <category label="improved" term="improved"/>
        <category label="console" term="console"/>
    </entry>
</feed>