Cypress Hour: A Long-Form Podcast Platform For The Decision, Not The Highlight Reel
An app-tier podcast platform for a solo-host weekly show with 207 episodes and 1,440 paid members — episode CMS with full transcripts and chapter markers, paid-tier paywall, sponsor portal with rate card, AI clip generator, members-only Slack mirror, and a role-scoped editor login that the host can hand off to a producer in 6–12 months without exposing the business books.
This is a fictional brand UWC built to demonstrate what we ship for real founders. The pipeline, agents, and screenshots are real; the business is illustrative.
The Challenge
A 42-year-old solo podcaster running a four-year-old weekly show — long conversations with people who quit something serious, founders to state-court judges. 30,000–50,000 weekly listeners. ~$250K/yr in sponsorship reads + a $8/mo paid tier. The show was running on a stack of five tools that did not talk to each other: Squarespace for the website, Substack for the paid tier, Memberful for the archive paywall, a Notion doc for the sponsor rate card, and a separate Substack for the journal. Every new episode required publishing in four places. Every sponsor brief required a manual lookup against a Notion table the host updated by hand. The transcripts that the audience valued most lived in a folder of PDFs.
Our Approach
We replaced the five-tool stack with one app-tier platform. Episode CMS with transcript-first architecture. Paid-tier paywall replacing Substack. Premium archive (200+ back episodes) searchable by exit type, industry before, and year — not by paginated date. Sponsor portal with rate card + brief form + analytics share. AI clip generator (90-second shareable cuts). Members-only Slack mirror with comments under transcripts. Role-scoped editor login the host can hand to a producer in 6–12 months without exposing sponsor financials, subscriber lists, or applications- under-review. Built on the same Astro + CF Pages + Django + Postgres stack we ship for app-tier projects.
Key Results
Services Provided
Portfolio Demo — Cypress Hour is a fictional podcast created by Upstate Web Co. for portfolio purposes. The host name and persona, listener counts, revenue figures, episode titles, guest letters, and quotes are illustrative. The episode CMS, transcript search, paid-tier paywall, sponsor portal, AI clip generator, role-scoped editor login, and three-gate workflow shown are the same ones we ship to working clients.
The situation
Long-form podcasts are an interesting audience economy. A 90-minute solo-host interview show is the wrong shape for the algorithmic ad networks that fund most of podcasting; the listener is too engaged and too expensive to interrupt every six minutes. So the shows that survive at the long-form end usually do so by converting a small fraction of listeners into a paid tier and selling host-read sponsorships directly to a small set of brands the host actually uses. Cypress Hour is one of those shows. 30,000–50,000 weekly listeners. 1,440 paid members at $8/mo. Eight to ten direct sponsorship deals a quarter. $250K/yr in revenue from a single host with one editorial assistant.
What was breaking was not the show. The show was working. What was breaking was the platform stack: the Squarespace site that nobody updated because updating it was painful, the Substack paid feed that delivered audio but not transcripts (the thing the audience said it valued most), the Memberful paywall on the back archive that lived at a different URL with a different login, the Notion sponsor rate card the host updated by hand and emailed as a PDF when a brand asked, and the second Substack he had reluctantly started for the long essays because the first one was reserved for paid-feed members and he did not want the essays gated. Every new episode meant five things to publish in five places. The platform was costing the host eight to ten hours of operational time a week and producing the worst version of every audience experience.
What we built
This was a Custom App-tier project. Astro frontend on Cloudflare Pages. Django backend on Fly.io with managed Postgres. Three explicit client sign-off gates per UWC's app workflow (Prototype after the UX prototype, MVP after the core CMS + paywall + transcript search, Launch after the sponsor portal + AI clip generator + editor portal). Twelve weeks of build, four of which were the host + a sample of paid members shaping the UX before backend code was written.
The architectural decisions that mattered:
Transcript-first episode pages. The page IS the transcript, not a marketing page with a "Read Transcript" accordion buried below sponsor logos. Chapter markers display as a timeline scrubber. Sponsor-read timestamps are flagged in the transcript ("[Sponsor: Company Name — skip to 42:18]"). The 90-second AI clip embeds above the fold. Members-only comments under each transcript section, threaded by chapter — the audience can argue with a specific minute of the conversation, not the episode as a whole.
Search the archive by the choice, not the industry. The premium archive's filter axes are exit type (founder walkaway, executive severance, athlete retirement, artist stop, academic exit, public-service exit), industry before, and year. Industry alone is the wrong axis — most listeners are not looking for "another B2B SaaS founder," they are looking for "the conversation about this kind of decision." The filter shape is the editorial thesis surfaced as UI.
Paid tier copy reads like a product page, not a community pitch. "$8/mo. Transcripts included. No filler." Not "Join our community of thoughtful listeners." The membership page lists what is included in plain sentences, then lists what the membership is not — it is not a community, it is not exclusive content, it is not a charity pitch, it is not auto-renewed without warning. The pattern is Stratechery's subscription page: here is what you get, here is what it costs, here is the button.
Sponsor portal is the rate card. Pre-roll, mid-roll, post-roll, dedicated segment. Flat fees on each. Delivery process spelled out (script approval window, audio sign-off timeline, analytics share two weeks post-publish). Brief form is five fields. The host does not respond with "let's hop on a call" — he responds with yes, no, or a counter-proposed slot from the calendar. The page also lists what we do not do: programmatic networks, affiliate links, sponsorships from companies the host is invested in, "sponsored episodes" (every episode is editorially independent), and a short list of categories declined for positioning reasons.
Editor portal is scoped by what it cannot see, not what it can. The 6–12-month-out producer login messages this explicitly: "This login gives you access to: transcripts, show notes, clip generation, episode publishing. You will NOT see: sponsor financials, subscriber lists, premium archive sales data." Trust is built by being specific about boundaries, not by being warm.
How a solo show makes use of this
The host now records on Friday, the platform publishes the episode + transcript + clip + Slack comment thread + members-only release on Monday at 6am, the sponsor portal ingests the post-publish analytics share automatically and emails the active sponsors fourteen days later. The host's hands-on time per episode dropped from ~6 hours of cross-platform publishing to ~45 minutes of transcript review and clip selection. The eight to ten reclaimed hours each week go back into pre-interview prep — which is where, the host believes, the show actually gets better.
What's running on retainer
UWC's Full Partner retainer ($950/mo): platform operations, transcript-search index maintenance, AI clip generator costs, monthly engagement readout, same-day priority on platform issues, plus the host's quarterly long-letter formatted + sent through the platform mail system. The host runs the show. UWC runs the platform.
How this build was validated (UWC pipeline run)
Cypress Hour is the eighth demo through the full UWC pipeline — and the second demo built in the long-form-audio-premium aesthetic family, deliberately structured to land in a different sub-orbit than the seven prior demos (six small-business + one creator-economy thrift platform). The risk for Cypress Hour was that a long-form podcast's natural gravitational pull is toward the same editorial-restrained orbit as Halverstone (consultant blog) and Quietshift (cohort academy) — both of which were ruled anti-references early. The discipline that prevented it was the kickoff governance pre-pass: Marketing Exec (Section 5: Client Product Strategy) and Ghost Creator both ran before the design-direction generator, producing a creator voice brief, value-prop frames, anti-frames, pull-quote candidates, CTA tone, and per-page copy direction that the generator then had to honor.
Intake → AI scoring. Persona scored Hot/App tier ($12–18K, ~$15K project value) — running business with $250K/yr revenue (sponsorships + paid tier), four years of history, two-person operating team (host + editorial assistant), clear pain (five-tool stack), realistic timeline. Auto-converted at App tier per the demo's intent.
Brand questionnaire (Rule 73 inputs). 18 cross-family long-form-audio-premium references picked by public earnings, traffic, and ranking — three each from six families: top paid newsletter operators making $M+/yr (Stratechery $5M+ ARR publicly, Lenny's Newsletter $5M+ ARR publicly, Every paid newsletter network), top paid podcast operators (Acquired premium-research podcast, Founders Podcast premium-research podcast, Colossal subscription-supported), premium subscription journalism (The Atlantic legacy editorial, The Economist legacy editorial), premium cultural longreads (99% Invisible archive-first design podcast, Long Play Finnish music journalism), public-radio-quality audio brands (Radiotopia producer collective, NPR Podcasts institutional anchor), and creator-economy publishing infrastructure leaders (Substack publishing platform, Patreon membership platform, Memberful podcast-subscription platform, Transistor podcast-host backend, Supercast subscription-podcast platform). Plus eight anti-references — UWC parent + 6 sister demos + Marlowe — with explicit ban on all previously-used aesthetic orbits and an explicit ban on "any thrift-creator burgundy-and-tangerine palette family." aesthetic_ambition pushed to immersive_award, look_and_feel to signature.
Reference signature extraction. 21 of 26 succeeded (Lapham's-class premium publishers + Linktree bot-blocked).
Kickoff governance pre-pass. Marketing Exec produced a full Section-5 client product strategy before the design-direction generator ran. The voice brief landed at "Stratechery × Acquired" — long-form, considered, dry-humor, em-dashes welcome, complete sentences. Three value-prop frames: guest-led ("Long conversations with people who walked away from the thing they built"), archive-led ("200+ episodes searchable by the choice, not the industry"), listening-philosophy ("the decision, not the highlight reel — 90 minutes per guest, transcripts included, no filler"). Three anti-frames flagged and forbidden. Pull-quote candidates seeded the visual hero. CTA tone enforced direct + specific ("Browse the archive", "Read the transcript", "Become a member", "Sponsor a read") with a banned list ("Subscribe Now", "Join the Community", "Explore Episodes", "Listen to the latest episode"). Per-page copy direction landed concrete patterns for episode pages (transcript-first), the premium archive (filter by choice not industry), the paid tier (Stratechery subscription-page tone, not Substack-house-style), the sponsor portal (rate-card-first), and the editor portal (scoped by what it cannot see). Ghost Creator produced a kickoff creative-integrity review: persona-fit read, mood-board warnings (specifically: do not let this drift into NPR-corporate or bro-podcast aesthetics), mobile-first check (most podcast listeners are on phones during commutes — the design must read top-to-bottom on a 375px screen as the primary surface), content-integration check (transcript-first means Druk Wide Bold cannot bury the body type — the body-text font has to carry 92-minute transcripts comfortably), and asset reality check (no real podcast photography; the brand has to ship without face photography or guest portraits). Both reports persisted to the agent_reports table and injected verbatim into the design-direction generator's prompt.
3 design-direction candidates generated, all genuinely cross-family + cross-palette + cross-layout:
- A. Creator Electric — Bricolage Grotesque + ABC Repro · Hot magenta + acidic chartreuse (#E10098 + #D4FF00) · Mood-Board Hero with Featured Drops · Motion F Playful Confidence. Family A+B (Linktree-with-better-taste / Glossier transposed). Banned: Marlowe-adjacent palette family (vintage-saturated).
- B. Vintage Modern — Reckless Neue + Söhne · Deep burgundy + electric tangerine · Editorial Bento with Story Cards · Motion E Cinematic Reveal. Family B (Marlowe collision — anti-reference). Forced no.
- C. Post-Corporate Creator — Druk Wide Bold + Geist Sans · True purple (#5B21B6) + sunset coral (#FB7185) · Vertical-Mobile-First Single-Column with Strong Type Hierarchy · Motion G Immersive Narrative. Family E+F (post-corporate-creator-with-taste / podcast-cover-art convention).
Direction C picked. Reasons: (a) true purple + sunset coral palette family is utterly distant from prior demos (UWC rust+cream, Drystack slate-cyan, Foldspace lime-electric, Halverstone carbon+red, Otterbrook charcoal+sulphur, Quietshift oxblood+tobacco, Tilberry navy+brass, Marlowe burgundy+tangerine) — eight demos, eight non-overlapping palette families; (b) Druk Wide Bold is the podcast-cover-art convention — the typeface listeners associate with premium audio brands (Acquired, Sweet Bobby, the long-form-podcast subset) — so the brand register matches the medium without being generic; (c) Vertical-Mobile-First Single-Column matches the 200x/day phone-checking persona Marketing Exec named explicitly + the commute-podcast listening context; (d) Motion G Immersive Narrative is a deliberate match for the editorial-thesis voice — long scroll-led reveals that read top-to-bottom like a transcript itself; (e) the explicit anti-commitment ("NOT bro-podcast, NOT NPR-corporate, NOT Substack-house-style, NOT generic-podcast") moves the build deliberately away from where every other long-form podcast site sits.
For the demo build, Druk Wide Bold + Geist Sans (both licensed) substituted with Archivo Black + Inter (both free Google Fonts). A real production build would license the picked typefaces.
Build + visual-diff scoring. Deployed at phase-a-build.cypress-hour-podcast.pages.dev. Scored by Ghost User against the picked direction. Verdict: 9/10 pass. Match audit: Typography pairing match, Layout pattern match, Palette match, Motion match. The kickoff Marketing Exec brief copy was injected verbatim where possible — hero copy is "People who walked away from the thing they built", thesis is "Quit something serious — stayed to talk about it", CTAs use "Browse the archive" / "Read the transcript" / "Become a member" / "Sponsor a read", anti-frames respected (no "Welcome to the show", no "exclusive content", no "join our community"). Eight demos, eight palette families, eight layout patterns — the cross-family discipline scaled across the full set, and the kickoff governance pre-pass added a copy-and-CTA discipline layer that the prior seven demos did not have.
Toolset breadth showcased on this demo: Episode CMS with transcript-first architecture (the page IS the transcript, chapter markers as scrubber, sponsor-read timestamps flagged inline, AI clip embedded above fold), members-only comments + Slack mirror under each transcript, premium archive searchable by exit type + industry before + year (not paginated date), paid-tier paywall (Substack alternative) with three tiers in plain sentences + anti-frames listed below, sponsor portal with rate card + brief form + audience demographics + declined-categories list, AI clip generator (90s shareable cuts), role-scoped editor login (mention only on this demo — full implementation deferred to month 6–12), monthly newsletter with explicit no-drip no-upsell promise, Stratechery-style subscription tone throughout. Every visual decision answers the question "would a 32-year-old founder skeptical of transformation content trust this site enough to listen to a 92-minute conversation?"
This is the eighth demo where the same pipeline produced a visually + structurally + editorially distinct site for a distinct persona, and the first demo where the kickoff Marketing Exec + Ghost Creator governance pre-pass ran before the design-direction generator. The copy on this site — every CTA, every anti-frame, every pull quote — exists because Marketing Exec wrote the brief that the build then honored. The prior seven demos relied on the design-direction generator alone to encode persona-fit; this one encoded it in copy and IA before any direction was picked.
Post-governance sharpening (2026-04-28)
Ran a post-build governance pass. The synthesis flagged that the homepage hero had no audio affordance — every CTA pointed at "Read the transcript →" and a viewer landing on the page had no signal that this was an audio-first product. Added an inline audio-player UI to the featured episode card: 12px play button, scrubber line with 8% progress + coral-tinted played portion, "1:24 / 92:00" timestamp, and a 1.0× speed toggle. No actual audio file (this is a demo); the UI alone communicates "podcast platform" in three seconds of B-roll for a marketing video. Re-deployed; same URL.
"The platform is doing what I asked Substack and Memberful and Squarespace to do for four years, except now they all talk to each other. The transcript search alone justified the build. The sponsor pipeline opening up was the part I did not expect."
More from this project