Tony Hersey

Dashboard System

Turning a 15-Second Load Time into a Scalable, Modular Product Feature

Role
Product Design, UX/UI, Front-End Architecture (CSS)
Status
Shipped, in active use, and continuously extended
Dashboard System — modular widget UI product shot

Problem

Pinpoint's LMS homepage had two distinct problems, and the obvious one was hiding the bigger strategic issue.

  1. The Obvious Bottleneck (Performance): The page rendered as a single large server response. Every panel had to compute sequentially before anything reached the browser. For data-heavy client homepages, users sat looking at a blank screen for over 15 seconds.
  2. The Strategic Dead End (Engagement): The homepage served a static, one-size-fits-all layout. Because we couldn't promote features based on what a specific client actually licensed, high-value investments like video libraries and coaching went entirely unnoticed. No two clients ran the same build, but every homepage looked the same.

The Audience

We were running a multi-tenant SaaS product serving three distinct user types the exact same static page:

  • Learners (Advisors/Reps): Needed training status and upcoming compliance requirements at a glance.
  • Managers: Needed downline visibility to see who was overdue, who was compliant, and who needed attention.
  • Administrators: Needed to control what each group saw and configure the experience per organization, without filing an engineering ticket every time.

Reframing the Solution

The easiest path forward was to simply optimize the server render to fix the speed. But since we were touching the core code, I proposed a deeper fix: a dashboard built from independent widgets, each aware of client and individual context.

By tying context and performance together, a single decision solved both issues at once. If a widget is self-contained enough to know who it's for, it's self-contained enough to stream data independently. Fast widgets paint instantly while slower, data-heavy widgets fill in behind them.

Dashboard System — exploration diagram
Designing for perceived speed: The application shell renders instantly, allowing fast widgets to paint right away while slower, data-heavy components fill in the background. Users can interact with the page immediately.

To validate this shift, I pitched the dashboard concept at our annual user conference. Demonstrating how the layout would dynamically surface only licensed features generated massive client excitement and secured the internal momentum to move the project forward.

Key Architectural Decisions

  • Context Drives Everything: Each widget knows who it is for. Client configuration controls which widgets appear, while role permissions and individual preferences narrow the view further.
  • Optimize for Perceived Speed, Not Throughput: Instead of making users wait for the slowest panel, the UI pulls widget data in parallel. What people experience is time to useful content, not total load time.
  • Fluid Layouts via CSS Grid: Rather than writing complex backend layout logic for every permutation of user roles and configurations, I designed the UI to rely on a CSS Grid system set to dense packing. Widgets are assigned target column spans per breakpoint. If a widget is missing due to a client's disabled features or a user's permissions, the layout automatically collapses and fills the gap, ensuring a tight, unbroken interface.
  • Repeatable Patterns: Each widget operates as a self-contained unit sized for one developer to build end-to-end. A broken widget fails gracefully within its own panel without crashing the page.
  • Passive Discoverability: By dynamically surfacing feature widgets, the homepage became the place where users discovered the platform was more than just a required-training checkpoint.
  • Preserving Familiarity: To avoid alienating an established enterprise customer base, the new dashboard preserved existing page regions and content categories, eliminating a steep learning curve.

What shipped

I designed the end-to-end widget experiences and built the production CSS layer, ensuring it remained resilient across fluid layouts, variable loading states, and dozens of unique client brandings.

The initial widget set covered the real jobs of the homepage:

  • Learners received training statuses and one-click "resume course" shortcuts.
  • Managers received actionable downline analytics and review queues.
  • Engagement features like media, events, and badges got their own dedicated surfaces.
  • Administrators received self-service tools to configure each group's experience.
Learner Dashboard: Prioritizes immediate compliance deadlines and course-resume shortcuts to reduce time-to-task.
Learner Dashboard: Prioritizes immediate compliance deadlines and course-resume shortcuts to reduce time-to-task.
Dashboards for different brands and user roles
Manager View: Aggregates downline team compliance status and review queues into actionable, high-level data visualizations.
Manager View: Aggregates downline team compliance status and review queues into actionable, high-level data visualizations.
Dashboards for different brands and user roles
Compliance Portal: Uses the modular widget framework to handle dense, audit-heavy workflows without requiring custom engineering.
Compliance Portal: Uses the modular widget framework to handle dense, audit-heavy workflows without requiring custom engineering.
compliance dashboard
Extending the Framework: Repurposing core dashboard components to power complex, data-filtered standalone tools like the Feedback Explorer.
Extending the Framework: Repurposing core dashboard components to power complex, data-filtered standalone tools like the Feedback Explorer.
feedback full-page
Admin View: Surfaces high-level platform engagement and content sentiment metrics using the exact same underlying component architecture.
Admin View: Surfaces high-level platform engagement and content sentiment metrics using the exact same underlying component architecture.
administrator dashboard

The Outcome

  • Performance: Perceived load time dropped from over 15 seconds to just a couple of seconds before interactive, useful content appeared.
  • Extensibility: Because the system was built around per-client and per-user variation from day one, future capabilities—like multilingual rendering, manager tooling, and end-user customization—fit in as simple configurations rather than massive redesigns.
  • Scale: Widgets can now be swapped or installed live with no maintenance window. The framework is currently deployed across tens of enterprise client installations and remains the product's active core four years post-launch.