← All changelog entries
April 28, 2026 · Feature

Webinar pre-event polish — registrant survey viz, presenter cards, Kauffman partner mark

Turn the Agentic VC Dojo launch webinar's 49 registrants into pre-event social proof — aggregated polls, firms list, anonymized voices, presenter cards with headshots, and a mode-aware Kauffman Fellows partner mark.

Authors
Michael Staton
Augmented with
Claude Code on Opus 4.7
Tags
#Webinar-Detail-Page#Survey-Visualization#Presenter-Cards#Partner-Mark#Mode-Aware-Logo#Pre-Event-Social-Proof#Privacy

Changelog — 2026-04-28 (01)

Webinar pre-event polish

Why Care?

The Agentic VC Dojo launch session is Thursday. 49 VCs from 29 firms have already registered, 31 of them filled out a substantive survey, and 74% of those are already building AI workflows. None of that signal was visible on the public webinar page. Now it is — as aggregated polls, a firms list, anonymized voices, a richer presenter showcase, and a Kauffman Fellows partner mark that respects light/dark/vibrant modes.

What Got Built

  • scripts/build-webinar-survey.ts — Reads the registrant CSV, dedupes by email, aggregates the experience multi-select, the 3×4 tool-stack matrix, the firms list (deduped across multi-domain firms like Monashees), and emits a candidate-quote pool. Writes src/data/webinar-survey/<webinar-id>.json. Hand-curated quotes and firmsOverrides are preserved on re-run (merge, not overwrite). Wired as pnpm gen:webinar-survey.

  • Four new section components — pure Astro, semantic tokens, mode-aware, no charting library:

    • Section__WebinarSurveyStats — 4-tile headline grid (registered / firms / % already building / surveyed).
    • Section__WebinarSurveyPolls — horizontal bar chart for experience + 3×4 tool-stack heatmap (CSS color-mix for cell intensity, including an Advanced column that’s intentionally empty — its absence is signal).
    • Section__WebinarFirmsRepresented — wrapping pill grid of firm names, with multi-attendee count badges.
    • Section__WebinarSurveyVoices — anonymized pull-quote cards driven by hand-curated persona strings (“an emerging-manager GP,” “a fund operator”).
  • Section__WebinarPresenters — replaces the simple “With” meta-row with an avatar-card list. Each row: headshot + name (LinkedIn link) + firm on the left, “Presenting on” topic on the right. Mobile collapses topic below. “Hosted by” line below the cards.

  • Mode-aware Kauffman partner mark — three logo variants (light SVG / dark PNG / vibrant SVG) loaded as a single <picture>-style block; CSS show/hide via [data-mode="..."] selectors matching the existing site pattern. Rendered as a horizontal “credit strip” on the action row, sharing space with the RSVP button (partner left, button right, separated by a thin vertical rule inside the strip).

  • Schema additionswebinars collection gains hosts, presenterDetails[], partnerMark, and og_image fields. All optional and additive — existing webinars continue to render unchanged.

Privacy

Survey responses came in via a registration form, not a public profile. Posture locked in:

  • Aggregated polls — counts only, no names.
  • Firms public — display-name overrides curated in the build script.
  • Voices anonymized — every quote attributes to a persona string; the script’s candidate pool keeps _name/_firm internally for hand-curation but those fields are stripped before they hit the rendered HTML.
  • Verified via grep: no individual registrant names or emails appear anywhere in the rendered page output.

Behavior

  • Survey sections render only when src/data/webinar-survey/<webinar-id>.json exists. Webinars without a JSON file render exactly as before.
  • Presenter cards render only when presenterDetails[] is set in frontmatter; the simple “With” meta-row is suppressed in that case to avoid duplication.
  • Partner mark renders only when partnerMark is set in frontmatter. Default mode (no data-mode set) falls back to the light variant.
  • The build script’s gen:webinar-survey command preserves hand-curated edits in the JSON; rerun freely after CSV updates.

Verification

  • pnpm gen:webinar-survey — outputs 49 registered, 31 surveyed, 29 firms, 74% already building, 15 quote candidates.
  • curl http://localhost:4324/webinars/2026-05_agentic-vc-dojo-launch returns 200 (~247 KB).
  • All four survey sections render with proportional bar widths (100% / 71% / 64% / 57% / 36%).
  • All three Kauffman logo variants present in the HTML; mode-aware show/hide handled by CSS, not JS.
  • All three presenter headshots, firms, LinkedIn links, and topics render correctly.
  • Grep confirms no PII (no individual names or emails) reaches the rendered page.
Files modified (10)
  • sites/fullstack-vc/scripts/build-webinar-survey.ts
  • sites/fullstack-vc/src/components/sections/Section__WebinarSurveyStats.astro
  • sites/fullstack-vc/src/components/sections/Section__WebinarSurveyPolls.astro
  • sites/fullstack-vc/src/components/sections/Section__WebinarFirmsRepresented.astro
  • sites/fullstack-vc/src/components/sections/Section__WebinarSurveyVoices.astro
  • sites/fullstack-vc/src/components/sections/Section__WebinarPresenters.astro
  • sites/fullstack-vc/src/content.config.ts
  • sites/fullstack-vc/src/content/webinars/2026-05_agentic-vc-dojo-launch.md
  • sites/fullstack-vc/src/pages/webinars/[id].astro
  • sites/fullstack-vc/package.json