Skip to main content

Case Study

Connecting Campus Content

UMD Content Distribution Dashboard
Role
  • Staff Software Engineer
  • Principal Architect
  • Product Owner
Stack
  • TypeScript
  • Node.js
  • GraphQL
  • Web Components
  • AWS Lambda
  • REST APIs
  • Tailwind
  • CraftCMS
  • PHP
  • Yii
  • Figma
  • Linear

One Source, Many Destinations

Automating Content Across 1,680+ Websites

The University of Maryland has 12 colleges, six divisions, and over 50 departments. Each runs their own websites. That's 1,680+ sites with millions of pieces of content, and no way to keep them in sync.

We built API services that changed how content flows across campus. Write a news story once, and it shows up everywhere it belongs. Post an event, and every related site gets it. Send an alert, and the whole campus knows in seconds.

The Content APIs

Six Services That Power Campus

API Architecture Diagram

We broke campus content into six categories, each with its own API:

  • News: Stories from across campus, aggregated and distributed
  • Events: A unified calendar pulling from multiple sources
  • Alerts: Weather closures and emergencies, campus-wide
  • Academic Calendar: Deadlines and milestones for students
  • People: Faculty profiles and research expertise
  • President's Messages: Official communications

Each service runs on GraphQL and Node.js on AWS Lambda, with its own schema. Events need dates, locations, and categories. People need titles, departments, and research areas. I designed schemas that work across the whole university.

GraphQL lets sites request exactly what they need. A department homepage might want three featured stories and five upcoming events. A research center might want people filtered by expertise. One query, one response, no wasted data.

The People service ships as the Experts API — faculty and researcher profile data aggregated from disparate sources and served to consumer applications across the institution. I'm its product owner: I define what it ingests and how consumers read it.

From Gatekeepers to Curators

Scaling Content Creation

Content author dashboard interface

Before, a handful of trained editors created all the content. Departments would submit requests and wait. The bottleneck was brutal.

We built the authoring layer on Craft CMS, with tools that let anyone contribute:

  • Simple forms with real-time preview
  • Role-based permissions by department
  • Approval workflows for sensitive content
  • Templates for common story types

A YAML upstream keeps content models and configuration in sync across environments and consumers, so a change lands once and propagates instead of drifting between systems.

Now hundreds of people create content. When big news breaks, stories go live in minutes instead of days. During major events, we can spin up dedicated landing pages with fresh content from across campus.

The central team shifted from creators to curators. They focus on quality, consistency, and the big-picture stories. Departments handle their own day-to-day content.

The Network Effect

Value Grows with Adoption

Design system and API integration diagram

Every site that connected made the system worth more to the rest:

  • More content sources meant richer feeds
  • Shared events attracted bigger audiences
  • People profiles became a campus-wide directory
  • Consistency improvements propagated automatically

The design system components plugged directly into the APIs. Drop in a news feed widget, and it's already styled and pulling live content. No custom code needed.

We're now connecting hundreds more sites. Each new connection adds content to the pool and draws value from everything already there.

The Impact

Numbers That Matter

Analytics dashboard showing content performance metrics

The shift to API-driven content changed how campus communications work:

  • 85% less duplicate content creation
  • 60% faster time-to-publish for announcements
  • Hundreds of new content authors across campus
  • Minutes to respond to breaking news

The bigger change is cultural. Departments that used to hoard information now share it — contributing to the common pool pays them back. Content sharing became the default, not the exception.