2026

HowNow / Personal

Designing Smart Dashboard, an

AI-powered analytics feature

An AI Project

An AI Project

Project Overview

Project Overview

Background

Background

Two years ago at HowNow, I designed the first version of Smart Dashboard, an AI-powered analytics feature that let L&D teams build custom dashboards and query their learning data using natural language. I got as far as rough screens and a basic flow before the feature was deprioritised. It never shipped.

I have come back to it now to take this unfinished brief from concept screens to a working interactive prototype, using AI not just to design faster, but to spend more time on parts of UX that usually get skipped, like edge cases, states, accessibility, and heuristic evaluation.

Timeline

Timeline

What would have taken roughly 2–3 months in a traditional design cycle was done in about 10–15 days using AI-assisted workflows, without skipping the depth that usually gets cut under delivery pressure.

Figma + Claude Code + Framer

Tool

Figma + Claude Code + Framer

Tool

Context

What the original work was missing

Incomplete flow

Main screens existed, but edge cases, empty states, and error states were not designed

No design system

Components, spacing, and styling were inconsistent across screens

No interactivity

Static frames with no connection between states or any working AI behaviour

No UX evaluation

No UX evaluation No heuristic review, accessibility audit, or state coverage check

What the original work was missing

What the original work was missing

Incomplete flow

Main screens existed, but edge cases, empty states, and error states were not designed

No design system

Components, spacing, and styling were inconsistent across screens

No interactivity

Static frames with no connection between states or any working AI behaviour

No UX evaluation

No UX evaluation No heuristic review, accessibility audit, or state coverage check

Feature
Smart Dashboard

A feature that lets L&D teams build custom analytics dashboards using AI, by typing or speaking a question in natural language, getting back the right chart, and adding it to a dashboard canvas one query at a time.

Core capabilities

Core capabilities

Natural language queries

Users ask questions like "show course completion rates by team" and get back the data as a chart

AI-suggested visualisations

AI-suggested visualisations

The system picks the most suitable chart type by default, and offers alternatives the user can switch to

Build a dashboard one query at a time

Build a dashboard one query at a time

Each AI response can be added to a shared canvas, building up a full dashboard through conversation

Save, preview, and revisit

Save, preview, and revisit

Completed dashboards live in a Smart Dashboard library users can return to

👬🏻 Users

L&D managers, learning analysts, and people operations leads, the people responsible for proving learning impact to the business but rarely trained as data analysts.

They are not data analysts

Most know what they want to measure but not how to query it

They live in spreadsheets

Manual exports, pivot tables, and screenshots pasted into decks are the default workflow

They report to people who want answers fast

Heads of People, CHROs, and exec teams asking questions that need same-day responses

They distrust black-box AI

Comfortable with AI as a helper, sceptical of AI making decisions for them

Feature
Smart Dashboard

A feature that lets L&D teams build custom analytics dashboards using AI, by typing or speaking a question in natural language, getting back the right chart, and adding it to a dashboard canvas one query at a time.

Core capabilities

Natural language queries

Users ask questions like "show course completion rates by team" and get back the data as a chart

AI-suggested visualisations

The system picks the most suitable chart type by default, and offers alternatives the user can switch to

Build a dashboard one query
at a time

Each AI response can be added to a shared canvas, building up a full dashboard through conversation

Save, preview, and revisit

Completed dashboards live in a Smart Dashboard library users can return to

Designing for AI

The screens are only half the work. The harder part is the product thinking behind the AI, how it behaves, how the user stays in control, and what happens when it gets things wrong.

AI as collaborator, not generator

The user makes the final call, not the AI.

Each response is a suggestion the user can accept, switch, or skip, never auto-saved.

Trust through visibility

Every AI response shows the data behind it.

Written summary + chart + named data source. No black-box answers.

No regenerate button - by design

Regenerating fixed data produces no new answer.

Chart alternatives are already shown alongside every response. Adding regenerate would duplicate functionality.

Conversation, not single queries

The AI keeps context across follow-ups.

Users refine instead of restarting, matching how real analytical thinking works.

Voice and attachment - designed, not prototyped

Forward-looking affordances, intentionally scoped out.

Both signal where the product could go without diluting the core
query-to-dashboard flow.

What I'd add with more time

Confidence indicators - signal how sure the AI is in borderline answers.

Error recovery - let users correct misunderstood queries without restarting.

Memory across sessions - preserve past conversations and dashboards

Conversation, not single queries

The AI keeps context across follow-ups.

Users refine instead of restarting, matching how real analytical thinking works.

Voice and attachment - designed, not prototyped

Forward-looking affordances, intentionally scoped out.

Both signal where the product could go without diluting the core
query-to-dashboard flow.

What I'd add with more time

Confidence indicators - signal how sure the AI is in borderline answers.

Error recovery - let users correct misunderstood queries without restarting.

Memory across sessions - preserve past conversations and dashboards

Mapping the UX Surface

Before refining screens, I needed to know every state, edge case, and flow the feature had to handle. This is the work that usually gets cut on real product teams, and the work AI is genuinely good at accelerating.

5 Screens

Dashboard
Smart Dashboard listing
Template selection
Dashboard builder with AI panel, Save/Preview

4 Flows

First-time empty state
Template-based creation
AI query and add to canvas
Save and revisit

12+ States

Empty, Typing, Generating, Response, Chart picker, Error, No data, Added to canvas, Follow-up query, Voice active, Attachment uploaded, Success

How AI accelerated this

How AI accelerated this

1.

I prompted Claude to
pressure-test the flow.

Given this feature, what are all the states and edge cases I haven't designed for?" - within minutes I had a list it would have taken hours to write solo.

2.

I treated the output as a starting point, not a finished list

Claude surfaced obvious states (loading, error) and useful edge cases (empty data results, ambiguous queries). I added the ones it missed, voice permission denied, queries that return no chart, and a collapsible chart card so users can hide responses that take up too much space on the canvas.

3.

The result was a complete state map before I touched a single screen

Designing with the full surface in mind from the start meant fewer rewrites later.

Edge cases that shaped the design

Edge cases that shaped the design

Ambiguous query

"Show me engagement" - engagement of what? Across what timeframe? The AI asks a clarifying follow-up instead of guessing.

Query returns no data

Query returns no data

Empty result states needed to feel helpful, not broken - suggested rephrasings and a link to data sources.

Multiple charts could answer the same question

Multiple charts could answer the same question

Resolved through the chart picker - AI defaults to its best pick, user switches if needed.

User changes their mind
mid-conversation

Added charts can be removed from the canvas before saving - nothing is locked in until "Save dashboard."

Drag-and-drop with progressive
row reveal

Charts drag from the AI panel into the canvas.

Drag-and-drop with progressive
row reveal

Charts drag from the AI panel into the canvas.

Ambiguous query

"Show me engagement" - engagement of what? Across what timeframe? The AI asks a clarifying follow-up instead of guessing.

5 Screens

Dashboard
Smart Dashboard listing
Template selection
Dashboard builder with AI panel, Save/Preview

4 Flows

First-time empty state
Template-based creation
AI query and add to canvas
Save and revisit

12+ States

Empty, Typing, Generating, Response, Chart picker, Error, No data, Added to canvas, Follow-up query, Voice active, Attachment uploaded, Success

Building the Design System Backwards

Traditional Process:

system → screens → prototype.

Process I followed:

prototype → extract system → refine screens.

prototype → extract system → refine screens.

Prompt used to build design system

Claude generated system

What the system covers

Tokens - colours, typography, spacing, radius, shadows

Components - cards, inputs, buttons, chart containers, AI message blocks, navigation

Patterns - AI conversation flow, dashboard canvas behaviour, modal layering

How AI accelerated this

1.

Built the prototype first

Components created in code as screens came together

2.

Extracted the system from the prototype

One prompt pulled tokens, spacing, typography, and components from the HTML and CSS

3.

Refined the Figma screens using the system

Brought the extracted system back into Figma as the foundation for cleanup

1.

Built the prototype first

Components created in code as screens came together

2.

Extracted the system from the prototype

One prompt pulled tokens, spacing, typography, and components from the HTML and CSS

3.

Refined the Figma screens using the system

Brought the extracted system back into Figma as the foundation for cleanup

Where AI fell short

The system wasn't production-ready out of the box. Icons were generated as placeholder arrows instead of actual SVGs. Template cards came through as empty grey boxes with no content. Several components had broken auto-layout,
misaligned elements, and inconsistent spacing. These needed manual fixing in Figma.

Why It's Still Fine ✨

AI generated 80% of the system in minutes - tokens, typography, cards, buttons, navigation, chart containers.
The remaining 20% was pixel-level cleanup that any designer expects to do. AI isn't meant to produce pixel-perfect components yet. It gets you to the starting line fast, the last mile is still yours.

Screen Refinement

The screens didn't come out right on the first try.

Most of the work happened in the loop - prompt —> review —> push back —> refine.

Prompt

Prompt

(Describe, intent, constraints)

Generate

Generate

(Claude produces the HTML/CSS)

Review

Review

(Design system, UX)

Push back

Push back

(what's wrong + why)

Refine

Refine

(Iterate until finalised)

Two moments where pushback mattered

Two moments where pushback mattered

The screens didn't come out right on the first try.

Most of the work happened in the loop - prompt —> review —> push back —> refine.

AI panel hierarchy was wrong

Claude reinterpreted the AI panel as a generic chatbox, breaking the screen's hierarchy.

Fix: Shared the original Figma screenshot and called out specific hierarchy issues. Rebuild held.

Switching tools when AI hit its limit

Claude couldn't produce realistic dashboard thumbnails after 3 attempts.

Fix: Moved the screen into Figma, fixed thumbnails manually, fed it back via MCP.

What AI was good at

Generating structure fast - usable layouts in minutes

Holding the design system - stayed consistent once given tokens

Producing realistic content - chart labels and copy that read like real product

What AI got wrong

Reinterpreting clear briefs - defaulted to its own assumptions on hierarchy

Visual fidelity on complex thumbnails - Figma had to take over

Generic AI patterns- reached for ChatGPT-style layouts when the product needed something more native

Final Screens and States

Core AI interaction

Core AI interaction

Empty panel · Generating · Response with chart · Chart picker open

Dashboard canvas

Dashboard canvas

Chart added · Collapsible card · Multi-row drag-drop · Preview

Flow & navigation

Flow & navigation

Smart Dashboard listing · Template selection

Edge handling

Edge handling

Empty results · Error · Ambiguous query

Heuristic Evaluation

Auditing end-to-end flow with AI

Auditing end-to-end flow with AI

I prompted Claude Code to audit the working prototype against Nielsen's 10 heuristics - a full review across every state, surfaced in minutes.

18 States

18 States

Audited
listing, editor, modals, and AI interaction

39 findings

0 Critical
4 Major
24 Minor
11 Cosmetic

Verdict

2 heuristics passed
8 partial pass
0 failed

39 findings

0 Critical
4 Major
24 Minor
11 Cosmetic

Verdict

2 heuristics passed
8 partial pass
0 failed

Issues identified 🚨 & Fixes Applied

No save confirmation toast

Save confirmation toast added ✅

No editor onboarding

Onboarding tutorial added ✅

Delete confirmation has no undo

Undo option added ✅

AI suggestion prompts vanish after first query

Kills discoverability

Where AI got it right and where it didn't

Where AI got it right and where it didn't

The audit correctly flagged that suggestion prompts disappearing after the first query was a discoverability issue.

When I asked AI to fix it, the auto-fix kept the suggestions persistently visible above the text box at all times - which was the wrong solution. It cluttered the input area and broke the intended interaction.

I removed the fix and kept the original behaviour.

The audit was right about the problem. The auto-fix was wrong about the solution. Catching that difference is the part AI can't do for you.

Accessibility Audit

Auditing for WCAG 2.1 AA

Auditing for WCAG 2.1 AA

I prompted Claude Code to audit the prototype against WCAG 2.1 Level AA - colour contrast, keyboard navigation, focus states, ARIA, semantic HTML, motion, headings, and touch
targets - across every state.

12 States

12 States

Audited listing, editor, modals, and
AI interaction states

42 findings

6 Critical
14 Major
16 Minor
6 Advisory

Verdict

6 of 10 areas failed
4 partial pass
0 passed cleanly

42 findings

6 Critical
14 Major
16 Minor
6 Advisory

Verdict

6 of 10 areas failed
4 partial pass
0 passed cleanly

What I fixed

What I fixed

17 of 19 critical and major issues fixed

2 already compliant

22 minor and advisory issues documented for V2

Before (Example)

After (Example)

Dashboard cards now keyboard reachable - primary action of the listing page restored for keyboard users

Final Interactive Prototype

The end-to-end flow, built in HTML and CSS - from dashboard listing through template selection to the AI query panel and dashboard canvas. Every state, interaction, and edge case from the previous sections, working live.

What the prototype covers

What the prototype covers

Full flow - Dashboard → Smart Dashboard listing → Template selection → Editor with AI panel → Save → Listing populated

13 states - every state from Section 7 reachable in the live prototype

Real interactions - drag-and-drop with progressive row reveal, chart type switching, collapsible cards, AI streaming responses, conversational follow-ups

Reflection

AI made this possible in a week instead of a quarter. It was fast on the boring parts and acted as a second pair of eyes I wouldn't have had solo. Where it fell short was judgement - knowing what to remove, when to switch tools, and which decisions actually matter to the user.

AI made this possible in a week instead of a quarter. It was fast on the boring parts and acted as a second pair of eyes I wouldn't have had solo. Where it fell short was judgement - knowing what to remove, when to switch tools, and which decisions actually matter to the user.

The Claude Code × Figma MCP loop is what made the workflow real, when AI couldn't produce something in code, I built it in Figma and fed it back. The upside of designing this way is speed and depth. The downside is AI defaults to generic patterns and over-corrects when you ask it to fix things. The designer has to push back constantly, or the output drifts toward the average.

The Claude Code × Figma MCP loop is what made the workflow real, when AI couldn't produce something in code, I built it in Figma and fed it back. The upside of designing this way is speed and depth. The downside is AI defaults to generic patterns and over-corrects when you ask it to fix things. The designer has to push back constantly, or the output drifts toward the average.

The honest gap is what I couldn't do alone. With real users, the next step would have been usability testing - watching people use the AI panel, the drag-and-drop, the template flow, and changing the design based on what actually broke. With stakeholders, the process would have looked different again - business priorities shaping scope, engineering shaping what's feasible, both shaping trade-offs I made on my own here.

The honest gap is what I couldn't do alone. With real users, the next step would have been usability testing - watching people use the AI panel, the drag-and-drop, the template flow, and changing the design based on what actually broke. With stakeholders, the process would have looked different again - business priorities shaping scope, engineering shaping what's feasible, both shaping trade-offs I made on my own here.

Where this goes next

Where this goes next

Usability testing - validate the AI flow with real L&D users

Usability testing - validate the AI flow with real L&D users

More AI panel capability - voice input, working attachments, follow-up refinement

More AI panel capability - voice input, working attachments, follow-up refinement

More AI panel capability - voice input, working attachments, follow-up refinement

Persistent context - past conversations and dashboards preserved across sessions

Persistent context - past conversations and dashboards preserved across sessions

Onboarding - first-time users currently have no guide for the drag-and-drop mechanic

Onboarding - first-time users currently have no guide for the drag-and-drop mechanic

Onboarding - first-time users currently have no guide for the drag-and-drop mechanic

Have a project idea in mind? Let’s chat about how we can bring it to life— virtually, from anywhere in the world!

Project Overview

Project Overview

Background

Two years ago at HowNow, I designed the first version of Smart Dashboard, an AI-powered analytics feature that let L&D teams build custom dashboards and query their learning data using natural language. I got as far as rough screens and a basic flow before the feature was deprioritised. It never shipped.

I have come back to it now to take this unfinished brief from concept screens to a working interactive prototype, using AI not just to design faster, but to spend more time on parts of UX that usually get skipped, like edge cases, states, accessibility, and heuristic evaluation.

Timeline

What would have taken roughly 2–3 months in a traditional design cycle was done in about 10–15 days using AI-assisted workflows, without skipping the depth that usually gets cut under delivery pressure.

Figma + Claude Code + Framer

Tool