> WORK / 005 · KXFM RADIO

KXFM Radio. Designed and built from scratch for South Orange County’s only independent community radio station.

KXFM is the only FCC-licensed LPFM broadcaster in South Orange County, running on 85+ volunteer DJs, a seven-day-a-week broadcast schedule, and dozens of independent podcast feeds on Spreaker. SD designed and built kxfmradio.org from the ground up: the visual system, every page, the radio CMS that powers every show-related surface, and the supporting plugin suite the station runs on daily. One platform, one operating layer, the whole thing ours.

[NONPROFIT · COMMUNITY RADIO] WORDPRESS · CUSTOM THEME · CUSTOM PLUGINS // ENGAGEMENT: YEAR Year 2 // STATUS: ACTIVE
85+ Volunteer DJs On Air
23 Custom Shortcodes Powering the Site
4 SD-Built WordPress Plugins
YR 2 Engagement (Since Apr 2024)
// THE BRIEF

A new site for an old station. Designed as a CMS from day one.

CASE // 005.A

KXFM is South Orange County’s only independent, nonprofit, FCC-licensed LPFM community radio station. Founded in 2012, based in Laguna Beach, the station runs on a small staff and 85+ volunteer DJs broadcasting seven days a week. The mission, in KXFM’s own words, is to be “the virtual town square, the unifying connective tissue for all things Laguna Beach.”

KXFM came to SD in April 2024 wanting a new public site. The easy version of that build is a handful of static pages dressed up nicely: home, about, contact, schedule, ship it. We didn’t build that. With 85+ volunteer DJs, dozens of independent podcast feeds, and a 7-day-a-week schedule that shifts constantly, “static pages” would have meant volunteers editing five different layouts every time someone got a new time slot. Fragile on day one, broken by month three.

So we designed the site as a CMS from day one. The visual system, the information architecture, every page layout, and the data model under it all are SD work, designed together as one piece. The site launched September 16, 2024, and has been growing daily since.

// WHAT WE BUILT

Three workstreams. One station running on top of them.

DELIVERABLES // 01–03
01
Site design + custom WordPress build // visual system · page design · divi child theme

A complete WordPress site designed and built by Sonnenberg Design for KXFM. The visual system, the typography, the color palette, the page-by-page design, the information architecture, and the custom Divi child theme that ties it together are all SD work. The home page, schedule, show directory, hosts grid, podcasts, mission pages, donate flow, partner pages, weather page, and emergency preparedness page each carry the same designed system. Reads as Laguna coastal without leaning on stock template aesthetics. Launched September 16, 2024.

02
SD Show Management, the radio CMS // shows CPT · 23 shortcodes · spreaker aggregator

A single Shows custom post type holds every show, host, schedule slot, podcast ID, and social link. From that one record, 23 shortcodes render every show-related surface on the site: per-show detail pages with embedded Spreaker players, the on-air schedule (Pacific-time aware, with a remaining-today filter for “What’s on next” widgets), three directory layouts (compact list, large list with descriptions, three-column responsive grid), the Meet the Makers hosts grid (handles multi-host shows), an archive view, host social follow buttons, and the headline feature: a cross-feed podcast aggregator that merges every show’s Spreaker RSS into one paginated chronological stream with two-tier transient caching. Most stations pay for a separate SaaS to do less.

03
Supporting plugin suite // sd-giveaways · sd-partners · sd-openweather

Three additional SD-built plugins that round out the station’s operations. SD Giveaways handles community giveaway entries and drawing management in the admin. SD Partners runs a managed directory of underwriters and community partners with one entry per partner, no copy drift. SD OpenWeather powers the hyperlocal weather widget on the /weather page, fitting for a station that already provides 24/7 emergency broadcast service. Together with SD Show Management, this suite replaces roughly six third-party plugins KXFM would otherwise need.

// WHAT WE STILL RUN

The whole platform KXFM runs the station on.

YEAR 10 SD // OPERATING LAYER

Year 10 SD is the operating layer behind KXFM’s public surface. The station’s volunteers choose the music. We keep the platform out of their way.

The site itself. The designed visual system, page layouts, and custom Divi child theme. Updates and refinements as the station grows.
Plugin maintenance across all four SD plugins. New features, fixes, and iteration as KXFM’s operations evolve.
Single-source-of-truth data model. One Show post drives the home page, schedule, directory, hosts grid, archive, and podcast aggregator. Flip one Archived checkbox and every public surface updates.
Failure-resilient remote feeds. The Spreaker aggregator skips broken feeds silently rather than blocking the whole page. One bad feed never takes down the podcast page.

// status: active · Year 2 of engagement · site live since September 16, 2024 · platform runs daily for 85+ volunteer DJs and the Laguna community

// FROM THE FIELD

Why the work mattered to KXFM.

RECORD // 005.M

KXFM positions itself as civic infrastructure, not entertainment. The language on the site (creative commons, civic utility, town square, 24/7 emergency broadcast link) is the language of a public service. That posture sets the standard for the design and the software both. The site needs to be infrastructure: invisible when it works, good enough that nobody at the station has to think about it.

// kxfm_chair_record_001 · billy.fried
What brought me to this little enterprise was believing that radio could be the 21st century town square.
Billy Fried / Chairman, KXFM Radio