Case studies Runway Media

UI/UX Design React Development Sanity CMS PR & Communications

A PR agency website where the work makes the headlines.

Runway Media is a founder-first PR and communications agency in Mumbai. We designed and built a fast React website on Sanity CMS - so every campaign reads like a press win, and the team publishes new case studies, services and testimonials themselves.

Client

Runway Media

Industry

PR & communications

Scope

UI/UX design, React development, Sanity CMS

Timeline

6 Weeks · 2026

The client

A founder-first PR agency with 100+ brands behind it.

Runway Media runs PR, influencer marketing, founder positioning, launches and partnerships for brands across fashion, F&B, wellness, education and hospitality — from Haldiram's and Tata to WishCare and the Hilton × Deepika campaign that drew 239.7M+ views.

The brief

Let the work sell the agency — and keep it current.

Build an editorial website that puts campaigns and coverage front and centre, feels as premium as the brands it serves, and lets a small team publish new work the day a campaign wraps — without waiting on a developer.

The challenge

In PR, the proof is the pitch.

01

Outcomes, not adjectives

Prospects judge a PR agency by coverage and results. The site had to show 150+ placements and 239.7M views, not promise “impact”.

02

Sixteen very different stories

Influencer drives, legacy launches, restaurant openings and exam campaigns — one case-study format had to fit them all.

03

A team, not developers

New campaigns, testimonials and service changes had to go live from a dashboard, the same day — no code, no redeploys.

04

Editorial polish

The agency pitches against global networks. The site needed magazine-grade typography — in light and dark.

Our approach

From campaign archive to headless website.

We modelled the agency's work as content first, then designed the pages around it.

01

Discover

The founder's story, the agency's five services and an audit of every campaign worth showing.

02

Model

Case studies, services, testimonials and site settings as structured Sanity content types.

03

Design

An editorial system — Playfair Display over Montserrat, violet on lavender and ink, light and dark.

04

Build

A React and Vite front end that reads everything from Sanity — pages, stats and copy included.

05

Launch

Sixteen campaigns loaded, Sanity Studio handed over and the site served through Cloudflare.

Key design decisions

Four ideas that let the coverage do the talking.

01 — Lead with the work

A hero you scroll through, one campaign at a time.

Instead of a slogan, visitors land on the work. The hero pins to the screen as you scroll, and every scroll step brings in the next campaign — WishCare, Haldiram, Madhav Agasti, Lil Gamby, The Belgian Waffle Co — while the cover slowly zooms and the progress bar fills. After the fifth story the hero releases into the client marquee. The team picks which campaigns feature, and in what order, from the CMS.

02 — A case-study template built for PR

Actions, one big number, and the coverage to prove it.

Every campaign follows the same rhythm: what Runway Media did, a headline result — 25+ placements, 239.7M views, 250% growth — and a grid of the actual coverage, outlet by outlet. One template flexes across sixteen very different stories.

03 — Work, by industry

Prospects find their own industry in one tap.

Every campaign carries an industry tag set in the CMS — F&B, fashion, beauty, education, wellness — so a restaurant founder spots restaurant launches and a D2C brand finds product PR at a glance. Each card pairs its tag with a one-line summary and a link straight into the story.

04 — Light and dark, one tap apart

One editorial system, two moods.

Every page works in a lavender light mode and an ink-black dark mode. A floating toggle switches between them instantly, and testimonials, stats and the founder's story keep their hierarchy in both.

Visual system

A magazine masthead, in violet.

Tech & development

A headless site the team runs from Sanity Studio.

Every word on the site — headlines, stats, services, testimonials and all sixteen case studies — lives in Sanity. The React front end reads it live from Sanity's API, so a published change appears on the site immediately, with no rebuild or redeploy.

React Vite React Router Sanity CMS GROQ queries Portable Text Sanity image CDN Node / Express Cloudflare

01 — Content model

The agency's work, as structured content.

Four document types in Sanity mirror how a PR agency talks about itself — and map one-to-one onto the page templates.

02 — Editing in Sanity Studio

Publish a campaign the day it wraps.

The team works in a Sanity Studio set up for them, without touching code.

  • Case studies — add a campaign with its actions, result and coverage; it appears on Work and in “More work”
  • Pin & reorder — an order field decides which campaigns lead the homepage carousel
  • Services — rich-text descriptions with “Includes” lists, numbered for order
  • Testimonials — quote, name, role and avatar initial
  • Site settings — every headline, stat, founder story and contact detail

03 — Front end

A fast React app with clean routes.

Built with React and Vite, routed client-side, and rendering CMS rich text natively.

  • Routes — /services, /work, /work/:slug, /about, /clients, /contact
  • GROQ queries — each template asks Sanity for exactly the fields it shows
  • Portable Text — services and case studies render rich text, lists and emphasis
  • Scroll-driven hero — a sticky, pinned section where scroll position steps through the campaign reel, zooms the cover and fills the progress bar
  • Theme toggle — a floating switch between light and dark modes

04 — Delivery

Edits go live without a deploy.

Content and code are separate, so publishing never waits on a developer.

  • Live content — pages fetch from Sanity’s API CDN, so published changes show at once
  • Image CDN — campaign covers are served by Sanity’s image pipeline
  • Hosting — a Node/Express server behind Cloudflare
  • Editing kept separate — the team works in Sanity Studio; the public site only reads published content

Request for proposal