Hastings — media-tracking dashboard for First House (Aug–Oct 2022). React, Vite, TypeScript, Tailwind, RTK Query. Turned AI-processed brand coverage into client-ready widgets and charts.
Three-month build for property-sector comms clients. The hard part: live data without making the UI feel like a Bloomberg terminal.
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 the pipeline behind the scenes. The gap was the front end — a calm, readable view of brand mentions, sentiment, and trends without making strategists feel like they had logged into a trading terminal.
Property clients care about reputation in print, online, and social — but raw feeds and spreadsheet exports do not survive a boardroom. Hastings needed custom widgets, interactive charts, and layouts that highlighted what mattered for each account without burying the story in noise.
React and Vite for the app shell, TypeScript throughout, TailwindCSS for layout and theming. Redux Toolkit and RTK Query handled server state — the gnarly part was keeping widgets responsive while data refreshed in the background without the whole page feeling like it was pulsing.
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.”
Hastings reinforced a rule I still use on client dashboards: density is a design choice, not a default. RTK Query made the data layer honest; the product work was deciding what not to show. Screenshots on this page are from the shipped dashboard — internal tool, no public URL.