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.
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. Writessrc/data/webinar-survey/<webinar-id>.json. Hand-curatedquotesandfirmsOverridesare preserved on re-run (merge, not overwrite). Wired aspnpm 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 (CSScolor-mixfor 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-curatedpersonastrings (“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 additions —
webinarscollection gainshosts,presenterDetails[],partnerMark, andog_imagefields. 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
personastring; the script’s candidate pool keeps_name/_firminternally 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>.jsonexists. 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
partnerMarkis set in frontmatter. Default mode (nodata-modeset) falls back to the light variant. - The build script’s
gen:webinar-surveycommand preserves hand-curated edits in the JSON; rerun freely after CSV updates.
Verification
pnpm gen:webinar-survey— outputs49 registered, 31 surveyed, 29 firms, 74% already building, 15 quote candidates.curl http://localhost:4324/webinars/2026-05_agentic-vc-dojo-launchreturns 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.tssites/fullstack-vc/src/components/sections/Section__WebinarSurveyStats.astrosites/fullstack-vc/src/components/sections/Section__WebinarSurveyPolls.astrosites/fullstack-vc/src/components/sections/Section__WebinarFirmsRepresented.astrosites/fullstack-vc/src/components/sections/Section__WebinarSurveyVoices.astrosites/fullstack-vc/src/components/sections/Section__WebinarPresenters.astrosites/fullstack-vc/src/content.config.tssites/fullstack-vc/src/content/webinars/2026-05_agentic-vc-dojo-launch.mdsites/fullstack-vc/src/pages/webinars/[id].astrosites/fullstack-vc/package.json