← All projects

CloudSetu

Designing a multi-cloud networking platform from scratch, so teams can connect clouds and build network connections by drag and drop, with fewer steps and fewer errors.

Role
Lead UX Designer
Type
B2B SaaS, web application
Scope
Designed from scratch: onboarding, resource map and network configuration
Status
Designed and handed off to engineering

Summary

CloudSetu is a multi-cloud networking platform for enterprise teams. I led the UX design from scratch: how teams connect cloud accounts, see their resources in one place on a Cloud Resource Map, and build network connections between cloud regions in a Configuration tab.

  • The problem: every cloud provider has its own accounts, permissions, terms and network rules, so setup was slow, error-prone and dependent on senior engineers.
  • How we learned: several days of in-person workshops with the client's stakeholders and users, together with my Calsoft colleagues (product managers, engineers, designers, managers and network engineers), all in the same room.
  • What we designed: guided onboarding, a Cloud Resource Map for overview and details, and a Configuration tab where two networks open side by side and users connect them by drag and drop, with provider rules checked in the backend.
  • What testing showed: users completed setup with fewer errors and less assistance, and reported higher confidence managing multi-cloud environments.
  • Status: designed and handed off to engineering.
How to read this case study. The project was completed under an NDA, so the client name, internal data and production UI are not shown. The research was collaborative workshops, not a formal interview study, so I don't show participant quotes or counts. I have no post-launch data, so the results are observations from task-based usability testing, shared without figures. I show the reasoning, the decisions and what I would measure next.
01 · Problem

The business problem

The client wanted to give enterprise customers one place to manage networking across AWS, Azure and Google Cloud. The same pattern kept appearing in the sessions:

  • Setup took a long time and needed senior engineers.
  • Manual configuration led to errors.
  • Complex tooling meant rising support effort and slow adoption.

Cloud account onboarding mattered most. It is the first thing a customer does, and each provider has its own sign-in, permissions and terminology. If it feels hard, customers never reach the rest of the product.

What we are solving. Help enterprise customers adopt CloudSetu faster and with fewer errors, while cutting the support and senior-engineer effort it takes to get them there.
02 · Research

How we did the research

Instead of interviewing users separately and reporting back, we ran several days of in-person sessions with everyone who shapes the product in the same room: the client's stakeholders and the people who use the tool, and my team at Calsoft, including product managers, engineers, designers, managers and network engineers.

This mattered because a networking design is only useful if it can be built. Hearing a pain point and its technical constraints at the same time let us settle ideas on the spot instead of through rounds of handoffs.

Whose workflows we needed to understand

Participant groupWorkflow to understand
Cloud architectsAccount structure, network architecture and cross-cloud design decisions
Network engineersNetworks, subnets, routes, gateways and connectivity rules
DevOps engineersRepeatable configuration, automation and integration with delivery workflows
IT administrators and operationsAccess, resource visibility, monitoring and operational troubleshooting

How participants were chosen, and how we worked

QuestionAnswer
Who took partClient stakeholders and users across the four groups above, together with my Calsoft team.
How they were chosenThe client nominated their stakeholders and users.
MethodsSeveral days of in-person workshops. Workflow decomposition that mapped each drag action to a system event. Feasibility discussions with engineers on API readiness. Edge-case analysis of invalid states and failures. A comparison of enterprise networking tools to understand trade-offs.
What this means for the findingsBecause the client chose the participants, the findings describe their organisation's workflows well, but they are not a representative sample of every cloud team.

Questions we worked through together

  • How do teams work across AWS, Azure and Google Cloud today, and where does it hurt?
  • What should we improve or add, and is it practically possible to build?
  • What can the system do automatically, so users take fewer steps and remember less?
  • How can we make it clearer visually, prevent errors and handle them calmly when they happen?
03 · Insights

What we found

Each finding is written as a gap: who is missing what, followed by the hypothesis we bet on (the "If we" line). This kept every decision tied to a person and a need. How I answered each one is in the Solution section.

1. Connecting an account

GapIT administrators and operations teams are missing a simple way to connect a cloud account and know it worked: each provider has its own credentials, permissions and terms. If we keep the form to the few inputs a user actually has and handle the provider differences in the backend, new customers can connect accounts without senior help and are less likely to give up at the first step.

2. Seeing the environment

GapCloud architects and network engineers are missing one view of their resources across clouds, so they move between consoles and rely on memory. If we discover resources automatically and show them on one map and list, they can see the environment instead of remembering it.

3. Building a connection

GapNetwork engineers are missing a way to build a connection without long, form-heavy steps where mistakes happen. If we let users draw a connection between networks they pick from discovered resources, they take fewer steps, recall less and make fewer mistakes.

4. Getting feedback

GapEveryone configuring networks is missing early, plain feedback when something is invalid. Errors show up late and are hard to understand. If we check provider rules before a connection is created and explain problems clearly, users can fix issues themselves and avoid failed setups.

5. Knowing the state

GapOperations teams can see a resource's state in each cloud's own console, but they are missing one place for the state of the work CloudSetu does across clouds: syncing, connected, being created or done. A cross-cloud connection touches two providers, and each console shows only its own side. If we show progress and status in CloudSetu wherever a long task runs, users don't need to open each console, and they trust what they see and don't repeat actions.

6. Repeating setups (later phase)

GapDevOps engineers are missing reusable configuration they can repeat and plug into delivery workflows. If we support reusable and exportable configurations, teams that automate can adopt CloudSetu without giving up their workflow.

Signal and noise: what we focused on

The sessions produced more ideas and complaints than a first release could hold. Each one had to pass two checks: does it remove a real pain point, and can engineering build it? What came up repeatedly and blocked a core job was a signal. What was real but not needed for the first two jobs, connecting accounts and connecting networks, was set aside.

Signals we designed for

  • Users were highly technical but short of time.
  • Most errors happened during initial setup and topology configuration.
  • The tools people use today assume expert knowledge and punish mistakes.
  • People wanted clarity and control, not abstraction without feedback.
  • Account onboarding was a high-risk first step, because of confusing external flows, permission errors and unclear validation feedback.

What we set aside, and why

  • Reusable and exportable configurations: a later phase, so the first release could get onboarding and connections right.
  • Analytics and trends: a later phase, once the core flows were in place.
  • Separate Cost Management and Network Operations areas: they did not serve the two core jobs.
  • Every resource editable on one canvas: Configuration opens two networks in detail, to keep the canvas readable.

Domain constraints that shaped the design

Public research on how the three providers differ shaped three design rules.

  • Clouds scope and name networks differently (regions versus global networks, VPC versus VNet), so the map is anchored on regions with a shared label.
  • Large setups use hub-and-spoke designs, so the topology is the first choice in the flow.
  • Some limits fail silently, so the system validates before it creates a connection and blocks unsafe ones.

Sources: Pluralsight, networking services compared; Console Connect, July 2025.

04 · Hypothesis

Design hypothesis and principles

Hypothesis. If CloudSetu guides onboarding, shows all resources in one place, and lets users build connections visually with provider rules checked in the backend, then users will finish setup with fewer steps and fewer errors, which helps the business rely less on senior engineers and cut support effort.

Why drag and drop was a business decision, not decoration

For users

  • Less to hold in mind, because the relationships between networks are visible.
  • Fewer invalid configurations, because interactions are guided.
  • Faster understanding for people who are not experts.
  • Fewer long, error-prone forms.

For the business

  • Faster network configuration for enterprise customers.
  • Less reliance on senior cloud engineers.
  • Fewer configuration errors and support tickets.
  • Better adoption and perceived ease of use.
  • Consistent, not identical. Use familiar patterns across clouds without pretending the clouds are the same.
  • Validate before you execute. Find problems before anything is applied.
  • Explain, don't just reject. Say why something is invalid and what to do next.
  • Less to remember. Let the system discover and offer choices, so users recognise instead of recall.
  • Progressive disclosure. Show what matters first and keep advanced settings one step away.
  • Be clear about state. Syncing, proposed, being created and done are different things.
05 · Solution

The solution, as a prototype you can click through

I built the solution as an interactive prototype, so you can try the flows instead of only reading about them: look at the environment, drag to connect two networks, and see the guardrails step in. It uses sample data.

CloudSetu dashboard

CloudSetu prototype

Dashboard, Cloud Accounts, Cloud Inventory, Cloud Networking (Overview, Configuration, Connections) and Policy.

Open the prototype ↗Opens in a new tab. Sample data only.

The sections below explain the decisions behind it.

The product structure

I ordered the menu to follow the customer's journey, and gave each place that shows resources a different job, so nobody has to guess where to look.

Menu itemIts job
DashboardHealth and totals at a glance
Cloud AccountsConnect and manage cloud accounts (Day 1)
Cloud InventoryThe searchable list of everything discovered
Cloud NetworkingThree tabs: Overview (the map and how things relate), Configuration (build connections), Connections (status, edits and history)
PolicyThe rules behind the guardrails: what is blocked or warned about
AnalyticsUsage and cost, planned for a later phase
Settings, HelpKept apart from the main journey

Overview comes before Configuration because people look before they change anything.

The first release focused on the journey for a new customer, from first login to everyday use.

Day 1

Provisioning & discovery

From an empty product to a full picture of the cloud estate.

Land on an empty dashboardInvites a first cloud account.Dashboard
Choose a providerAWS, Azure or Google Cloud.Cloud Accounts
Enter credentialsA short form. The backend handles provider differences.Two error states designed
Discovery runsVisible progress. Work can start with partial data.Syncing state
See the environmentA map and a list, with totals on the dashboard.Overview and Inventory
Add more accountsThe same short flow, repeated.Cloud Accounts
Day 2

Configuration

Connect two networks without leaving the screen or memorising details.

Decide what to connectBrowse the inventory and the map.Inventory and Overview
Open ConfigurationThe canvas shows existing connections.Cloud Networking
Choose what to connectTopology, provider, account and networks.Actions panel
Drag to connectChecked at once: green if valid, otherwise a reason and an alternative.Topology canvas
Review and confirmA summary of what will be created.Confirm
Check the resultStatus and history. Dashboard counts update.Connections
Day N

Monitoring & management

Everyday use: keep it healthy and change it when needs change.

Start at the dashboardActive and unknown counts. Resources removed in a provider's console show as unknown.Dashboard
Check connection statusColour-coded, with detail on hover.Connections
Change connectionsCreate, edit or delete as needs change.Configuration
Manage accounts and rulesAccounts and guardrail rules. Usage and cost come later.Cloud Accounts, Policy, Analytics

The journey from first login to everyday use, redrawn from my original flow.

From insight to design

Each finding from the research has a design answer. This is the short version. The sections below show it in detail.

InsightHow I solved itSee it
1. Connecting an accountProvider selection, a short credential form, two designed error states, and a sync with visible progress.Day 1
2. Seeing the environmentA dashboard with a resource map, a resource list and an accounts list with status.Day 2 and More screens
3. Building a connectionDraw-a-line connections on the canvas, a Create Connection form as an alternative, and pickers for networks and subnets.Day 2
4. Getting feedbackBackend validation, with unsupported or unsafe actions blocked (with a reason and a similar option that is possible) or warned about, and clear messages.Behind the scenes and Safety checks
5. Knowing the stateProgress indicators, sync notifications, a progress dialog for new connections, and a Connections tab with status and history.More screens
6. Repeating setups (later phase)Kept in mind and moved to a later phase, because the first release had to nail onboarding and connections.Later phase

Day 1: connect an account without guesswork

The user picks a provider, enters a label and the credentials for it, and connects. The form is kept as short as possible and uses each provider's own terms, for example an access key ID and secret for AWS, so engineers recognise what to enter. Everything else that differs between providers is handled in the backend, so the user doesn't have to learn each cloud's setup.

I designed the failure states on purpose, because that is where onboarding is lost:

  • Error A: wrong credentials. The message says the key or secret is incorrect and lets the user retry. The user can fix this.
  • Error B: verification failed. The message says the connection to the provider failed and to try again. This is a system problem, not the user's mistake.

After a successful connection, the user can start with the data synced so far, or add more accounts. A progress indicator and a notification when syncing finishes mean nobody stares at a spinner. The dashboard then shows the resource map and totals, and the accounts list shows each account's sync status.

1
Add the accountCloud Accounts
Connect a cloud account form: provider, account label, access key and secret
2
Discovery runsSyncing, with partial data
Syncing state: resources found so far, partial data shown, with the option to start or add another account
3
Sync completeGo to the dashboard
Account synced: 100 percent, with options to add another account or go to the dashboard

Connecting an account: fill in the form, start with the data synced so far, then go to the dashboard.

Trade-off. Waiting for a complete sync is simpler to build, but large estates can take a long time to sync. We chose to let users begin with partial data and made the syncing state very clear, so partial data isn't mistaken for the full picture.

Day 2: see the environment, then connect it by drag and drop

Day 2 happens in the Cloud Networking section, which has three tabs. The Overview tab (the Cloud Resource Map) shows all connected resources at a glance, and clicking one shows its details. The Configuration tab is where networks are connected, and the Connections tab lists every connection with its status and history.

The Configuration tab has two halves that work together. On the left is an Actions panel, where the user chooses what to connect: a topology (point-to-point, or hub and spoke), then for each of the two ends a provider, a cloud account, a VPC/VNet and the subnets to route, all picked from resources already discovered. On the right is a Topology View that shows those networks as cards with their status, and a proposed connection appears as a dashed line. Once the right networks are chosen, the user makes the final connection by dragging between them on the canvas, or with Propose connection in the Actions panel.

CloudSetu Cloud Networking screen, Configuration tab, with a valid link ready to confirm
Cloud Networking, Configuration tab: the Actions panel on the left, the topology view on the right, and a valid link ready to review and confirm.

Dragging is quick, so connecting is a two-step decision. As soon as the user drops a line, the system checks it. If it is valid, the line turns green and a short review shows what will be created: the topology, the two networks, the subnets and the connection type (a site-to-site VPN). The user then presses Confirm, a progress dialog runs and ends with a Connection created message (traffic can now flow between both networks, with a shortcut to View in Connections), and the connection becomes a solid line with its details. If it isn't valid, the interface says why it isn't possible or safe, suggests a similar connection that is possible, and Confirm stays unavailable for the original request. If the user accepts the suggestion, the usual review and Confirm follow. Reset clears the proposal before anything is applied.

CloudSetu Creating connection dialog: progress through checking provider rules, creating gateways and tunnels, with a Run in background option
Creating a connection: a progress dialog lists each step, and the user can run it in the background.

Clicking any network opens a details panel with its properties and its subnets, so the user can check what is inside before connecting it. Creating a connection can take a while, so a progress dialog lists each step (checking provider rules, creating a VPN gateway in each cloud, setting up the tunnels, updating route tables) and lets the user run it in the background. Progress stays in Notifications and the Connections tab, so nobody has to wait on the screen. A one-time dialog explains the ways to connect the first time someone opens the view.

Why drag and drop? We treated it as a usability and business decision, not a visual upgrade. It reduces the mental effort of linking information across separate forms, cuts the form-heavy steps where errors happen, and lets the interface steer people away from invalid setups. The form path stays for precision and for people who prefer typing.

Behind the scenes: how the system makes it work

A visual builder only works if the system behind it can interpret what the user does. Because our engineers were in the room from the start, we worked this out together and the design did not promise anything the backend could not deliver.

I mapped each drag action to the system events behind it, reviewed API readiness with engineers, worked through edge cases, and compared how enterprise networking tools handle similar tasks. Together we decided which configurations to automate and where guardrails were needed.

Draw a lineChoose topology and networksTry something invalidCreate the connectionUserInterfaceBackendDraws a linebetween twonetworksChooses topology,VPC/VNet andsubnetsTries somethinginvalidPresses ConfirmShows the intendedconnectionOffers onlyrelevant choiceswith clear labelsBlocks it, explainswhy, suggestsanother connectionShows progress,then the finalstatusChecks therelationship issupported forthese providersValidates requiredvalues and providerrulesReturns ameaningfulvalidation resultRuns the provideroperations andreports successor failureEach gesture has a matching system event and a defined response.
What the user, the interface and the backend each do. Worked out together with engineering.

For invalid actions we used two levels:

  • Block when a connection is unsupported or unsafe: explain why, suggest a similar connection that is possible, and let the user decide whether to proceed with it.
  • Warn when something is possible but risky, and leave the decision to the user.
After the line is dropped, the system decidesConnection is checkedValidThe line turns green.The user reviews the summary,then confirms.WarnPossible, but risky.Explains the risk and leavesthe decision to the user.BlockNot possible, or not safe.Explains why, and suggests asimilar connection that ispossible. The user confirmswhether to proceed.Errors when connecting an accountError AWrong credentialsThe message says the key or secret is incorrectand lets the user retry.The user can fix this.Error BVerification failedThe message says the connection to the providerfailed and to try again.A system problem, not the user's mistake.
Error handling: the three outcomes after a connection is checked, and the two account errors.

Safety checks that prevent mistakes

Together with engineering we decided which configurations the system could automate, where guardrails were needed, and when to block and when to warn. The result balances freedom and control:

  • Backend rules constrain drag and drop.
  • Invalid connections are blocked or clearly explained.
  • Feedback is immediate and in context.
  • Complex logic is abstracted, not hidden. Users can see why something is allowed or not.

This protects system integrity, builds user confidence and reduces costly configuration mistakes.

More screens

Screenshots of the prototype, with sample data and no client data.

CloudSetu Dashboard screen
Dashboard: totals and health at a glance, with a map of active regions.
CloudSetu Cloud Accounts screen
Cloud Accounts: connected accounts with status and last sync, and a notification when the sync completes.
CloudSetu Cloud Inventory screen
Cloud Inventory: the searchable list of everything discovered, with status.
CloudSetu Cloud Networking Overview screen
Cloud Networking, Overview tab: the map of connections between clouds, with a details panel showing type, status, route and history.
06 · Results

Validation and outcomes

I ran task-based usability testing on three things: cloud account onboarding, network configuration, and whether people understood the system's feedback and constraints.

What we observed

  • Users completed setup with fewer errors and less assistance.
  • Onboarding time was significantly reduced.
  • Users reported higher confidence managing multi-cloud environments.
  • The product shifted from “expert-only” to operationally accessible.
What these are. Observations from task-based usability testing of the designs, shared without figures. They are not post-launch analytics.

Outcome and business value

By standardising account onboarding across AWS, Azure and Google Cloud, despite their different external flows and permission models, the platform is designed to remove a major deal-breaker step and cut configuration errors at the source.

The drag-and-drop network builder became a key differentiator of CloudSetu. It is built to make configuration faster and safer, with fewer configuration errors, less need for support and senior engineers, and better adoption across operational teams.

The takeaway. Complex infrastructure tooling can be both powerful and humane when UX design, backend logic and system thinking are tightly integrated.

How I would put numbers on it

The designs were handed off to engineering, and I have no post-launch data. To put numbers on these observations, I would have network and cloud engineers do the same realistic tasks the current way, in each provider's console, and then in CloudSetu, and measure:

GoalMeasure
Simpler onboardingAccount connection completion rate, time to first connected account
Fewer errorsInvalid-action rate, how many people recover from a validation error unaided
Clearer networksWhether users can correctly explain the topology they built
More confidencePost-task confidence rating, and whether they can tell proposed from applied changes

What I would do next

  • Re-test the built connection flow with more network engineers, especially the block and warn behaviour, and measure completion rate, errors and time to first connection.
  • Add reusable and exportable configurations for teams that work through scripts and automation.
  • Make permissions visible in the interface, so users know what they can and cannot change before they try.
  • Bring in Analytics and trends once teams are using the core flows.
  • Extend the same safety-check patterns to Policy and to troubleshooting.