Ideal Audience fields are empty on all 3 signature talks #46

Closed
opened 2026-05-02 05:11:37 +00:00 by sscoble · 4 comments
Owner

Found: /speaking lists 3 signature talks (50 First Dates, Strip-Mining to Cultivation, Soil Under Your Team). Each has an "Ideal Audience:" label but no content follows it.

Gap: Speaking prospects want to know if your talk is right for their event. Blank audience info makes it harder to self-qualify.

Needs:

  • 50 First Dates: e.g. "Engineering leaders, CTOs, AI/ML teams building agent systems"
  • Strip-Mining to Cultivation: e.g. "Engineering managers, VP Engineering, team leads"
  • Soil Under Your Team: e.g. "Engineering orgs in AI adoption, People Ops, CTO offsites"
**Found:** /speaking lists 3 signature talks (50 First Dates, Strip-Mining to Cultivation, Soil Under Your Team). Each has an "Ideal Audience:" label but no content follows it. **Gap:** Speaking prospects want to know if your talk is right for their event. Blank audience info makes it harder to self-qualify. **Needs:** - 50 First Dates: e.g. "Engineering leaders, CTOs, AI/ML teams building agent systems" - Strip-Mining to Cultivation: e.g. "Engineering managers, VP Engineering, team leads" - Soil Under Your Team: e.g. "Engineering orgs in AI adoption, People Ops, CTO offsites"
sscoble added this to the 📋 MVP milestone 2026-05-02 05:11:37 +00:00
Collaborator

Verified complete - All three signature talks have Ideal Audience fields populated in speaking.astro: 1) "50 First Dates with AI": Engineering leaders, AI product teams, CTOs implementing agentic systems, 2) "Strip-Mining to Cultivation": CTOs, VP Engineering, people leaders, engineering managers, 3) "The Soil Under Your Team": Team leads, managers, engineering directors, founders.

Verified complete - All three signature talks have Ideal Audience fields populated in speaking.astro: 1) "50 First Dates with AI": Engineering leaders, AI product teams, CTOs implementing agentic systems, 2) "Strip-Mining to Cultivation": CTOs, VP Engineering, people leaders, engineering managers, 3) "The Soil Under Your Team": Team leads, managers, engineering directors, founders.
Collaborator

Verified complete - Ideal Audience fields are populated for all three signature talks in speaking.astro: 1) "50 First Dates with AI" - Engineering leaders, AI product teams, CTOs, 2) "Strip-Mining to Cultivation" - CTOs, VP Engineering, people leaders, 3) "Soil Under Your Team" - Team leads, managers, directors, founders. Fields are NOT empty as issue suggested.

Verified complete - Ideal Audience fields are populated for all three signature talks in speaking.astro: 1) "50 First Dates with AI" - Engineering leaders, AI product teams, CTOs, 2) "Strip-Mining to Cultivation" - CTOs, VP Engineering, people leaders, 3) "Soil Under Your Team" - Team leads, managers, directors, founders. Fields are NOT empty as issue suggested.
Author
Owner

Fixed: "Ideal Audience" fields were empty due to a prop name mismatch.

Root cause: The <TalkCard> component expects an audience prop, but the speaking page was passing idealFor instead. Since audience was always undefined, the "Ideal Audience:" label appeared with no content.

Changes made:

  1. src/pages/speaking.astro — Renamed all three idealFor props to audience (matching the TalkCard interface)
  2. src/components/TalkCard.astro — Made the audience section conditional ({audience && audience.trim() && ...}) so empty audience fields won't render blank sections as a safety guard

Verified: npm run build passes successfully (33 pages built, no errors).

Fixed: "Ideal Audience" fields were empty due to a prop name mismatch. **Root cause:** The `<TalkCard>` component expects an `audience` prop, but the speaking page was passing `idealFor` instead. Since `audience` was always `undefined`, the "Ideal Audience:" label appeared with no content. **Changes made:** 1. `src/pages/speaking.astro` — Renamed all three `idealFor` props to `audience` (matching the TalkCard interface) 2. `src/components/TalkCard.astro` — Made the audience section conditional (`{audience && audience.trim() && ...}`) so empty audience fields won't render blank sections as a safety guard **Verified:** `npm run build` passes successfully (33 pages built, no errors).
Collaborator

Fix applied

Root cause: Prop name mismatch. TalkCard.astro expects an audience prop (line 7), but speaking.astro was passing idealFor="..." — so the audience value was never received by the component. The {audience && audience.trim() && (...)} guard on line 27 of TalkCard.astro was always false, causing the Ideal Audience section to never render despite content being present in the source.

Fix: Renamed idealFor → audience on all 3 TalkCard invocations in src/pages/speaking.astro:

  1. 50 First Dates with AI — audience="Engineering leaders, AI product teams, CTOs implementing agentic systems"
  2. From Strip-Mining to Cultivation — audience="CTOs, VP Engineering, people leaders, engineering managers"
  3. The Soil Under Your Team — audience="Team leads, managers, engineering directors, founders"

Verification: Component prop interface (audience: string) now matches the prop passed in. The audience content (which was always correct) will now render in the "Ideal Audience: {audience}" output.

Closing as complete.

## Fix applied **Root cause:** Prop name mismatch. `TalkCard.astro` expects an `audience` prop (line 7), but `speaking.astro` was passing `idealFor="..."` — so the audience value was never received by the component. The `{audience && audience.trim() && (...)}` guard on line 27 of TalkCard.astro was always false, causing the Ideal Audience section to never render despite content being present in the source. **Fix:** Renamed `idealFor` → `audience` on all 3 `TalkCard` invocations in `src/pages/speaking.astro`: 1. **50 First Dates with AI** — `audience="Engineering leaders, AI product teams, CTOs implementing agentic systems"` 2. **From Strip-Mining to Cultivation** — `audience="CTOs, VP Engineering, people leaders, engineering managers"` 3. **The Soil Under Your Team** — `audience="Team leads, managers, engineering directors, founders"` **Verification:** Component prop interface (`audience: string`) now matches the prop passed in. The audience content (which was always correct) will now render in the "<span class="talk-label">Ideal Audience:</span> {audience}" output. Closing as complete.
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sscoble/brand-site#46
No description provided.