Skip to content

Commit e8b6bc0

Browse files
jaredcosulichclaude
andcommitted
feat: Remove the chapter Volunteer link field and reduce WhatsApp-only city pages to three asks
Removed the unused per-chapter Volunteer link field end-to-end (content schema, admin form, chapter page props, joinCtas override). WhatsApp-only (forming) city pages such as DC and Seattle now render only the hero and one band with three buttons: Request to join WhatsApp, Subscribe to newsletter, and Volunteer or co-lead (the volunteer interest form, via the new volunteerFormHref). Events lists, callouts, write-up, sign-up band, global-community band, Connect with us and the Contact us line are gone from those pages, and the forming-chapter shared-inbox surface was retired. Isolated-component previews now load the site webfonts through a small middleware (src/middleware.ts with withSiteFonts) and show real chapter copy instead of a placeholder. Scope verdict: no project deliverables were open, so none delivered or deferred this cycle. A site-wide Harvard Alumni in Tech brand-name sweep was queued as its own plan at the user's request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 4f0537d commit e8b6bc0

232 files changed

Lines changed: 9774 additions & 8022 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.codeyam/data-structure.json‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -349,20 +349,14 @@
349349
"name": "status",
350350
"type": "string",
351351
"required": false,
352-
"description": "`active` or `forming`. Absent means active, so every chapter that existed before this field keeps its behaviour. A forming chapter has no lead yet: its page swaps the leads block for volunteer-to-lead and join-WhatsApp CTAs, and its roster card carries a Forming badge. Promoting a chapter is flipping this one select in /admin — the URL, the nav entry and the event tags all stay put."
352+
"description": "`active` or `forming`. Absent means active, so every chapter that existed before this field keeps its behaviour. A forming chapter has no lead yet: its page swaps the leads block for join-WhatsApp and online-events CTAs, and its roster card carries a Forming badge. Promoting a chapter is flipping this one select in /admin — the URL, the nav entry and the event tags all stay put."
353353
},
354354
{
355355
"name": "whatsappFormUrl",
356356
"type": "string",
357357
"required": false,
358358
"description": "The Google Form that gates entry to this chapter's WhatsApp group. Never the group invite itself: the site links the form only, so joining always goes through alumni verification. Absent falls back to the site-wide form in `src/lib/contact.ts`."
359359
},
360-
{
361-
"name": "volunteerUrl",
362-
"type": "string",
363-
"required": false,
364-
"description": "Where a forming chapter's `Volunteer to lead or support` button points. Absent falls back to the site-wide volunteer path."
365-
},
366360
{
367361
"name": "callouts",
368362
"type": "array",

‎.codeyam/dependency-graph.json‎

Lines changed: 76 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -485,13 +485,12 @@
485485
"src/components/ui/SectionHead.astro",
486486
"src/lib/site.ts",
487487
"src/lib/localPresence.ts",
488+
"src/lib/volunteerPageContent.ts",
488489
"src/lib/externalLink.ts",
489-
"src/lib/mailto.ts",
490490
"src/lib/url.ts"
491491
],
492492
"importedBy": [
493493
"src/components/ChapterPage.astro",
494-
"src/pages/isolated-components/FormingChapterCta-NoEmail.astro",
495494
"src/pages/isolated-components/FormingChapterCta.astro"
496495
]
497496
},
@@ -1843,6 +1842,7 @@
18431842
"src/layouts/BaseLayout.astro": {
18441843
"imports": [
18451844
"src/styles/tokens.css",
1845+
"src/lib/siteFonts.ts",
18461846
"src/components/SEO.astro",
18471847
"src/components/HeadExtras.astro",
18481848
"src/components/BrandMark.astro",
@@ -2034,7 +2034,6 @@
20342034
"src/components/landing/ContactUs.astro",
20352035
"src/components/StructuredData.astro",
20362036
"src/pages/llms.txt.ts",
2037-
"src/pages/chapters/[slug].astro",
20382037
"src/pages/index.astro",
20392038
"src/pages/sponsor.astro"
20402039
]
@@ -2656,8 +2655,7 @@
26562655
"importedBy": [
26572656
"src/lib/giving.ts",
26582657
"src/lib/mailto.test.ts",
2659-
"src/lib/contact.ts",
2660-
"src/components/FormingChapterCta.astro"
2658+
"src/lib/contact.ts"
26612659
]
26622660
},
26632661
"src/lib/media.test.ts": {
@@ -3235,7 +3233,6 @@
32353233
"src/pages/llms.txt.ts",
32363234
"src/pages/volunteer/projects/[slug].astro",
32373235
"src/pages/events.astro",
3238-
"src/pages/chapters/[slug].astro",
32393236
"src/pages/cutover-runbook/[...path].astro",
32403237
"src/pages/donate.astro",
32413238
"src/pages/volunteer.astro",
@@ -3244,6 +3241,20 @@
32443241
"src/pages/isolated-components/[name].astro"
32453242
]
32463243
},
3244+
"src/lib/siteFonts.test.ts": {
3245+
"imports": [
3246+
"src/lib/siteFonts.ts"
3247+
],
3248+
"importedBy": []
3249+
},
3250+
"src/lib/siteFonts.ts": {
3251+
"imports": [],
3252+
"importedBy": [
3253+
"src/layouts/BaseLayout.astro",
3254+
"src/middleware.ts",
3255+
"src/lib/siteFonts.test.ts"
3256+
]
3257+
},
32473258
"src/lib/siteIcons.test.ts": {
32483259
"imports": [],
32493260
"importedBy": []
@@ -3427,6 +3438,7 @@
34273438
"src/lib/site.ts"
34283439
],
34293440
"importedBy": [
3441+
"src/components/FormingChapterCta.astro",
34303442
"src/pages/volunteer/projects/[slug].astro",
34313443
"src/pages/volunteer.astro",
34323444
"src/pages/index.astro"
@@ -3446,6 +3458,12 @@
34463458
"src/pages/webinars.astro"
34473459
]
34483460
},
3461+
"src/middleware.ts": {
3462+
"imports": [
3463+
"src/lib/siteFonts.ts"
3464+
],
3465+
"importedBy": []
3466+
},
34493467
"src/pages/404.astro": {
34503468
"imports": [
34513469
"src/layouts/BaseLayout.astro",
@@ -3479,8 +3497,6 @@
34793497
"src/layouts/BaseLayout.astro",
34803498
"src/components/ChapterPage.astro",
34813499
"src/lib/events.ts",
3482-
"src/lib/contact.ts",
3483-
"src/lib/site.ts",
34843500
"src/components/LockedPreviewBody.astro",
34853501
"src/lib/drafts.ts",
34863502
"src/lib/draftVisibility.ts"
@@ -3805,13 +3821,6 @@
38053821
],
38063822
"importedBy": []
38073823
},
3808-
"src/pages/isolated-components/FormingChapterCta-NoEmail.astro": {
3809-
"imports": [
3810-
"src/components/FormingChapterCta.astro",
3811-
"src/styles/tokens.css"
3812-
],
3813-
"importedBy": []
3814-
},
38153824
"src/pages/isolated-components/FormingChapterCta.astro": {
38163825
"imports": [
38173826
"src/components/FormingChapterCta.astro",
@@ -4591,7 +4600,6 @@
45914600
"src/pages/isolated-components/BannerCta/[...state].astro",
45924601
"src/pages/isolated-components/OrderArrows-TopRow.astro",
45934602
"src/pages/isolated-components/PageNarrowBody.astro",
4594-
"src/pages/isolated-components/FormingChapterCta-NoEmail.astro",
45954603
"src/pages/isolated-components/BlogPostBody.astro",
45964604
"src/pages/isolated-components/GiveButton-GivingClosed.astro",
45974605
"src/pages/isolated-components/MomentumTestimonials.astro",
@@ -5189,13 +5197,14 @@
51895197
"imports": [
51905198
"src/components/ui/SectionHead.astro::__file_root__",
51915199
"src/lib/site.ts::siteLinks",
5200+
"src/lib/site.ts::volunteerPage",
51925201
"src/lib/localPresence.ts::joinCtas",
5202+
"src/lib/localPresence.ts::volunteerFormHref",
5203+
"src/lib/volunteerPageContent.ts::loadVolunteerCopy",
51935204
"src/lib/externalLink.ts::externalLinkAttrs",
5194-
"src/lib/mailto.ts::buildMailto",
51955205
"src/lib/url.ts::withBase"
51965206
],
51975207
"importedBy": [
5198-
"src/pages/isolated-components/FormingChapterCta-NoEmail.astro::__file_root__",
51995208
"src/pages/isolated-components/FormingChapterCta.astro::__file_root__"
52005209
]
52015210
},
@@ -6806,6 +6815,7 @@
68066815
"name": "__file_root__",
68076816
"imports": [
68086817
"src/styles/tokens.css::__file_root__",
6818+
"src/lib/siteFonts.ts::__file_root__",
68096819
"src/components/SEO.astro::__file_root__",
68106820
"src/components/HeadExtras.astro::__file_root__",
68116821
"src/components/BrandMark.astro::__file_root__",
@@ -7091,7 +7101,6 @@
70917101
"importedBy": [
70927102
"src/components/StructuredData.astro::__file_root__",
70937103
"src/pages/llms.txt.ts::__file_root__",
7094-
"src/pages/chapters/[slug].astro::__file_root__",
70957104
"src/pages/index.astro::__file_root__",
70967105
"src/pages/sponsor.astro::__file_root__"
70977106
]
@@ -8311,7 +8320,8 @@
83118320
"src/lib/localPresence.ts::isForming",
83128321
"src/lib/localPresence.ts::isWhatsAppGroupLink",
83138322
"src/lib/localPresence.ts::joinCtas",
8314-
"src/lib/localPresence.ts::presenceSummary"
8323+
"src/lib/localPresence.ts::presenceSummary",
8324+
"src/lib/localPresence.ts::volunteerFormHref"
83158325
],
83168326
"importedBy": []
83178327
},
@@ -8384,6 +8394,15 @@
83848394
"src/components/landing/OurChapters.astro::__file_root__"
83858395
]
83868396
},
8397+
"src/lib/localPresence.ts::volunteerFormHref": {
8398+
"filePath": "src/lib/localPresence.ts",
8399+
"name": "volunteerFormHref",
8400+
"imports": [],
8401+
"importedBy": [
8402+
"src/lib/localPresence.test.ts::__file_root__",
8403+
"src/components/FormingChapterCta.astro::__file_root__"
8404+
]
8405+
},
83878406
"src/lib/luma.test.ts::__file_root__": {
83888407
"filePath": "src/lib/luma.test.ts",
83898408
"name": "__file_root__",
@@ -8480,8 +8499,7 @@
84808499
"importedBy": [
84818500
"src/lib/giving.ts::__file_root__",
84828501
"src/lib/mailto.test.ts::__file_root__",
8483-
"src/lib/contact.ts::__file_root__",
8484-
"src/components/FormingChapterCta.astro::__file_root__"
8502+
"src/lib/contact.ts::__file_root__"
84858503
]
84868504
},
84878505
"src/lib/media.test.ts::__file_root__": {
@@ -9783,7 +9801,6 @@
97839801
"src/components/SEO.astro::__file_root__",
97849802
"src/components/StructuredData.astro::__file_root__",
97859803
"src/pages/llms.txt.ts::__file_root__",
9786-
"src/pages/chapters/[slug].astro::__file_root__",
97879804
"src/pages/cutover-runbook/[...path].astro::__file_root__",
97889805
"src/pages/donate.astro::__file_root__",
97899806
"src/pages/index.astro::__file_root__",
@@ -9822,12 +9839,38 @@
98229839
"name": "volunteerPage",
98239840
"imports": [],
98249841
"importedBy": [
9842+
"src/components/FormingChapterCta.astro::__file_root__",
98259843
"src/pages/volunteer/projects/[slug].astro::__file_root__",
98269844
"src/pages/volunteer.astro::__file_root__",
98279845
"src/pages/index.astro::__file_root__",
98289846
"src/pages/isolated-components/[name].astro::__file_root__"
98299847
]
98309848
},
9849+
"src/lib/siteFonts.test.ts::__file_root__": {
9850+
"filePath": "src/lib/siteFonts.test.ts",
9851+
"name": "__file_root__",
9852+
"imports": [
9853+
"src/lib/siteFonts.ts::__file_root__",
9854+
"src/lib/siteFonts.ts::withSiteFonts"
9855+
],
9856+
"importedBy": []
9857+
},
9858+
"src/lib/siteFonts.ts::__file_root__": {
9859+
"filePath": "src/lib/siteFonts.ts",
9860+
"name": "__file_root__",
9861+
"imports": [],
9862+
"importedBy": [
9863+
"src/lib/siteFonts.test.ts::__file_root__"
9864+
]
9865+
},
9866+
"src/lib/siteFonts.ts::withSiteFonts": {
9867+
"filePath": "src/lib/siteFonts.ts",
9868+
"name": "withSiteFonts",
9869+
"imports": [],
9870+
"importedBy": [
9871+
"src/lib/siteFonts.test.ts::__file_root__"
9872+
]
9873+
},
98319874
"src/lib/sitePages.test.ts::__file_root__": {
98329875
"filePath": "src/lib/sitePages.test.ts",
98339876
"name": "__file_root__",
@@ -10437,6 +10480,7 @@
1043710480
"name": "loadVolunteerCopy",
1043810481
"imports": [],
1043910482
"importedBy": [
10483+
"src/components/FormingChapterCta.astro::__file_root__",
1044010484
"src/pages/volunteer/projects/[slug].astro::__file_root__",
1044110485
"src/pages/volunteer.astro::__file_root__",
1044210486
"src/pages/index.astro::__file_root__"
@@ -10488,6 +10532,14 @@
1048810532
"src/components/WebinarsPage.astro::__file_root__"
1048910533
]
1049010534
},
10535+
"src/middleware.ts::__file_root__": {
10536+
"filePath": "src/middleware.ts",
10537+
"name": "__file_root__",
10538+
"imports": [
10539+
"src/lib/siteFonts.ts::withSiteFonts"
10540+
],
10541+
"importedBy": []
10542+
},
1049110543
"src/pages/404.astro::__file_root__": {
1049210544
"filePath": "src/pages/404.astro",
1049310545
"name": "__file_root__",
@@ -10536,8 +10588,6 @@
1053610588
"src/lib/events.ts::recentPastEvents",
1053710589
"src/lib/events.ts::splitEvents",
1053810590
"src/lib/events.ts::unmatchedChapterTags",
10539-
"src/lib/contact.ts::emailFor",
10540-
"src/lib/site.ts::settings",
1054110591
"src/components/LockedPreviewBody.astro::__file_root__",
1054210592
"src/lib/drafts.ts::isLocked",
1054310593
"src/lib/drafts.ts::isPreview",
@@ -10958,15 +11008,6 @@
1095811008
],
1095911009
"importedBy": []
1096011010
},
10961-
"src/pages/isolated-components/FormingChapterCta-NoEmail.astro::__file_root__": {
10962-
"filePath": "src/pages/isolated-components/FormingChapterCta-NoEmail.astro",
10963-
"name": "__file_root__",
10964-
"imports": [
10965-
"src/components/FormingChapterCta.astro::__file_root__",
10966-
"src/styles/tokens.css::__file_root__"
10967-
],
10968-
"importedBy": []
10969-
},
1097011011
"src/pages/isolated-components/FormingChapterCta.astro::__file_root__": {
1097111012
"filePath": "src/pages/isolated-components/FormingChapterCta.astro",
1097211013
"name": "__file_root__",
@@ -11949,7 +11990,6 @@
1194911990
"src/pages/isolated-components/BannerCta/[...state].astro::__file_root__",
1195011991
"src/pages/isolated-components/OrderArrows-TopRow.astro::__file_root__",
1195111992
"src/pages/isolated-components/PageNarrowBody.astro::__file_root__",
11952-
"src/pages/isolated-components/FormingChapterCta-NoEmail.astro::__file_root__",
1195311993
"src/pages/isolated-components/BlogPostBody.astro::__file_root__",
1195411994
"src/pages/isolated-components/GiveButton-GivingClosed.astro::__file_root__",
1195511995
"src/pages/isolated-components/MomentumTestimonials.astro::__file_root__",
@@ -12036,5 +12076,5 @@
1203612076
]
1203712077
}
1203812078
},
12039-
"lastUpdated": "2026-10-14T23:08:07Z"
12079+
"lastUpdated": "2026-10-15T13:29:17Z"
1204012080
}

0 commit comments

Comments
 (0)