Discover Classical logoDiscover Classical

Showcase Strategy

How this build answers the RFP — line by line.

A complete compliance map of the Discover Classical Digital Media Hub against the RFP requirements, plus the project facts, risk register, and integration plan we've engineered against.

RFP control facts

What we built against

Organization

Discover Classical / Dayton Public Radio, Inc.

Coverage

WDPR 88.1 · WUSO 89.1 · WDPG 89.9 + worldwide stream

Current site issue

Aging architecture, fragmented giving, no integrated CMS workflow

Budget

$40K–$60K

Selection date

June 19

Consultation

June 22 – July 17

Design & build

July 20 – Sept 30

Testing & training

Oct 1 – 30

Primary contact

Chad Wyckoff

Compliance checklist

Every requirement, accounted for

Status legend — Done: implemented in this showcase. Demo: documented module with integration seam. Planned: scheduled into the implementation phase per the RFP timeline.

Responsive & Accessible

Fully responsive across phone, tablet, desktop

Tailwind breakpoints, fluid type, tested at 360 / 768 / 1280 / 1920.

done

WCAG 2.1 AA conformance

Semantic landmarks, focus rings, color tokens contrast-checked, prefers-reduced-motion honored.

done

Keyboard navigable, screen-reader friendly

All interactive controls reachable; player announces state changes.

done

Brand & Identity

Reflects a cultural institution, not a generic radio template

Aubergine / burgundy / brass palette, Cormorant Garamond display, restrained motion.

done

Consistent across header, footer, player, and all 30+ pages

Shared shell, semantic tokens, single component library.

done

Content Management

Block-based WYSIWYG for every public page

Admin module documents the schema; build phase wires to chosen CMS.

demo

Drafts, versioning, scheduled publish

Native to the CMS layer (Sanity / Strapi / Payload candidates).

planned

Staff & Board, Sponsors, Documents managed as records

Typed data layer matches CMS schema 1:1.

demo

Listener Experience

Persistent global audio player across navigation

Single audio element in AudioPlayerProvider; survives route changes.

done

Now Playing on home, listen, and player chrome

Rotates demo track every 45s; wires to radio automation in production.

done

Searchable playlist archive

Client-side search by composer, work, performer, ensemble, album, program.

done

ArtsFocus segment archive with sponsor billing

Dayton Art Institute as presenting sponsor; tagged episode model.

done

Giving & Membership

Full conversion path: donate, membership, sustaining, circles

/donate plus 11 dedicated giving pages.

done

Honorary Days, IRA, Stock, Vehicle, Shopping, Underwriting

Every RFP-mandated pathway present, with body copy.

done

Member Portal entry point with Allegiance handoff

Sign-in, create-account, walkthrough explainer.

done

Tax/legal language, EIN, CFC #82874, FCC files visible

Footer, donate page, reports page, giving sidebar.

done

Staff Tooling

CMS / WYSIWYG demonstration environment

/admin with faux-auth gate, 17 modules documented.

demo

Traffic & On-Air Announcements module

Internal-only badge; integration-ready record schema.

demo

Program Listings & ArtsFocus Manager

Date, title, host, playlist, guest, audio, publish status, notes.

demo

Feedback, Event, PSA submissions routed to staff queues

Forms write to Admin Inbox in production.

done

Integrations (Production)

Allegiance Group donor platform

Hand-off via documented donor URL; SSO option in scope.

planned

CARS vehicle donations

Direct link integrated in /support/vehicles.

done

FCC Public Inspection File

Reports page surfaces documents; live FCC link integrated at launch.

planned

Radio automation now-playing feed

AudioPlayerProvider exposes an injection seam for real metadata.

planned

Email / Keynotes distribution

Email-vendor agnostic; Mailchimp / Constant Contact wire-ups documented.

planned

Performance & Quality

Core Web Vitals (LCP < 2.5s, CLS < 0.1)

Static-friendly architecture, font preloading, no large hero imagery.

done

SEO: per-route titles, descriptions, og tags, semantic HTML

Each route declares head() metadata; root sets defaults.

done

Testing strategy

Vitest unit + Playwright E2E + axe-core a11y in CI.

planned

Staff training & documentation

Built into the post-launch consultation; video walkthroughs of CMS.

planned

Risk & integration register

What we've already thought through

Radio automation now-playing latency

Use 6-second cached feed; manual override in CMS for corrections.

Allegiance SSO scope creep

Phase 1 = link-out handoff; Phase 2 = embedded forms if data agreement permits.

FCC file accessibility deadline

Document library in place day one; FCC linkage finalized in pre-launch.

Member email list migration

One-time export from current vendor; mapped fields documented.

Staff training continuity

CMS recorded walkthroughs + monthly office hours for first 90 days.

Symphony No. 9 in C

Joseph Haydn