I Shipped a Redesign That Orphaned My Own Product

This month I rebuilt CloudWise around an AI agent.
Not a chatbot bolted into a corner. The agent is the product now. You open the app and you're talking to it. "Where's my money going?" — and it pulls your AWS spend, ranks the waste, shows you the dollars per month per finding, and tells you what's safe to fix.
It looked done. The screens were beautiful. The agent answered. I shipped it as the front door.
Then I used it like a customer would. And I discovered I had quietly orphaned half my own product.
This is the story of that month, because it taught me the single most useful lesson I've learned as a solo founder: a redesign isn't done when it looks done.
What I built
For most of this year, CloudWise looked like every other AWS cost tool: a dashboard. Charts, tables, a sidebar of pages. Useful, but passive. You had to know what to look for.
The bet I made for the overhaul was that the interface should be a conversation, not a dashboard. Most people don't want to read a cost dashboard. They want to ask a question and get an answer.
So the centerpiece became a conversational workspace backed by a real tool-calling agent loop on Claude (running on AWS Bedrock). "Real" is the important word. This isn't a model that summarizes a page of text. It's a model with tools — it actually queries your cost data, your findings, your Reserved Instance and Savings Plan coverage, and composes an answer from live numbers. It remembers your account between conversations.
You can ask it:
- "Where's my money going?" → it breaks down spend by service, in gold, with the month-over-month delta.
- "What's safe to fix?" → it ranks your waste findings: idle NAT Gateways, forgotten SageMaker notebooks, unattached EBS snapshots, each with a dollar figure and a safe-to-fix flag.
- "Compare my two accounts." → and it does.
That last one matters more than it sounds, and it's where the trouble started.
The part where it looked finished
By the start of June, the redesign was, on paper, complete. New design system. Dark, native. A conversational workspace. A guided tour. A redesigned dashboard. The agent loop. Cross-session memory. I'd migrated every screen.
I flipped the new workspace to be the post-login front door and moved on.
Here's the uncomfortable truth about building alone: you stop seeing your own product. You navigate it the way the author navigates it — from the inside, knowing every shortcut, never actually starting cold the way a real user does.
So I made myself start cold. I logged in like a brand-new customer and tried to do the boring things. Switch to my other AWS account. Open settings. Change a notification. Log out.
I couldn't.
The front door had hidden the house
None of those features were gone. Every settings page still existed. The account switcher still existed. Logout still existed. The old navigation still existed, sitting in the codebase, fully functional.
They just weren't reachable from the place users now landed.
The new workspace shell had a clean little user footer — a static label with the account name. No menu. No logout. No link to subscription, notifications, alerts, API keys, AWS accounts, or password. From the new front door, there was literally no path to any of it.
Worse, the half of the product that did still have navigation rendered in the old chrome. So a new user would land in a slick dark conversational workspace, click one thing, and get bounced into the previous design — a completely different layout. Two products wearing different clothes, stitched together at a seam the user falls straight through.
I wrote it down plainly in my own audit doc at the time, because I needed to see it without flinching:
The redesign did not delete your features — the cutover orphaned them.
That sentence reframed the entire month. This wasn't a teardown. It was a finishing problem. The work wasn't to rebuild — it was to take ownership of every job the old interface used to do, and make the new one do it better.
The agent was also lying about multi-account
While I was in there, I found a real bug — the kind that only surfaces when you use the product for real, with more than one account.
CloudWise is a multi-account tool. You connect your AWS Organization and it discovers all your accounts. But the agent was collapsing them. When you asked about cost, it blended every account together with no way to scope to one. And when you asked about Reserved Instance and Savings Plan coverage, it reported coverage for exactly one account — the first one it happened to grab — and silently ignored the rest.
That's not a cosmetic miss. That's the tool confidently giving you a wrong answer about money. If you had three accounts and asked "how's my RI coverage," it answered for one-third of your footprint and didn't tell you.
The backend could already filter by account. The old reports page could already do multi-account selection. The agent — the new centerpiece — was strictly less capable than both. The redesign had, in this one spot, made the product worse while looking like it made it better.
So the fix had three parts:
- A header account switcher that scopes the entire workspace — single or multi-select, capped by your plan tier.
- Per-account arguments on the agent's tools, so the model can honor that switcher and answer in-conversation requests like "compare my two accounts."
- Fixing the coverage bug so it reports across all accounts, not the first one.
# Before: commitments reported for whatever account came first.
def get_commitments(accounts):
first = accounts[0]
return fetch_coverage(first.account_id) # silently ignores the rest
# After: the agent scopes to what you asked for — one, some, or all.
def get_commitments(accounts, scope_ids=None):
targets = [a for a in accounts if a.account_id in scope_ids] if scope_ids else accounts
return [fetch_coverage(a.account_id) for a in targets]
A small diff. A big difference in whether you can trust the answer.
Thirty days of taking ownership
That's what the month actually was. Not "add features." Re-own the basics, and make the agent the real front door instead of a beautiful demo sitting on top of a product it had stopped being responsible for.
In order, here's what changed:
One app shell, not two. Unified chrome around every authenticated page — one persistent sidebar, the account switcher, every settings link, and logout — so you never fall through the seam between the new workspace and the old layout again. The workspace became one surface inside a consistent app, not a separate world.
The account switcher scopes everything. Pick an account (or several) in the header and the whole workspace re-scopes to it — and the agent answers for exactly that selection.
The agent learned to count accounts. Per-account tool arguments, the coverage bug fixed, and the ability to genuinely compare accounts on request.
A deep, cross-page guided tour. Instead of a checklist nobody reads, a docked "CloudWise agent" companion walks a new user through the real product — navigating the actual screens across seventeen steps, not narrating a slideshow.
The whole product went dark-mode-native. Every deep page — cost reports, remediation, savings plans, settings, the dashboard — rebuilt on one design system. Money is always gold. No more half-migrated screens where one page is dark and the next is white.
A shareable cost-health score. One number, 0–100, for how efficiently you're running AWS — with a public, sanitized share card carrying no account details or PII. Because the first question every engineer actually asks is "are we good, or not?"
Across the month that came out to a few dozen shipped changes and around fifty releases — versions 1.54 through 1.104. Most of them were not glamorous. Most of them were re-owning a job the old interface used to do, quietly, that the new one had dropped on the floor.
The lesson, stated plainly
I've shipped a lot of software in twenty-five years. I still fell for this one, which is why I think it's worth writing down.
"Looks done" and "is the product" are not the same state. They can be a hundred releases apart.
A redesign is not finished when the new screens are beautiful and the happy path works. It's finished when the new thing has quietly taken over every job the old thing did — logout, account switching, the boring settings page nobody screenshots — and does each of them at least as well. Until then you don't have a new product. You have a beautiful front door on a house whose rooms you've locked.
And the cruelest part: users don't grade you on the demo. They grade you on the one ordinary day they need the single feature you forgot to bring across. The day they need to switch accounts, or check their RI coverage across all three, or just sign out. That's the moment your redesign is actually judged — and it's never the moment you rehearsed.
So now I have a rule. Before I call any cutover done, I log in cold and do the boring things. All of them. If I can't sign out, I'm not done. No matter how good the front door looks.
CloudWise is an AWS cost optimization tool for startups — 191 automated waste checks, a real agent that runs against your actual usage, air-gapped mode for security teams, starting at $19/month. If you want to ask an agent where your AWS money is going, it's at cloudcostwise.io.
Stop wasting money on AWS
CloudWise monitors 45 AWS services and finds waste automatically. Free forever.
Start Free Scan →