Skip to content
KR.

Internovus — in-house

2026

ZoomDash

A React dashboard over a workflow-automation backend — no server was written, and it still runs entirely on mock data when you want it to.

Design · Front-end · MotionInternal — not public

Delivered to

Internal — marketing operations

ZoomDash

Interface

React, Vite, TypeScript

Backend: Workflow automation, not a service

Techniques

3

Described; no code published

An internal dashboard for the team running webinar programmes: recurring series at the top level, individual sessions beneath them, and the registrant and attendee lists that actually get asked about after every session. The provider's own interface answers “what happened in this one webinar” and cannot answer “what is this series doing over six months”, which is the question the team actually had.

Internal — not public

An internal dashboard for the team running webinar programmes. No public address, and no host, webhook path or key appears on this page.

What this page can show

An internal dashboard over a company's webinar, registrant and attendee data, so this page shows no screens, code, file paths or configuration. The stack is named at a high level and the visuals are simplified drawings, not screenshots.

A dashboard with no backend written for it, answering the question the provider's own tool cannot.

scheduledreadProvider APIWorkflow platformsync · retriesTablesStatic front endReact · typed
No backend service was written. The provider's data is pulled on a schedule by a workflow platform the team already runs, and what ships is a static front end reading tables.
ZoomDash
Series
Sessions
Registrants
Attended
attended
registered
registered
registered
Series at the top level, sessions beneath, and the attendee lists that get asked about after every one. The provider's own interface answers for a single webinar and cannot answer for a series.

What was built, and for whom.

  • ZoomDash

    Internal — marketing operations

    en

    Series-level view over per-session data, with registrant and participant drill-down and an export.

Each one starts with something that was broken.

  1. 01

    The backend is a workflow tool, so there is no backend to maintain

    The failure

    An internal dashboard needs an API, and writing one means a service to deploy, monitor, patch, secure and hand over — for an audience of a handful of colleagues. The service outlives the enthusiasm of whoever wrote it, and then it is somebody's inherited problem.

    The decision

    Put the data-fetching in a workflow automation platform the team already runs, expose it as endpoints, and keep the application a static bundle. The sync, the retries and the scheduling are configuration in a tool built for them rather than code in a service built for nothing else. What ships is a front end.

    What it cost

    It moves a dependency rather than removing one: the dashboard is now tied to a platform, and debugging a failing sync means opening a workflow editor rather than reading a stack trace. For a tool with this audience, a dependency the team already operates beats a service only one person understands.

  2. 02

    The migration is in the config, not in a branch

    The failure

    Moving from an old data shape to a new one usually means either a flag day, or a long-lived branch, or a dashboard that breaks for whoever opens it before the backfill finishes.

    The decision

    Declare the new endpoints and the old ones side by side in one config module, with the legacy set explicitly labelled as fallbacks that stand until the new tables are populated. The migration state is readable in one file, and removing it later is deleting the labelled half rather than remembering where the old paths were used.

  3. 03

    It runs fully without the backend

    The failure

    A dashboard that requires credentials to render cannot be developed on a plane, demoed in a meeting, or handed to a new starter before their access is provisioned.

    The decision

    Ship a complete mock dataset behind an environment switch, so the whole application renders — charts, tables, drill-downs — with nothing attached. It is the same decision the internal asset manager makes with its two data drivers, arrived at twice independently, which is usually the sign it is the right one.

Every animation, with what it does when asked for less.

The last column is the one worth reading. “Respects reduced motion” is easy to assert and easy to skip, so where it is not true here, it says so.

Chart draw

On mount

Library default ease-out

Not gated. Recorded rather than omitted.

Table and badge states

Short transitions

Ease

Unaffected — state changes, not travel.

What it was built on, what is claimed, and what is not.

Interface

React, Vite, TypeScript

A real application with typed data crossing a boundary, which is the case where types earn their keep.

Backend

Workflow automation, not a service

No server was written. See the technique — this is the entry's whole argument.

Data

Provider API, synced into tables

Pulled on a schedule rather than proxied per request, so the dashboard reads a table instead of waiting on someone else's rate limit.

Deploy

Static bundle behind a web server

The front end is a static artefact; the automation runs separately and is not the thing being deployed.

Claimed — and how to check it

  • No bespoke backend service was written

    Internal tool — not checkable from outside the company. The repository contains a front end and workflow definitions; there is no server application in it.

  • Legacy and current endpoints are declared together with the migration state labelled

    From the same internal repository.

  • The application runs completely on mock data

    From the same internal repository.

Not claimed

  • No webinar, attendance or registration figure of any kind.
  • No host, webhook URL, API key, table name, file path or configuration name — none appears on this page.
  • Nothing here can be opened or verified by a reader; it is internal.
  • No claim over the provider's API or the workflow platform.

Written from the work itself; nothing is quoted from the repository.