Problem
Reach plc wanted a different kind of engagement product: not another article feed, but a way to capture and reflect how the country feels about the day's news. The business goal was two-sided: give readers a reason to come back daily, and give editorial a genuinely new data signal, reader sentiment in aggregate, in near-real-time, that a standard feed simply couldn't generate.
It had to feel light and playful, work at national scale, and close the loop so readers saw their contribution reflected back.
Process
The defining decision was about what makes a reaction worth giving: it has to feel free. Early thinking treated the reaction as a normal write-then-confirm. We reframed it: the interaction had to register instantly or the whole "tap how you feel" loop would die, and engagement with it. So we designed the client around optimistic updates and let the backend reconcile behind the scenes.
I worked on the React Native app that delivered the experience.
- Reaction-first UX. See a story, tap how it makes you feel. Near-instant, applied optimistically in the UI and reconciled with the backend afterwards.
- Redux Toolkit state. Reactions, feed and the user's own history in one store, keeping the optimistic-update logic predictable.
- Sign-in with LoginRadius. Reader accounts and SSO ran through LoginRadius, so sentiment could be attributed and de-duplicated without building auth from scratch.
- Aggregation and analytics. Firebase Analytics tracked engagement while the backend rolled reactions into the live national picture surfaced back to readers and editorial.
Outcome
Mood of the Nation shipped a novel, reaction-driven engagement product to a national audience and gave Reach a live daily sentiment signal on the news: a new data feed for editorial that no article product could produce, and a reason for readers to return each day.
"It gave the newsroom something we'd never had: a read on how the country was reacting, updated through the day."
Editorial Product Lead
Architecture

For engineersTechnical Deep DiveExpand
Optimistic reactions at scale
A sentiment tap has to feel free. If a reader waits for a network round-trip before their reaction registers, the magic dies. So reactions were applied optimistically to the Redux store and the UI updated immediately; the write to the backend happened in the background, with reconciliation and quiet retry on failure. At national scale this also smoothed traffic: the client wasn't blocked on the server, and the server saw a steadier write stream.
Turning taps into a "mood"
Individual reactions are noise; the value is the aggregate. The backend rolled millions of reactions into per-story and national sentiment, which the app displayed back to readers, closing the loop so contributing to the mood felt visibly worthwhile.
Trade-offs
- Optimistic UI vs correctness. Optimistic updates can briefly diverge from server truth. For sentiment reactions that's an acceptable trade: the occasional reconciled count matters far less than the interaction feeling instant.
- Playful vs credible. The app had to feel fun without trivialising serious news. That was as much an editorial and design decision as an engineering one, and shaped how reactions were framed.
