Skip to main content
Dashboard displaying news articles about Accenture and Ethereum developments.
DevelopmentFirst House

Hastings

Completed202224

Overview

A media-tracking dashboard for First House, built from August to October 2022 with React, TypeScript and RTK Query.

I turned AI-processed coverage data into widgets, charts and account views, with a focus on readable information and stable background updates.

Hastings is a media-tracking dashboard I built for First House — a communications firm working with property-sector clients. The project ran from August to October 2022: three months to turn AI-processed coverage data into something account teams could actually open in a client meeting.

First House already had a data-processing pipeline. My role was to build a clear frontend for brand mentions, sentiment and trends.

The brief

Hastings needed widgets, interactive charts and account-specific layouts to present media coverage clearly to communications teams and their clients.

What I built

  • Dashboard shell — account views, filters, and navigation sized for daily use by non-developers.
  • Custom widgets and charts — coverage summaries, trend lines, and comparisons tuned to how First House presents work to clients.
  • Live data layer — REST API integration with RTK Query for caching, background refresh, and predictable loading states.

Stack

React and Vite provided the app foundation, with TypeScript and Tailwind CSS throughout. Redux Toolkit and RTK Query handled caching, background refresh and loading states while keeping the widgets responsive.

The hard part

Data-heavy products fail when every new metric adds another panel. I spent a lot of time on hierarchy — what updates live, what stays stable, what only appears on drill-down — so the UI stayed legible even when the API kept pushing fresh rows. One client was waiting on it; there was no room for “we will polish later.”

What I took away

Hastings reinforced how much information hierarchy matters in dashboards. The screenshots show the delivered internal tool; there is no public URL.