CLIENTOPS · WEB APPLICATION · 2026

A sales dashboard for keeping follow-ups visible.

ClientOps puts lead status, value, ownership, and next actions in one responsive workspace.

60Synthetic lead records
03Purpose-built API routes
100%Demo data—no client PII
ROLE

Product scope, implementation, testing, and documentation

STACK

Next.js, TypeScript, Cloudflare Pages Functions

FOCUS

Data clarity, responsive UX, export workflow, tests

THE PROBLEM

A lead list does not show what needs attention.

Small teams often track opportunities in spreadsheets. As the list grows, follow-up dates, ownership, and deal status become harder to review.

ClientOps was scoped to answer four questions: how much is in the active pipeline, which leads need attention, who owns each opportunity, and what should happen next?

THE PRODUCT

Core workflow

The dashboard supports five repeated actions: review, filter, prioritize, inspect, and export.

01

Scan the whole pipeline

Four KPIs and stage distribution establish context before the user reaches the lead table.

02

Narrow without losing context

Search and filters sync to the URL, making focused views reproducible and shareable.

03

Inspect in place

A detail drawer keeps users anchored in their current list while showing the full lead record.

04

Take the data with you

CSV export respects active filters and safely escapes commas, quotes, and line breaks.

SYSTEM DESIGN

Architecture

Pages Functions validate requests and return paginated lists, aggregate metrics, and filtered CSV output from a synthetic dataset.

INTERFACEResponsive dashboardFilters · Table · Drawer · States
SERVERCloudflare Pages FunctionsValidation · Metrics · CSV
DATASynthetic dataset60 deterministic lead records

VERIFICATION

Tests and interface states

  • Logic tests

    Query parsing, sorting, pagination, KPI calculations, and CSV escaping.

  • Route tests

    Successful responses, invalid parameters, empty results, and filtered exports.

  • Responsive QA

    Desktop, tablet, and mobile layouts, including cards that replace the table on narrow screens.

  • Failure states

    Loading, error, no-results, disabled pagination, focus visibility, and keyboard-friendly controls.

NEXT PROJECT

BacaDengar Android app

Read the case study →