CloudGlance - Document Intelligence Platform

Shaping the identity, architecture and user experience that transformed CloudGlance's internal AI engine into a mature, client-ready product.

Product Design
AI Platform
UX Architecture
Brand Identity
Enterprise SaaS
Workflow Design
CloudGlance - Document Intelligence Platform

Turning enterprise-level document intelligence into a calm, usable platform

CloudGlance is an enterprise document-intelligence platform designed to help organisations work confidently with long, complex technical documents. It brings structure to unstructured files and supports teams across tender discovery, bidding, evaluation and compliance.

My work focused on shaping the identity, defining the product architecture and designing the complete platform experience. The design lens was clear from the beginning: create a mature, calm and trustworthy environment for document-heavy workflows, without overwhelming users or hiding the AI’s strengths.

This case study covers how the platform was structured, why certain decisions were made, and how CloudGlance grew into a market-ready product used by real teams today.

Role
Product Designer
Timeline
Oct 2025 - Mar 2026
Industry
Enterprise SaaS, Document Intelligence
Platform
Web Application
Stack
Figma, Next.js, React, TypeScript, Tailwind CSS
Deliverables
Brand Identity, Product Architecture, Platform Design

Context

CloudGlance began inside Cortex Construction Solutions, a company that has spent nearly two decades working with tenders, contracts and large technical documents. Over the past few years, the team built a powerful backend AI capable of reading thousands of pages, extracting information accurately and powering tender workflows far more consistently than manual methods.

But until this point, CloudGlance existed only as backend intelligence and internal prototypes.
There was no real interface.
No product experience.
Nothing that real teams could use with confidence.

As CloudGlance prepared to onboard their first external clients, Mr. Manish Bharti, Founder & CEO (Cortex), brought me in to shape its first market-ready version. The AI had proven itself internally, but now it needed to work for teams who had no context, no training, and no patience for rough edges. The responsibility was to get it right: the identity, the product direction and the entire platform experience.

The challenge was clear:
Turn a complex AI system into a trustworthy product for teams who value clarity over novelty.

Most users would be senior project managers, procurement heads and executives who were familiar with tendering but not with modern AI-driven systems. The platform needed to feel stable, mature and predictable, a place where teams could upload sensitive documents and rely on the outputs without hesitation.

The Problem

Cortex had already solved the hard part: They built the AI engine.
But the supporting layers - the identity, the UX system, the product structure did not exist.

CloudGlance needed:

  • a trustworthy face that reflected maturity
  • a platform structure that made sense to experienced, non-technical users
  • a navigation system that always showed "where you are"
  • a scalable workspace model for tenders
  • a way to make the AI's document intelligence usable, verifiable and trustworthy
  • and an overall experience that felt clear, calm and dependable, even when the AI underneath was extremely powerful

In simple words: They had the V8 engine; I had to design and build the car.
But it couldn't look like a supercar, it needed to feel like a familiar daily drive with enormous capability under the hood.

Approach

My approach was built around one central idea:
The intelligence should feel powerful, but the platform should feel familiar.

From the start, I approached CloudGlance as a system, and not as just a collection of screens. The goal was to design a structure where pages, actions and workflows followed clear, repeatable patterns, so users wouldn’t need to relearn the interface as the platform grew.

There were two tracks running in parallel:

I. Designing the Product Foundation

I shaped the structural foundation that would drive the entire platform:

  • Project Management as the core workspace model
  • File Manager with clear global and project-level scopes
  • Tasks and Task Runs as repeatable workflows
  • Indexing logic that makes the AI’s awareness visible
  • AI Assistant with global and project-focused contexts
  • Navigation hierarchy that preserves orientation
  • Output flows and a split-view system for verification
  • Tender Search as the entry point for discovering and evaluating opportunities
  • Document Intelligence View for deep extraction, translation and document-level interaction
  • Unified Search for cross-platform discovery across files, projects, chats and task outputs
  • Settings and Task Defaults for workspace configuration and repeatable task inputs
  • Real-time feedback for indexing status, task progress and streaming responses

Concepts like Project Management, the File Manager, Tasks, the AI Assistant, Tender Search, Document Intelligence and real-time processing were already part of the company’s direction or needs. My role was to define how these ideas would take shape as a product: clarifying their structure, connecting their relationships, and designing the architecture that holds them together.

Others I introduced as the platform took shape: the navigation system, output and split-view flows, Unified Search, and Settings with Task Defaults, filling gaps that only became visible once the product started forming.

Product foundation architecture diagram

II. Building an Identity the Platform Could Stand On

While designing early screens, it became clear that CloudGlance needed a cohesive identity, something stable, mature and enterprise-friendly.

This wasn't part of the original brief; I initiated it because the platform needed a visual language that could carry the weight of document-heavy, high-stakes workflows.

Only after presenting the reasoning did the team align on the need for a new identity.

Brand Identity

An identity built to carry the weight of high-stakes, document-heavy work.

CloudGlance needed to feel reliable from the first moment users interacted with it.

Why a New Identity was Needed

The earlier logo leaned literal and playful, revolving around a bulky "cloud" visual and green palette. It didn't reflect the seriousness of the workflow nor the enterprise clients they were approaching. The green colour palette also overlapped with the existing competitor landscape, making it harder to establish a distinct, enterprise-grade presence.

I suggested creating a new identity system that could:

  • communicate maturity and trust
  • visually hold the weight of enterprise workflows
  • feel timeless, not startup-like
  • live consistently across platform, website and future materials

The team welcomed the direction.

Old CloudGlance identity

Old CloudGlance identity

The New Mark

I designed a compact symbol built from C + G + a focal point, representing "glance", clarity and attention without being literal.

It reads cleanly at small sizes, aligns with enterprise expectations, and supports a more composed visual language.

CloudGlance mark - white on blue
Project grid image 1
Project grid image 2

Visual Language

I replaced the green palette with a composed, trustworthy blue, carrying the qualities the platform needed: stability, calm, reliability and professional maturity. Accents are used sparingly to maintain a quiet environment for long work sessions.

Typography follows the same restraint. A neutral, readable sans-serif with a structured hierarchy and comfortable line spacing, nothing decorative, entirely built for clarity and long-form reading.

Colour Palette

CloudGlance colour palette

Typography

CloudGlance typography system

Interaction Principles - Platform-Wide

The patterns that shape how the platform behaves at every scale.

Philosophy Principles

Calm over clever
No flashy AI theatrics. The interface stays quiet, composed, and focused on the work.

Predictable patterns
Core interaction models repeat across the platform: tabs, headers, panels, and workflows behave consistently, helping users build familiarity as they move between features.

Depth only when needed
Users start with a clear overview and move into deeper layers only when they choose to.

Designed for experienced professionals
Clear labels, comfortable spacing, and no hidden interactions.

Transparency over abstraction
Users can always see what the AI referenced, which files were used, and where answers came from.

Intentional empty states
Guiding, informative, and restrained.

UI gets out of the way
Documents and outputs remain the primary focus.

Built for long work sessions
Soft neutrals, stable spacing, and low visual fatigue.

Consistent across contexts
The same feature behaves the same way regardless of where it is accessed. Files, the AI Assistant and search work identically whether used globally or within a project. Users never have to relearn interactions depending on context.

Spatial Awareness Principles

Navigation that always shows where you are

The sidebar highlights the active section and supports open, collapsed and overlay modes depending on the view. Logo doubles as a toggle to reduce header clutter. Main pages use static titles with no back action. Internal pages like a specific project, chat or task surface dynamic titles with a clear way back. The File Manager handles its own breadcrumb navigation within the content area for deep folder structures.

No matter how deep a user goes, they always know where they are and how to get back.

Platform Breakdown

Unified Structure

CloudGlance was designed around a unified way of framing pages, handling actions and running workflows, so the experience remains consistent as users move across different areas of the platform. From the beginning, it followed a shared structural logic that defines where context lives, where actions appear, and how work is carried out, instead of letting each screen define its own rules and layout.

Every page follows the same foundational logic:

  • a clear sense of where you are
  • a predictable place for actions and filters
  • a focused work area
  • supporting panels that appear only when needed
  • consistent behaviour around navigation, spacing, and content flow

Actions across the platform follow the same structure. Starting a task, creating or editing a project, searching, or adjusting settings all use a shared interaction model, so actions feel familiar regardless of where they are triggered, and context is always preserved.

Workflows, the AI-powered tasks that drive the platform's real work, follow the same thinking. Every task fits into the same structural shell and the same execution flow, so users never have to learn a new interface for new intelligence.

By designing pages, actions and workflows around the same structural thinking, the platform avoids fragmentation as features grow. New capabilities can be added without introducing new patterns, allowing the platform to scale while remaining calm, learnable, and dependable.

Dashboard - A Calm Starting Point

Designed to give users orientation, and a quick path into action.

The dashboard acts as a stable entry point into the platform. Users land here, understand what's active, and move into their work without being distracted by unnecessary noise.

A small set of high-level indicators surfaces what matters across projects, files and tasks. Alongside these, users see recent items and a full activity log, providing traceability without overwhelming the interface.

From the dashboard, users can also act immediately: starting an AI-assisted conversation directly from the chat input, creating a new project, or running a task without navigating anywhere else. The shortcuts exist so common actions stay one step away, while the rest of the layout stays calm and focused.

The dashboard is not meant for deep decision-making. It exists to orient, ground, and guide users toward their next action.

Dashboard

Projects - The Core Workspace

Where teams organise, manage, and act on work within a consistent structure.

Projects are the core workspace in the platform. They act as stable containers that hold documents, automations, outputs and activity, while adapting to the specific purpose of the work.

CloudGlance currently supports three project types: Bidder, Issuer and RFX. Each represents a different kind of workflow, but the overall project structure remains the same. What changes are the available automations and actions within a project, not the way the project is navigated or understood.

This allows the platform to support varied client needs:

  • some organisations only bid
  • some only evaluate
  • some manage requests for quotes, proposals or information
  • others do a combination of these

all within a familiar, predictable project framework.

Creating a project is a lightweight action. Users can start with a blank project, or link a known tender directly from the creation flow by searching for its tender ID or name. This keeps the discovery-to-project bridge open even when users already know what they want, without forcing them back through Tender Search.

The projects listing stays clean: a scannable view of active work with light filtering to find what matters. Projects can also be pinned, keeping important ones within reach directly from the sidebar.

By keeping the project structure consistent and allowing capabilities to vary inside, it reduces cognitive load while remaining flexible as the platform evolves. New project types and automations can be introduced over time without breaking the core experience or requiring users to relearn the platform.

Projects Listing

Projects listing page

Create Project with Linked Tender

Create project modal with linked tender search

Project Overview - The Orientation Layer

The entry point into a project, shaped by its type and context.

Opening a project always lands the user here. The overview establishes context, surfaces the project's key details in an editable form, and offers a direct path into the available tasks. Depending on the project type, it adapts to present what is most relevant for the work ahead.

Every project, regardless of type, shares the same core layout: project details, editable financials and dates tables, and task cards showing the automations available for that project type. The structure stays predictable and learnable no matter what kind of work the project represents.

Where the overview becomes interesting is in how it adapts to the project's context:

  • When a Bidder project is linked to a tender, the overview adds a dedicated tender overview table showing the linked tender's key details, and auto-fills financials and dates directly from the tender data. The connection between discovery and project work stays visible.
  • When a Bidder project is created without a linked tender, users can run AI analysis on the project documents. It auto-fills financials and dates from the files themselves, and surfaces an analysis section grounded in the same org context used throughout the platform.
  • Issuer projects always work from their own documents. Running AI analysis auto-fills the same financial and date tables, surfaces a context-specific analysis, and generates an editable evaluation rubric that feeds directly into tasks. The AI does not just extract data, it prepares structure for the work ahead.
  • RFX projects keep the same overview layout but do not currently use AI analysis.

Users can review, adjust or override anything. The AI reduces repetitive setup without taking control away from the people who need to verify the details.

Rather than acting as a reporting dashboard, the overview is designed to help users settle into the project: providing clarity, direction, and a clear sense of what can be done next.

Bidder Project Overview

Bidder project overview view

Issuer Project Overview with AI Analysis

Issuer project overview with AI analysis section

Editable Evaluation Rubric

Editable AI-generated evaluation rubric for Issuer projects

File Manager - The Source of Truth

All documents live within a single system, accessed through different contexts.

The platform uses a unified file system that supports both organisation-wide document management and project-specific work without fragmenting where files live or how they are handled.

Users can access the full file manager directly from the platform to browse, organise, and manage documents across the organisation. Within a project, the same system is presented in a focused way, showing only the files relevant to that project and keeping users anchored to their current context.

The file system is structured around three primary areas:

  • Resources, used for shared organisational files
  • Templates, used for standardised files required by specific tasks
  • Projects, where each project has its own dedicated folder that acts as the root for all project-specific documents

This structure ensures clarity and control. When working inside a project, users remain within that project's scope and cannot accidentally move out of context, reinforcing trust and predictability in document-heavy workflows.

Any uploaded file can be opened in a viewer that adapts to its format. PDFs, spreadsheets, Word documents, Markdown and HTML all open within the same viewing experience, so review sessions stay uninterrupted regardless of what kind of document is at hand.

Uploading is only the first step. The platform indexes documents to make them AI-aware, and a dedicated processing view keeps that work visible. Users can see which files are being indexed, which are ready, and which need attention, so the AI's awareness of their content is never hidden behind a silent loading state.

Once indexing completes, each file gains an AI-generated summary, giving users a quick sense of what the document is about before they commit to reading it.

Beyond the AI's awareness, users can also contribute their own. Any indexed file supports user annotations: notes or comments on specific parts of the document. These annotations do not just live for the user, they are picked up by the AI when the file is referenced later, turning human insight into another grounding signal for future tasks and conversations.

File Manager with Details and AI Summary

File Manager grid view with details pane showing AI-generated summary

File Viewer with Annotation Mode

File viewer in annotation mode showing AI-detected bounding boxes and user annotation capability

Tasks - Where AI Does the Real Work

AI-powered workflows designed for repeatable, document-heavy work.

Tasks represent how CloudGlance applies its document intelligence within a project. Rather than exposing AI as an abstract capability, the platform packages intelligence into structured workflows that teams can run with confidence.

Tasks are project-bound by design. Users only see the workflows relevant to their project type, nothing more.

Each execution of a task is recorded as a Task Run, preserving a clear history of what was processed, when it was run, and what outputs were generated. Every project's Tasks tab presents this history as a structured list, with each run carrying its own context, status, and pathway back into the output.

Many tasks require supporting files to run properly: organisational letterheads, stamps, signatures, or reference sheets like go/no-go criteria. To avoid the friction of selecting these every time, the platform lets users configure defaults per task type in Settings.

By fitting AI tasks into the platform's shared structure, new intelligence capabilities can be introduced without changing how users interact with them.

The current task library is organised by project type. Bidder projects can run Smart Form Extraction & Filling, Tender Risk Analysis, and Document Intelligence Review. Issuer projects can run L1 Bidder Evaluation and Bidders Package Compliance Analysis. RFX projects can run RFQ Product Matching & Deviation Analysis. Each task is described separately in the platform; together, they cover the workflows the platform is currently built to support.

Project's Tasks tab showing task run history with details pane

Start a Task - A Consistent Action Workflow

A predictable way to initiate AI-powered work without breaking context.

Starting a task follows a consistent, modal-based workflow designed to keep users focused on their current context. Instead of navigating away to separate screens, task initiation happens within a contained flow that guides users through a clear, repeatable sequence: selecting the task type, reviewing inputs, and confirming execution.

The workflow adapts to where the action is initiated:

  • when starting from a project, the context is already set
  • when starting from higher-level surfaces, the necessary context is requested upfront

Inputs are often already prepared. Configured task defaults, along with project-linked documents, flow into the modal automatically, so users mostly review and confirm rather than gather files from scratch.

By keeping task initiation consistent across the platform, the structure ensures that starting AI workflows feels familiar regardless of where users begin, reinforcing confidence, reducing friction, and supporting scale as new tasks are introduced.

Start a Task - step 1
Start a Task - step 2

Task Output - From Submission to Decision

The space where a task lives, from the moment it is submitted until it becomes a reviewable output.

Once a task is initiated, the platform creates a dedicated Task Run page. This page is the task's home from start to finish, holding its context while it runs and becoming its output once complete.

Before results are ready, the Task Run page communicates state rather than leaving users guessing. Whether the task is running, has failed, or was cancelled, the current state stays visible at a glance, so users always know where their work stands. During these states, the left pane surfaces the Details of the run: what was triggered, when it was started, which files are involved, and how the task is structured.

Once the run completes, the same page transitions into the actual output view. A new Content tab in the left pane leads with navigation across the output sections, while Details remains one toggle away. The structure stays the same, but its purpose shifts from watching to reviewing.

The primary output occupies the main work area, presented in a format shaped by the task itself. Users always read results in a layout that matches the shape of the intelligence rather than a generic container.

Verification is never a separate step. Every result in a task output carries source references that can be traced back to the exact place in the original document. Users do not have to take the AI's word for anything. The evidence is always reachable.

When outputs need to leave the platform, they can. Task results can be exported as PDF reports, and structured results like extracted forms can be downloaded as ZIP archives, ready for internal review, submissions or record-keeping.

By connecting submission, processing, results and sources into a single continuous space, the platform supports both quick understanding and deeper verification. This keeps AI outputs transparent, navigable, and dependable, especially in workflows where accuracy and accountability matter.

Task in Processing State

Task Run page showing the processing state with Details in the left pane

Completed Task Outputs

Task Run page in completed state showing a Smart Form Extraction output

AI Assistant - Context-Aware Exploration

A conversational layer that adapts to user intent across the platform.

The AI Assistant in CloudGlance acts as a flexible, conversational layer that users can access from anywhere in the platform. Rather than being tied to a single screen or workflow, it responds based on what the user brings to the conversation.

The assistant has access to everything in the workspace: projects, files (with any user-added annotations), task runs, and the organisation's provided info and files. A simple question requires no setup. It already knows what the user has, and draws from it to help.

Users can start a conversation from the dashboard or create a new chat from the sidebar. When they want to be more specific, they can guide the assistant's focus:

  • attaching external files for ad-hoc queries
  • focusing the conversation on a specific project
  • enabling web search when broader information is needed

These are not requirements. They are guides. The assistant uses them as references while working, narrowing or extending its reach based on what the user signals.

When answers reference the workspace, they arrive grounded. Every claim the assistant makes carries a trace back to its source, so users can verify anything the AI says without leaving the conversation. Answers also stream in as the assistant thinks, keeping the conversation responsive.

Recent chats are always visible in the sidebar for quick return. For deeper navigation through history, an All Chats view opens a searchable modal, and any chat that matters can be pinned to keep it within reach.

This approach allows the assistant to remain lightweight and supportive, useful for exploration, clarification and quick checks, while more structured or repeatable work continues to live inside tasks.

By keeping the assistant context-aware and guidable when needed, the experience ensures that conversational AI feels integrated into the platform, not separate from it.

AI Assistant

Citations & Verification - How the AI Shows Its Work

Every AI-generated answer can be traced back to the exact place it came from.

Trust in an AI platform is not built through confidence in the answers. It is built through the ability to verify them. CloudGlance treats this as a structural decision rather than a feature, making source references a first-class part of the experience.

When a document is indexed, the platform does more than make it searchable. It identifies the structural elements on every page, Titles, Body content, Tables, Images and more, and records their exact positions. These detected elements become the foundation of an annotation layer that sits on top of the document whenever it is viewed.

The inline citation markers and source references visible in task outputs and chat responses hint at something deeper. They are not just labels. Clicking any citation opens the source document in the right pane, scrolled to the correct page and highlighting the exact element the answer came from. Users stay exactly where they are, the evidence just appears alongside.

The result is an experience where the AI never feels like a black box. Users do not have to take its word for anything. They can always see the underlying evidence, review the original context, and decide for themselves whether the answer holds up.

Verification was not treated as a feature added on top. It was treated as the structural decision that determines whether the rest of the platform can be trusted with the kind of work CloudGlance is built for.

Citation in a Task Output

Task output with citation expanded showing source document in right pane with highlighted element

Citation in a Chat Conversation

Chat conversation with citation expanded showing source document in right pane with highlighted element

Settings - Personal Preferences and Workspace Configuration

A calm configuration layer, organised around who is changing what.

Settings opens as a focused modal with a sidebar of tabs, following the same UnifiedModal pattern used everywhere else in the platform. Users do not navigate away to manage their account or workspace, the configuration layer simply slides over the existing surface, keeping context intact.

The settings are divided into two clear groups, reflecting the two kinds of decisions a user actually makes.

Personal settings are the ones any user can manage for themselves. The Account tab is where users see and update the basics tied to their identity in the platform. Preferences holds everyday choices that shape how the interface looks and feels, including theme, layout and viewing density. Security manages password updates and the safety of the active session. Data Privacy gives users control over their own search history and locally stored data, so they decide what stays and what gets cleared.

Workspace tabs sit at the organisational level, where admins shape how the workspace itself behaves. Workspace General holds the broader workspace setup, including auto-indexing behaviour for uploaded files (where available) and the customisation of project statuses. Features lists the main and additional capabilities available to the workspace, giving users visibility into what their organisation can use, with room to grow into usage limits and similar information as the platform evolves.

Two workspace tabs deserve a closer look, because they exist as design responses to specific friction in the platform.

Task Defaults

Many tasks need supporting files to run properly: organisational letterheads, stamps, signatures, or reference sheets like go/no-go criteria. Without defaults, users would have to attach the same supporting files every single time they ran a task, slowing down work that should feel routine.

Task Defaults solves this by letting users configure these inputs once, per task type. Once set, the defaults flow into the Start a Task modal automatically, so users can focus on the new context of each run rather than re-supplying the same materials. It is a small configuration with an outsized impact on day-to-day flow.

Task Defaults configuration

AI Configuration

The AI features running across the platform, the relevance signals on tender cards, the analysis on tender details, the auto-fill on Project Overview, and the analyses surfaced on projects, all need to know what the organisation actually cares about. Without that grounding, the AI would have to guess.

AI Configuration is where that grounding lives. Users provide the organisation's profile, scope of work, certifications and a go/no-go questionnaire that defines how opportunities should be assessed. From then on, every AI surface in the platform draws from the same configuration. One place to define context, many places to use it.

This is one of the clearest expressions of how the platform thinks: instead of duplicating logic or re-asking users for the same information, it builds shared layers and lets the rest of the experience benefit from them.

AI Configuration

People & Activity - Roles, Logs, and Traceability

A transparent record of who did what, and when.

Within each project, People & Activity surfaces both the people involved and the work they have done. It brings together roles, actions and system events into a single, readable timeline.

Activity logs capture key moments: task runs, file changes, updates and interactions, helping teams understand how a project has evolved and making it easier to trace decisions back to their source. The same kind of activity feed exists at the workspace level on the dashboard, where it covers everything users do across the entire workspace. This way, users can zoom in on a single project or step back to see the broader rhythm of work, without learning a different model in each place.

By keeping this information accessible and structured, CloudGlance supports accountability and confidence in collaborative, document-heavy workflows where clarity and traceability matter.

People & Activity

Sign In - The First Impression

A first encounter that introduces the platform before the user even logs in.

Sign In is more than a credentials page. It is the first moment a new user meets CloudGlance, and the design treats it that way. Rather than dropping users into a bare form, the page introduces the platform through three working glimpses of what it actually does.

These three animations, designed and built for the brand's broader presence and reused here, were chosen deliberately. They represent the three pillars users need to understand the platform at a glance: the AI Assistant grounded in real project context, the live indexing flow that turns raw documents into AI-aware material, and an Automations preview built around Form Extraction. Together, they give a new user a simple mental model before they even sign in: ask the AI, understand your files, run intelligent tasks.

The other side of the screen holds the actual sign-in form, branded and quiet, surrounded by softly drifting document panels and a gentle gradient mesh in the background. The tagline below grounds it all: AI Analysis. Document Extraction. Structured Insights.

The Sign In page carries the same visual language used across the platform, the website and the brand's other materials, but here it shows more of its expressive side. The platform itself stays minimal because it is a working environment for long sessions, while the sign-in screen has room to breathe and welcome.

The result is a sign-in page that doubles as the platform's most concise introduction. The design intent was clear: the moment a new user lands here should already communicate what kind of platform sits behind it, before they sign in.

CloudGlance Sign In page

Visual System

Core visual principles

  • Soft greys for surfaces to keep the interface calm and unobtrusive
  • Blue used with restraint to guide focus without overpowering content
  • Neutral, highly readable typography for document-heavy workflows
  • Consistent spacing and simple, functional components
  • Minimal iconography to reduce visual noise
  • Full light and dark theme support, both built around the same restraint

Built for long work sessions
The visual system is designed to remain comfortable over extended periods of use. Stable layouts, predictable hierarchy, and balanced contrast help reduce fatigue and keep attention on content rather than interface elements.

Built on a shared component vocabulary
Every interface in the platform is built from the same set of components: buttons, forms, panels, dialogs, tabs and cards. This shared vocabulary keeps the visual experience predictable as the platform grows, so new features always feel like part of the same system rather than additions stitched on top.

Extending into the shell
The design system does not stop at colours and components. The same restraint and structure carry through to the platform's shell: the sidebar, left and right panes, navigation patterns, and the intentional states that handle empty or failed views. The infrastructure of the platform is part of the visual system too, designed with the same calm logic as the surfaces it holds.

Supports scale
As the platform grows to support more tasks, workflows, and industries, the visual language remains intentionally restrained. This ensures that increasing functional complexity does not translate into visual clutter, allowing the structure of the product to stay clear over time.

Foundations

Design System - Foundations tab

Colours and Theme

Design System - Colours tab in light theme
Design System - Colours tab in dark theme

Components

Design System - Components tab, part 1
Design System - Components tab, part 2

Shell

Design System - Shell tab

Implementation & Systemisation

Turning design intent into a scalable, enforceable system.

The structure behind CloudGlance was not an outcome of implementation, it was the starting point. From early on, the platform was designed around three unified pillars: a unified way of composing pages, of handling actions, and of running workflows. Unified Layout, Unified Modal and Unified Task. The intention was clear from the beginning: no screen, no action, no task should invent its own rules.

These three systems began in design. They shaped how I worked from the very first screen. Every layout I drew, every modal I prototyped, every task flow I mapped sat inside this structure. The Figma files, the prototypes, the documentation, all of it was built around these three pillars before a single line of code was written. They were not implementation decisions. They were design decisions, structural ones, made to keep the platform coherent as it grew.

The frontend team began implementing the product, and the visual layer matched the design closely. They used the shared components, the colour variables, the typography system. But the underlying architecture went a different way. Each page was built on its own. Each modal was wired up independently. Each task flow followed its own logic. The team was working in a familiar developer mindset, building screen by screen with shared parts, rather than building from a shared structural backbone.

Over time, this began to show. New pages started defining layout differently from older ones. Similar actions behaved in subtly different ways. New features required increasing decision-making just to "fit in" with the rest of the platform. The visual direction held, but the structural integrity did not. The design intent was being slowly diluted, not by neglect, but by the natural consequence of building one screen at a time without a structural system to hold them together.

At that stage, the challenge was no longer UI polish. It was about protecting system integrity and the design portrayal I had committed to.

So I took it on myself. I went into the frontend codebase and built the three systems directly, in code. Unified Layout. Unified Modal. Unified Task. Not as guidelines, not as patterns to follow, but as enforced architecture that every page, every action and every task flows through. The same structural thinking that had shaped the design now shaped the implementation, because the implementation needed it to.

What started as a frontend cleanup turned into ownership. The entire frontend structure of the platform today is something I designed and built. This was never the original ask, and it was beyond what I expected of myself when the project started. It became the work because the work needed it.

Unified Layout - A Composable Page Structure

One structural backbone, inherited by every page.

Unified Layout is the structural backbone for every page in the platform. A single, composable page structure that every screen inherits from.

Instead of treating pages as independent layouts, the platform is built from a fixed set of structural regions, each with a strict responsibility. Pages do not decide layout. They declare intent and assemble themselves using predefined parts.

Structural Regions and Responsibilities

Page Header
The header establishes page identity and global context. It consistently handles navigation, titles, status indicators, and primary actions.
Main platform pages use static titles (such as Dashboard or Projects), while internal pages adopt dynamic titles like project or task names. Badges communicate important state, and global elements such as notifications remain persistently accessible.

Action Bar
The action bar is a dedicated interaction layer tied directly to the page's content. It houses page-level controls such as tabs, search, filters, sorting, view toggles, and context-specific modes.
All content-affecting controls live here, keeping interaction density predictable and contained.

Center Pane
The center pane is a structural container rather than content itself. It always groups the action bar, main content, and footer together, preserving vertical rhythm and keeping controls visually anchored to the content they affect.

Center Content
This is the primary work surface: where documents, outputs, conversations, and data are presented. It is intentionally free from navigation or layout logic.

Page Footer
The footer appears only when required and communicates state rather than decoration. Item counts, result totals, and pagination live here, giving users feedback about scale without interrupting flow.

Left Pane
The left pane is an optional, contextual workspace used when deeper interaction is required. It supports filtering, within-page navigation, step progression, and structured detail views without displacing the primary content.

Right Pane
The right pane is reserved primarily for reference and verification. It is used to view files, annotated documents, and citation-backed sources alongside the main content, allowing users to validate information without losing orientation.

Structural Regions and Responsibilities

Composability Rules

Pages are assembled using a limited set of valid compositions:

  • center only
  • left + center
  • center + right
  • left + center + right

Each region follows strict sizing and behaviour rules. The center pane expands to fill available space, side panes remain predictable in width, and global navigation adapts rather than reshaping the page. This ensures that added complexity never destabilises the layout.

Unified Modal - A Structured Action System

One structural model, inherited by every action.

Unified Modal is the structural model behind every action in the platform. Just like Unified Layout shapes pages, Unified Modal shapes actions, a single, composable structure that every action-based interaction inherits from.

Instead of treating modals as one-off UI flows, every action is built from the same internal structure. The modal handles layout, behaviour, and state. Individual actions only provide content and intent.

Modal Structure and Responsibilities

Modal Header
Establishes context and orientation. It contains the action title and a close control, ensuring users always understand what they are doing and how to exit safely.

Modal Sidebar (Optional)
For complex configurations like Settings, the modal can include a sidebar of tabs or sections that navigate within the modal itself. The structure stays the same, the sidebar simply lives alongside the content area when needed.

Action Bar (Row-Based, Optional)
The action bar functions as a flexible control layer inside the modal. It is composed of individual rows that appear only when required, such as descriptions, step indicators, search inputs, or filters. Different actions surface different rows, but the structure remains unchanged.

Content Area
The content area communicates the core purpose of the action: configuring, reviewing, editing, or confirming, without handling layout logic itself.

Modal Footer
The footer handles outcomes. Primary and secondary actions live here, keeping confirmation and progression predictable across all actions.

Modal Structure and Responsibilities

Unified Task - A Composable Workflow System

One configurable system, holding every AI workflow in the same shell.

Unified Task is the structural model behind every AI workflow in the platform.

The design problem came first. Tasks were going to keep growing as the platform added new capabilities, new domains and new automations. If every task was designed and built as its own page, two things would go wrong fast. The work of producing each new task would scale with the platform, and worse, every new task would feel like its own island, behaving slightly differently from the ones around it. The platform would fragment from the inside.

Unified Task was the answer to that. A single system that holds every task in the same structural shell, so the user always encounters tasks the same way, no matter what kind of intelligence the task represents.

In design, this meant defining one canonical structure for tasks: how they start, how they communicate state, how they present their results. In code, it meant turning that structure into a system where adding a new task no longer required designing a new page. Each task became a single configuration file that declares the task's intent and content. The system reads the config and builds the rest.

The system itself is built around three structural parts.

Input Form Variants

Input Form is the file selection step inside the Start a Task modal. The config declares what kinds of inputs the task needs, and the form is rendered automatically. Single file pickers, multi-file selectors, folder pickers, target folder selection, checkboxes and radio groups all live within the same vocabulary. New input types can be added without rewriting existing tasks.

Input form variants demo showing every supported input field type

Processing States

Processing States handle every state a task moves through. Loading, Processing, Completed Loading, Failed, Cancelled and Unknown each carry their own visual treatment, message and indicator. The system handles all of these in one place, so each task does not have to reinvent how it communicates progress or failure.

Output Sections

Output Sections are the actual results, composed from a small vocabulary of section types. Sections come in different shapes for different kinds of answers: tables for structured data, metric grids for high-level numbers, detail lists for itemised findings, markdown blocks for prose, and so on. The config picks the sections it needs and provides their content.

Section types are not a closed set. As the platform evolves, new section types can be added to the vocabulary without breaking any existing task. Tasks built today continue to work, and tasks built tomorrow can use richer ways of presenting results.

The Orchestrator

Around all of this, Unified Task acts as the orchestrator. It routes the task page through its states, manages the left pane between Details and Content, handles the right pane for file previews, and ties everything to the same execution lifecycle. The same shell holds every task in the platform.

Unlike Unified Layout and Unified Modal, which serve as base structural systems for any product built on top of this architecture, Unified Task is a CloudGlance-specific feature. It uses both other pillars to render itself, sitting inside Unified Layout and using Unified Modal for its initiation flow.

Unified Task as the orchestrator

What These Changed in Practice

What three composable systems changed about how work happens on the platform.

Once these three systems were in place and enforced in the frontend codebase, the way work happened on the platform changed fundamentally.

Page creation shifted from designing layouts to assembling intent. New screens no longer defined their own structure. Instead, they composed themselves from existing regions, following the same rules every other page used. Layout-level decision-making disappeared from individual features, and consistency became the default rather than something to maintain.

Actions followed the same shift. New actions no longer needed new flows. Create, edit, search, settings and task initiation all started from the same structural model, behaving consistently regardless of where they were triggered. Users encountered the same mental model across every action type, and modal behaviour could be updated once and applied everywhere.

Tasks moved even further. Adding a new AI workflow once required creating five to eight files across input forms, state handling, output rendering and routing. Now it requires writing one config file. The system does the rest, plugging the new task into the same execution shell every other task already used.

The cumulative effect was bigger than any single pillar. Pages became composable. Actions became composable. Workflows became composable. The platform stopped behaving like a collection of screens and started operating as a system of composable surfaces, where new capability could be added without rethinking the foundation underneath it.

Beyond what it enabled, this also changed what it took to maintain. A change to layout behaviour, action patterns or task structure no longer meant touching every screen. One change in the right place flowed everywhere it needed to. The platform could keep growing without the work of maintaining it growing alongside.

The Base Layer and Platform Features

The moment the platform turned out to be two layers, not one.

Somewhere along the way, the work of building CloudGlance produced something larger than CloudGlance.

The pillars I had been designing and enforcing in the codebase were not, on closer inspection, all the same kind of thing. Two of them were product-agnostic. They described how to compose pages and how to handle actions, regardless of what the product actually was. The third was different. It described how AI tasks ran inside this specific product. CloudGlance.

I had not been building one platform. I had been building two layers that happened to share a codebase.

The base layer is the foundation. It contains everything that holds the system together regardless of what the system is being used for. Unified Layout sits here. Unified Modal sits here. So does the visual system that shapes every surface, the shared component vocabulary, the theming that supports light and dark modes, and the global navigation and interaction patterns that define how any product built on this foundation should behave. None of these are specific to document intelligence, tenders or CloudGlance. They are simply how a product on top of this architecture works.

The platform layer is everything that makes CloudGlance the product it is. Project Management, the File Manager, Tender Search, the AI Assistant, Citations and Verification, Settings, and Unified Task. These are the features that turn the base layer into a document intelligence platform. They use the base layer to render themselves, and they live entirely on top of it.

This separation was the natural result of how I had approached the work from the beginning, building each piece of the system to do one thing cleanly, without bleeding responsibilities across layers. What was unexpected was how much the base layer could carry on its own. It turned out to be robust enough to support a completely different product, with completely different features, without changing a single thing underneath.

Mobile as a Continuation of the Same System

The same systems, adapted when space runs out.

Mobile access did not come from a separate design effort. It came from recognising that the same systems that held the desktop platform together could absorb mobile without a parallel design.

The decision itself was practical. The team wanted mobile coverage but was leaning toward a native app, with all the cost, separate codebases and maintenance that comes with it. A native app belonged in the future, not the present. What was actually needed right then was the ability to open the platform on a smaller screen and continue working without re-learning anything. The platform was already a web app. It just needed to behave like one when accessed from a phone.

The base layer made this possible. Because Unified Layout, Unified Modal and Unified Task were all built around composable structural regions, mobile became a matter of teaching those regions how to behave when space ran out, not redesigning them from scratch. The sidebar collapses into an overlay. Side panes become full-screen sheets that slide in from their original directions. Modals adapt into swipeable bottom sheets. Tasks follow the same shifts because they sit on top of the same systems.

Mobile was given the same care the rest of the platform was. Favicons, a web app manifest, an app name and theme colours were set up so that when users add the platform to their home screen on iOS or Android, it behaves like a native installation. The CloudGlance identity carries over completely. The user is not opening a website. They are opening CloudGlance.

Mobile is honest about its limits. Task outputs are text-heavy and citation-rich, and that kind of long-form review experience is genuinely better on a larger screen. What mobile covers instead is everything around the deep review: discovery, initiation, monitoring, light interaction. The decision was to make mobile useful for the in-between moments of a workflow, while leaving the heavy lifting to the desktop session where it actually fits.

Mobile became an extension of the system, not a parallel design. The base layer carried it.

Studio - The Base Layer Proves Itself

When the base layer left CloudGlance and held up another product entirely.

Some of the strongest signals about a system are the ones you do not plan for.

CloudGlance, like most growing companies, eventually needed an internal management platform. A place for the team to handle organisations, users, defaults, overrides, configurations, internal product data and the dozens of small operational decisions that make a customer-facing product runnable in real life. Studio is that platform.

Studio was originally built by the team for the team. It was working, but it had grown organically, with its own rough base layer assembled along the way. As more areas were added, the same problems that had plagued CloudGlance before the systemisation work began to appear: drift, inconsistency, decisions multiplying every time a new section was needed.

The team asked me to make it better.

What I did was straightforward in description and revealing in practice. I removed the existing base layer entirely and replaced it with mine. The same Unified Layout. The same Unified Modal. The same visual system, the same component vocabulary, the same theming, the same global navigation and interaction patterns I had built for CloudGlance. None of it was redesigned for Studio. None of it needed to be.

Once the base layer was in place, Studio's pages began to fall into the structure naturally. Organisations, Platform Catalog, Configurations, Cost Management, internal product modules. Each one composed itself out of the same regions every CloudGlance page used. The work that remained was Studio's own platform layer: its specific features, its specific flows, its specific decisions. With the structural questions already answered, that work was significantly faster and more focused.

Studio is built on a different framework underneath. CloudGlance runs on Next.js, Studio runs on React with Vite. The base layer carried across that difference too, because it was never tied to a specific runtime. It was tied to a set of structural ideas that any modern frontend can implement.

This was the moment the base layer stopped being a theory.

Studio even carries its own variant of the brand mark, identified as CG Studio. The same identity, the same restraint, the same calm visual presence, just signed differently.

Two products. Different domains. Different runtimes. One foundation. The same Unified Layout, the same Unified Modal, the same visual language, the same interaction patterns, holding up two completely different platforms with no reduction in quality on either side. The base layer was real, and it was strong enough to do its job in a place I had not designed it for.

What I had built for one product turned out to be infrastructure for more than one. That changed how I think about the work.

Outcome & Impact

Looking back, the work produced three things, each carrying weight on its own: a product, a system, and a foundation.

A real, client-ready platform.
CloudGlance moved from internal AI capability to a structured, dependable product used by close to ten enterprise clients today. Teams across construction, contracts, tendering and compliance workflows are using it as part of their day-to-day work, validating that what they needed was not more AI, but a calm, structured interface that made the AI usable.

A design that covers the full workflow.
By the time it stabilised, the design covered eighteen feature areas and six AI-powered task workflows, threaded together into a single continuous path from tender discovery through bidding to evaluation. The structural decisions made early meant users could move across that full workflow without learning new interaction models along the way. What used to require multiple separate tools now sits inside one structured environment, by design.

A frontend system that holds the platform together.
Underneath the visible product is the structural work that makes it possible. Three pillars, Unified Layout, Unified Modal and Unified Task, designed and then enforced in code, hold every page, every action and every workflow in the platform. New features now plug into the same structural shell rather than inventing their own. Consistency is the default. Maintenance does not scale with the product.

A reusable base layer that powered a second product.
What started as work for a single platform turned out to be infrastructure for more than one. Studio, CloudGlance's internal management platform, was rebuilt on the same base layer in roughly two weeks, including its own platform-specific layer of features. Two products, two domains, two different runtimes underneath, sharing one foundation. The base layer was no longer a theory. It was something the company could build on.

A unified brand and product foundation.
The identity now carries consistently across the platform, the website, the sign-in experience, the mobile presence and Studio. Brand and product reinforce each other through a shared visual and structural language. CloudGlance has a stable, enterprise-facing presence that feels intentional rather than experimental.

Honest about its learning curve, and rewarding for the time spent.
The platform asks something of new users: an initial moment of getting used to its structure, its panes, its navigation patterns. After that, the same patterns repeat everywhere, and what starts as learning becomes familiarity. Teams that have spent time on the platform comment on how dependable it feels in long sessions, and how the visual presence carries the same calm tone across every surface. The team has consistently received positive feedback about the platform's feel and the brand identity behind it.

Built to scale without redesigning the core.
Because the structural decisions were made once and enforced in code, new capabilities can be added without redesigning the foundation underneath them. New project types, new automations, new domains all fit into the same patterns. The case study ends with the platform's current scope, but the foundation that holds it can carry significantly more.

Overall.
Across the project, CloudGlance moved from a collection of AI capabilities to a cohesive system where user experience, product structure, brand presence and frontend implementation align. That alignment is what the design work was ultimately for.

Reflection - Why This Project

Where the work taught me more about my own practice than I had set out to learn.

CloudGlance offered the kind of problem I care most about: a real product, still evolving, where decisions about structure, behaviour, and scale actually matter. But what it gave me back was something I had not expected when I started.

The work allowed me to step beyond individual screens and focus on how a system holds together over time, how pages relate to each other, how actions remain predictable, and how design intent survives implementation. It became a space to bring together my thinking across product design, interaction design and frontend execution, and to take responsibility for how those layers connect.

Somewhere along the way, it stopped being just a project. The structural work I had been doing in design started asking to be enforced in code, and I crossed a boundary I had not planned to cross. I went from designing the platform to building its frontend foundation. That was not the original ask. It was something I chose because the work needed it, and because the design portrayal I had committed to needed protecting. Crossing that boundary changed how I see my own practice. I no longer think of design and implementation as two separate things to hand off between. I think of them as one continuous responsibility, and CloudGlance is where that became real for me.

The biggest realisation came later. The structural systems I had built turned out to be larger than the product they were built for. Two of the three pillars belonged to a base layer that had no specific tie to CloudGlance at all. When Studio needed a rebuild, that same base layer slid into a different product, with a different framework underneath, and held it up just as well. I had not planned to build infrastructure. I had planned to build a platform. But the discipline I had brought to one piece of work turned out to be portable, and that taught me something about the value of structural thinking that I am still sitting with. Patient work, done properly once, can carry weight in places you never imagined it would have to.

I am grateful for the trust Manish placed in me from the beginning, and the freedom to work at this depth: to question early assumptions, to refine structure, and to iterate without rushing toward surface polish. That space made it possible to focus on clarity, consistency and long-term resilience rather than short-term output. Rather than moving quickly to the next thing, I stayed with this problem long enough to see how ideas behave once implemented, and to build something that could grow without needing to be constantly rethought.

This project reaffirmed the kind of work I want to do moving forward: designing calm, structured products for complex workflows, where systems matter more than novelty, clarity matters more than speed, and where the responsibility to hold a system together is something I am willing to carry across whatever boundaries the work requires.