Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
284 commits
Select commit Hold shift + click to select a range
c329281
Merge pull request #14 from michaelcolenso/codex/pseo
michaelcolenso May 5, 2026
906d8b5
rebrand: begin nobodynamed implementation updates
michaelcolenso May 5, 2026
dde00c4
Merge pull request #15 from michaelcolenso/codex/implement-instructio…
michaelcolenso May 5, 2026
e1d80aa
rebrand: finish static page brand copy and shared style updates
michaelcolenso May 5, 2026
4ca31f5
Merge branch 'master' into codex/implement-instructions-in-implementa…
michaelcolenso May 5, 2026
34a9f16
Merge pull request #16 from michaelcolenso/codex/implement-instructio…
michaelcolenso May 5, 2026
df02de1
Redesign NobodyNamed as an editorial cultural archive
michaelcolenso May 7, 2026
a00300f
Merge branch 'master' into codex/redesign-nobodynamed-experience
michaelcolenso May 7, 2026
653d683
Merge pull request #18 from michaelcolenso/codex/redesign-nobodynamed…
michaelcolenso May 7, 2026
89ab307
QA audit: fix XSS, stale meta count, rising/0-births classification, …
claude May 7, 2026
f5fb82f
chore: update tsconfig.tsbuildinfo after typecheck
claude May 7, 2026
45123c2
Merge pull request #19 from michaelcolenso/claude/qa-audit-nobodyname…
michaelcolenso May 7, 2026
a1c9531
Resolve stash conflicts and apply redesign + narrative enhancements
michaelcolenso May 7, 2026
0cfe374
Merge pull request #20 from michaelcolenso/recover/stash-fix
michaelcolenso May 7, 2026
cd32bc4
Fix unresolved merge markers in name page header
michaelcolenso May 7, 2026
3d3974f
Merge pull request #21 from michaelcolenso/codex/clarify-user-question
michaelcolenso May 7, 2026
6c2d7a7
Add GitHub Action to deploy Cloudflare on main updates
michaelcolenso May 7, 2026
9e631a5
Merge pull request #22 from michaelcolenso/codex/create-github-action…
michaelcolenso May 7, 2026
b250b64
Add minimal enrichment flow with worker endpoint and cached API
michaelcolenso May 7, 2026
0b0aae9
Merge pull request #23 from michaelcolenso/codex/implement-minimal-en…
michaelcolenso May 7, 2026
4694842
Fix Cloudflare deploy workflow triggers
michaelcolenso May 7, 2026
d4ef61d
dee
michaelcolenso May 7, 2026
1dcf206
Expand enrichment with SSA-backed facts and cache keying
michaelcolenso May 7, 2026
82571f6
Fix Cloudflare Pages project name
michaelcolenso May 7, 2026
140fc43
Update deploy-cloudflare.yml
michaelcolenso May 8, 2026
51ff1d0
Update package.json
michaelcolenso May 8, 2026
ece9210
Fix Pages project and D1 database name to match Cloudflare
claude May 8, 2026
c0c4429
Correct Pages project name back to nobodynamed
claude May 8, 2026
752170e
Revert database_name change; project config is nobodynamed
claude May 8, 2026
22b7951
Apply QA fixes: routing, affiliate link, status labels, OG meta, cron
claude May 8, 2026
42e1af6
Update shared package tsbuildinfo after typecheck
claude May 8, 2026
ee1a309
Fix overlapping cron schedules for ingest worker
claude May 8, 2026
dfc07a3
Merge pull request #25 from michaelcolenso/claude/deploy-worker-qa-fi…
michaelcolenso May 8, 2026
7577a3c
Update deploy-cloudflare.yml
michaelcolenso May 9, 2026
8dc720c
Update deploy-cloudflare.yml
michaelcolenso May 9, 2026
30e667e
Reduce to single weekly cron to stay within account trigger limit
claude May 9, 2026
24977cf
Merge pull request #26 from michaelcolenso/claude/deploy-worker-qa-fi…
michaelcolenso May 9, 2026
00d2f02
Fix static asset serving in [slug].ts: use env.ASSETS instead of ctx.…
claude May 9, 2026
42c84d6
Merge pull request #27 from michaelcolenso/claude/deploy-worker-qa-fi…
michaelcolenso May 9, 2026
76628dc
Add production QA report and remediation plan
michaelcolenso May 9, 2026
c30bf53
Implement routing guardrails and production smoke checks
michaelcolenso May 9, 2026
b81a1ab
Merge pull request #28 from michaelcolenso/codex/conduct-qa-pass-on-n…
michaelcolenso May 9, 2026
7542f6f
fix: resolve broken nav links causing redirect loops and API routing …
michaelcolenso May 9, 2026
8abb5a2
Merge pull request #29 from michaelcolenso/fix/nav-links-routing
michaelcolenso May 9, 2026
ec47e8e
nhk
michaelcolenso May 9, 2026
772ee39
Merge pull request #30 from michaelcolenso/fix/nav-links-routing
michaelcolenso May 9, 2026
2e3e387
ci: add web deployment to Cloudflare deploy workflow
michaelcolenso May 9, 2026
9e46677
Merge branch 'master' of github.com:michaelcolenso/babynames
michaelcolenso May 9, 2026
bab3509
fix: add missing topByDecade query helper
michaelcolenso May 9, 2026
44a4e7a
feat: wire up enrichment pipeline with shape-fingerprinted narratives
michaelcolenso May 9, 2026
85fe6f4
Fix name page narrative copy
michaelcolenso May 9, 2026
a464640
Add files via upload
michaelcolenso May 13, 2026
ed57ed1
Add Identity v3 logo integration plan
michaelcolenso May 13, 2026
f6966c5
Merge pull request #31 from michaelcolenso/codex/integrate-new-logo-t…
michaelcolenso May 13, 2026
e32509e
Integrate v3 wordmark across web headers
michaelcolenso May 13, 2026
a4a365b
Merge pull request #32 from michaelcolenso/codex/integrate-new-logo-t…
michaelcolenso May 13, 2026
81aaf69
Add recreated SVG wordmarks for new logo
michaelcolenso May 13, 2026
1bb6681
Merge pull request #33 from michaelcolenso/codex/integrate-new-logo-t…
michaelcolenso May 13, 2026
b179699
Fix wordmark SVG clipping
michaelcolenso May 13, 2026
407d0c6
Merge branch 'master' into codex/fix-wordmark-svg-clipping
michaelcolenso May 13, 2026
cabb605
Merge pull request #34 from michaelcolenso/codex/fix-wordmark-svg-cli…
michaelcolenso May 13, 2026
35639bd
asdeds
michaelcolenso May 13, 2026
592003d
Merge branch 'master' of github.com:michaelcolenso/babynames
michaelcolenso May 13, 2026
ccd8575
Replace homepage hero with a full-bleed streamgraph of US baby names.
claude May 13, 2026
afd8158
Merge pull request #35 from michaelcolenso/claude/refine-local-plan-y…
michaelcolenso May 13, 2026
97a53c3
chore: sync lockfile with @cloudflare/workers-types bump
michaelcolenso May 13, 2026
9a05442
Merge branch 'master' of github.com:michaelcolenso/babynames
michaelcolenso May 13, 2026
f322ec5
fix(river): use symmetric weights in weighted-wiggle baseline
michaelcolenso May 13, 2026
4e98cca
fix: remove observability from Pages wrangler.toml
michaelcolenso May 13, 2026
547a600
fix: make hero search panel translucent so river shows through
michaelcolenso May 13, 2026
e072525
feat: replace hero streamgraph with US Birth Pulse stacked area
michaelcolenso May 13, 2026
4f7d1c0
fix: remove numeric separators for broader browser compat
michaelcolenso May 13, 2026
9cff9ad
fix: unterminated string literal in template expression
michaelcolenso May 13, 2026
5139b00
fix: cache-bust assets to force fresh load
michaelcolenso May 13, 2026
54108f5
Collapse search to input-only bar, reveal gender+CTA on focus
michaelcolenso May 13, 2026
dd0c966
Move search panel below pulse chart
michaelcolenso May 13, 2026
88297ad
Darken pulse chart annotation labels for readability
michaelcolenso May 13, 2026
4c219d1
Restagger pulse chart annotations: two rows, larger mixed-case text, …
michaelcolenso May 13, 2026
dae15ed
Place pulse annotations at data points with leader lines and dots
michaelcolenso May 13, 2026
cf6a5bf
Voice shift medical→cultural, name overlays on chart, reduce homepage…
michaelcolenso May 14, 2026
1e13775
Replace pulse chart with name tapestry: 16 sparkline grid beside search
michaelcolenso May 14, 2026
328dbb5
Add 4 names to tapestry (Noah, Sophia, Jason, Mary), taller sparklines
michaelcolenso May 14, 2026
181c46e
Expand tapestry to 24 names organized by curve shape, taller sparklines
michaelcolenso May 14, 2026
253cf60
Fix duplicate NAMES array in tapestry.js
michaelcolenso May 14, 2026
6f34323
Add visualization gallery page at /viz
michaelcolenso May 14, 2026
857c8cd
Redesign hero tapestry as Rise & Fall small multiples
michaelcolenso May 14, 2026
3b1f133
Add Ahrefs MCP tool permissions for SEO audit
claude May 16, 2026
8ec4fbd
SEO: add structured data, fix canonical URLs, clean up nav links
claude May 16, 2026
1d0fb3a
Update tsconfig.tsbuildinfo after typecheck
claude May 16, 2026
6bfd29c
Merge pull request #36 from michaelcolenso/claude/seo-audit-nobodynam…
michaelcolenso May 16, 2026
b3b7ba2
SEO: structured data, canonical URLs, OG tags, editorial nav, default…
michaelcolenso May 19, 2026
e8ef9dd
feat(ingest): trigger ingest from existing R2 zip via r2key param (#39)
michaelcolenso May 19, 2026
9079810
Ingest 2025 SSA data: User-Agent fix + standalone ingest script (#38)
michaelcolenso May 19, 2026
38efeb7
Fix ingest-ssa script: remove BEGIN/COMMIT (not supported by wrangler…
claude May 19, 2026
8c1de47
Add 2025 baby name obituaries visualization
claude May 19, 2026
6d0ed20
Improve SEO route metadata and HEAD support
michaelcolenso May 19, 2026
0fd2c83
Retheme 2025 viz: nobody/somebody brand-native framing
claude May 19, 2026
ddf767d
Rename viz: 2025-obituaries.html → nobody-named-2025.html
claude May 19, 2026
b40a2ca
Rename 2025 visualization and add schema breadcrumbs
michaelcolenso May 19, 2026
1c0abb7
Add initial-based programmatic name pages
michaelcolenso May 19, 2026
7c9ed4f
Add 5-panel 2025 SSA data visualization gallery (#40)
michaelcolenso May 19, 2026
62951a4
access
michaelcolenso May 19, 2026
7bccbe4
Merge branch 'master' of https://github.com/michaelcolenso/babynames
michaelcolenso May 19, 2026
295fdc1
auth
michaelcolenso May 19, 2026
5f928c9
Add blog routing, nav links, and styles
michaelcolenso May 19, 2026
295c105
Add GET handler for /api/blog/admin with HTML form
michaelcolenso May 19, 2026
2061275
Add Kehlani Effect visualization page
michaelcolenso May 19, 2026
f216346
Update Kehlani viz to match site styling (light theme, serif/sans fonts)
michaelcolenso May 19, 2026
59d19db
Add migration: The Kehlani Effect blog post with inline viz
michaelcolenso May 19, 2026
c181ea1
headfer
michaelcolenso May 19, 2026
fdf3e72
Add 8 new bold data visualizations to /viz/ (#41)
michaelcolenso May 20, 2026
1884cc1
Convert OG images from SVG to PNG (#43)
michaelcolenso May 20, 2026
8551ebd
Add three viral blog posts exploring 2025 SSA name trends (#44)
michaelcolenso May 22, 2026
1f2517b
Add 2025 SSA ingest: User-Agent fix + standalone ingest script
claude May 19, 2026
bdab107
Add /blog section with Namecalling posts and site nav
claude May 22, 2026
b18e3ce
Add Namecalling blog index and fix about.html nav
claude May 22, 2026
4a17df2
Add Namecalling blog section at /blog (#45)
michaelcolenso May 22, 2026
3a0f53e
Add Namecalling blog with 3 new viral posts + 2025 SSA ingest improve…
michaelcolenso May 22, 2026
81bb3f8
Fix Mary's Empire — bars were invisible due to raw % scale (#42)
michaelcolenso May 22, 2026
0565058
Add 3 new Namecalling blog posts to D1 migration
claude May 22, 2026
87c41c9
Add One-Hit Wonder Names blog post to D1
claude May 22, 2026
708f355
Merge pull request #47 from michaelcolenso/claude/ingest-2025-ssa-dat…
michaelcolenso May 22, 2026
cd7df39
Upgrade one-hit-wonder post visuals to match name page chart style
claude May 22, 2026
caa9654
Merge pull request #48 from michaelcolenso/claude/ingest-2025-ssa-dat…
michaelcolenso May 22, 2026
0a9c110
Add name label to each chart panel in one-hit-wonder post
claude May 22, 2026
c5c9f46
Add journalist press page with 2025 SSA data pitch
claude May 22, 2026
fca0978
Update shared tsconfig build info after typecheck
claude May 22, 2026
732ec32
Merge pull request #50 from michaelcolenso/claude/ssa-data-journalist…
michaelcolenso May 22, 2026
a559f55
Add Tenure visualization: top-100 entrances, exits, and continuous names
claude May 23, 2026
7b74c52
Merge pull request #51 from michaelcolenso/claude/ssa-data-journalist…
michaelcolenso May 23, 2026
e15924b
Give Bethzy its own section in one-hit-wonder post
claude May 24, 2026
bcb6ab5
Add /api/debuts/:year — names appearing in SSA for the first time
claude May 24, 2026
2e4a8b6
Merge pull request #52 from michaelcolenso/claude/ssa-data-journalist…
michaelcolenso May 24, 2026
0c2bfe6
Improve SEO routing and web vitals
michaelcolenso May 24, 2026
209652f
fix(seo): audit fixes — dedupe /comeback, cache headers, OG images, m…
michaelcolenso May 24, 2026
aaab560
fix(blog): add stopword filter to prevent linking common words like T…
michaelcolenso May 24, 2026
8b87bbb
feat(shadow): The Counterfactual You — parallel name lives across 50-…
michaelcolenso May 24, 2026
32d1a49
fix(shadow): simplify D1 query to avoid CTE issues; add /shadow to _r…
michaelcolenso May 24, 2026
efb900d
fix(shadow): correct year gap in narrative (50 years, not shadowYear …
michaelcolenso May 24, 2026
5d6bebf
Replace blog posts with editorial rewrites
michaelcolenso May 24, 2026
54982e4
Delete duplicate Two Americas blog post
michaelcolenso May 24, 2026
66007b7
Merge branch 'origin/master'
michaelcolenso May 24, 2026
a617251
Add Markdown blog publishing workflow
michaelcolenso May 25, 2026
fa187a3
Add 5 data-journalism visualizations (#23–27) with API endpoints
claude May 25, 2026
c9287ed
Merge pull request #53 from michaelcolenso/claude/ssa-data-journalist…
michaelcolenso May 25, 2026
5d6019e
feat(enrichment): add precomputed name dossier layers
claude May 25, 2026
c3c0cbd
Merge pull request #54 from michaelcolenso/claude/diaspora-map-featur…
michaelcolenso May 25, 2026
d72f9d3
Merge pull request #49 from michaelcolenso/claude/ingest-2025-ssa-dat…
michaelcolenso May 25, 2026
b239ae6
feat(og): per-post blog cards + fix invisible OG text
claude May 25, 2026
207ce0d
Merge pull request #55 from michaelcolenso/claude/blog-og-image-impro…
michaelcolenso May 25, 2026
80d305e
feat(diaspora): add per-name geographic diffusion map
claude May 26, 2026
14f2377
Merge pull request #56 from michaelcolenso/claude/diaspora-map-featur…
michaelcolenso May 26, 2026
9820746
Add agent-readiness: Link headers, markdown negotiation, API catalog,…
claude May 26, 2026
acaa14c
chore: update shared tsconfig.tsbuildinfo after typecheck run
claude May 26, 2026
6223bf5
Merge pull request #57 from michaelcolenso/claude/sweet-babbage-8Aip7
michaelcolenso May 26, 2026
45f65c3
Add WebMCP tool registration to homepage
claude May 27, 2026
aba6f56
Fix Link headers not appearing on homepage
claude May 27, 2026
ced8162
Merge pull request #58 from michaelcolenso/claude/sweet-babbage-8Aip7
michaelcolenso May 27, 2026
5b1ce2b
Add MCP server, server card, and OAuth protected resource metadata
claude May 27, 2026
ce2907c
Merge pull request #59 from michaelcolenso/claude/sweet-babbage-8Aip7
michaelcolenso May 27, 2026
07759c8
Add comprehensive SEO audit for nobodynamed.com
claude May 29, 2026
189f5ec
Correct homepage finding: cache-variant collision, not constant outage
claude May 29, 2026
728582b
Merge pull request #60 from michaelcolenso/claude/nobodynamed-seo-aud…
michaelcolenso May 29, 2026
3d75c65
Add SEO follow-up: competitor/keyword landscape + deep technical + li…
claude May 29, 2026
4ec8412
Correct indexation finding with real GSC data
claude May 29, 2026
a3774b3
Merge pull request #61 from michaelcolenso/claude/nobodynamed-seo-aud…
michaelcolenso May 29, 2026
abcdf5d
Implement SEO fixes: homepage cache, SSR hub links, OG type, sitemap …
claude May 29, 2026
f2ea7bf
Merge pull request #62 from michaelcolenso/claude/nobodynamed-seo-aud…
michaelcolenso May 30, 2026
b09e5c6
Add IndexNow key file
michaelcolenso May 30, 2026
2867bea
Merge branch 'master' of https://github.com/michaelcolenso/babynames
michaelcolenso May 30, 2026
ef5ea81
Fix diaspora diffusion to per-capita; add state-geography blog posts
claude May 30, 2026
2bf3334
Add npm test script for diaspora verification
claude May 30, 2026
a946e7e
Merge pull request #63 from michaelcolenso/claude/blog-post-brainstor…
michaelcolenso May 30, 2026
e43257a
Redefine diaspora origin as per-capita breakout (location quotient)
claude May 31, 2026
87a4490
Reword diaspora map copy for breakout semantics
claude May 31, 2026
115bf66
Fix repopulate batch size for D1 HTTP variable limit
claude May 31, 2026
a197d58
Add interactive signature-name map to state-geography post
claude May 31, 2026
581841a
Bump data_version after diaspora repopulate swap
claude May 31, 2026
621df00
Make signature-name map mobile-readable
claude May 31, 2026
0cd0c72
Render real state silhouettes on mobile instead of cramped grid
claude May 31, 2026
7c83f40
Fix collapsed state silhouettes (Mercator y in degrees)
claude May 31, 2026
c2fc50d
Scope tile background colors so mobile cards aren't flooded
claude May 31, 2026
7e916a5
Increase smallest map card text sizes
claude May 31, 2026
ae2699c
Add handoff doc for state signature-names work
claude May 31, 2026
991b54e
Rewrite state-signature post: new framing + Frontier Sound section
claude May 31, 2026
5ae7f30
Add proper blog admin editor with Markdown support and post management
claude May 31, 2026
9e1b895
Update shared package tsbuildinfo after typecheck
claude May 31, 2026
ea55a82
Merge pull request #64 from michaelcolenso/claude/dreamy-gates-uBpYS
michaelcolenso May 31, 2026
d78ce24
fix(d1): chunk variable-length IN lists to stay under D1's bound-vari…
michaelcolenso Jun 2, 2026
ead08b1
Merge remote-tracking branch 'origin/master' into fix/d1-too-many-sql…
michaelcolenso Jun 2, 2026
adc758f
Merge pull request #65 from michaelcolenso/fix/d1-too-many-sql-variab…
michaelcolenso Jun 2, 2026
81683cd
Fix map card links being stripped by blog dedup linker
claude Jun 2, 2026
cefa709
Animate the name trajectory chart with a draw-on effect
claude Jun 2, 2026
3ca60d7
chore: update shared tsbuildinfo
claude Jun 2, 2026
212b4e2
Merge remote-tracking branch 'origin/master' into claude/blog-post-br…
claude Jun 2, 2026
047e0f1
chore: update shared tsbuildinfo after merge build
claude Jun 2, 2026
79b49a8
Merge pull request #66 from michaelcolenso/claude/blog-post-brainstor…
michaelcolenso Jun 2, 2026
0f3cb23
fix(d1): rank per-year to keep topByYear/riverNames under D1 memory l…
claude Jun 2, 2026
45bf662
Merge pull request #67 from michaelcolenso/claude/post-merge-regressi…
michaelcolenso Jun 2, 2026
b739bcf
Normalize all page shells to shared design system
michaelcolenso Jun 4, 2026
52477b9
Merge pull request #68 from michaelcolenso/normalize/site-shell
michaelcolenso Jun 4, 2026
2a86542
Add 3 bold visualizations (#28–30) with API endpoints (viz HTML pending)
claude Jun 4, 2026
bcbb448
Add viz HTML for #28 Universe, #29 Bloodlines, #30 Survival Curve
claude Jun 4, 2026
dd7ee8e
Update diaspora map to track state appearances
michaelcolenso Jun 4, 2026
f33b3fc
Merge pull request #70 from michaelcolenso/codex/diaspora-first-appea…
michaelcolenso Jun 4, 2026
4e76579
Merge pull request #69 from michaelcolenso/claude/ssa-data-journalist…
michaelcolenso Jun 5, 2026
212a59a
Add SEO prose sections to every name page (at-a-glance + Q&A)
claude Jun 5, 2026
b658de5
Update TypeScript build info after shared package changes
claude Jun 5, 2026
d5cb9a9
Merge origin/master; add SEO narrative sections + fix past-peak label
claude Jun 5, 2026
949ce55
Merge pull request #71 from michaelcolenso/claude/ssa-data-journalist…
michaelcolenso Jun 5, 2026
d110d08
Improve name page search intent: data-driven meta, geography Q&A, ans…
claude Jun 5, 2026
c95e1c4
Merge pull request #72 from michaelcolenso/claude/ssa-data-journalist…
michaelcolenso Jun 5, 2026
57ae8ac
Add compact name quick answers
michaelcolenso Jun 5, 2026
baee4c7
Merge pull request #73 from michaelcolenso/codex/add-quick-answers-se…
michaelcolenso Jun 5, 2026
bae1ecd
Add wavefront animation and living population treemap visualizations
claude Jun 6, 2026
dfc61b8
Update tsconfig build info
claude Jun 6, 2026
f919d55
Merge pull request #75 from michaelcolenso/claude/fervent-goldberg-rUN7i
michaelcolenso Jun 6, 2026
cfbfc3a
Repair diaspora: per-capita breakout with significance + 1910 gate
claude Jun 9, 2026
7a298c0
Relabel diaspora copy: breakout/over-represented, not 'first recorded'
claude Jun 9, 2026
1fb6b23
Merge pull request #77 from michaelcolenso/claude/diaspora-percapita-…
michaelcolenso Jun 9, 2026
67b0d6a
Add editorial backlog + flagship draft: 'How Many Karens Are Left?'
claude Jun 9, 2026
f18894d
Ground editorial backlog in real GSC demand data
claude Jun 9, 2026
cd2999a
Allowlist Ahrefs MCP tools used this session
claude Jun 9, 2026
1baaa00
Respond to GSC demand: FAQ schema + higher-CTR year/decade titles
claude Jun 9, 2026
c40c290
Fix noUncheckedIndexedAccess type errors in api handlers
claude Jun 9, 2026
f7fbd42
Add higher-CTR SEO titles to editorial /[slug] hub pages
claude Jun 9, 2026
ca3dd69
Finalize Karen post with exact figures from production D1
claude Jun 9, 2026
327ff57
Merge pull request #79 from michaelcolenso/claude/nice-gates-4mxztx
michaelcolenso Jun 9, 2026
082075d
feat: unify viz pages with main site warm theme
michaelcolenso Jun 9, 2026
0f6f035
Merge pull request #80 from michaelcolenso/viz-warm-theme
michaelcolenso Jun 9, 2026
8274fe1
Add SQL analysis idioms reference for the name dataset
claude Jun 12, 2026
b787cc1
Add flagship post: How America Stopped Sharing Names (draft)
claude Jun 12, 2026
f32772a
Merge pull request #81 from michaelcolenso/claude/nice-gates-4mxztx
michaelcolenso Jun 12, 2026
4ffe837
fix: add footer.site class to viz page footers
michaelcolenso Jun 9, 2026
d97f969
feat: implement name comparison page, autocomplete compare controls, …
michaelcolenso Jun 12, 2026
5e00cdd
docs: specify debut of the year almanac
michaelcolenso Jun 13, 2026
4b00bac
put the decade pages in the homepage hero
michaelcolenso Jun 13, 2026
2c37266
chore: move planning docs to docs/, remove unused phonetic-matching f…
michaelcolenso Jun 13, 2026
8358d79
chore: gitignore service-account credential files
michaelcolenso Jun 13, 2026
38ce128
feat: publish debut of the year almanac
michaelcolenso Jun 13, 2026
46d002c
Merge pull request #83 from michaelcolenso/codex/debut-names
michaelcolenso Jun 13, 2026
ebaeb0c
Improve SEO for year and decade pages: shorter meta descriptions, spe…
michaelcolenso Jun 13, 2026
6c76b53
Improve SEO for year and decade pages: shorter meta descriptions, spe…
michaelcolenso Jun 13, 2026
b5a2c76
Merge pull request #84 from michaelcolenso/seo/decade-meta-descriptions
michaelcolenso Jun 13, 2026
8e0c42f
Deploy: Press Start to Name (published blog post)
claude Jun 13, 2026
e386b54
Add Genesis-style hero image to Press Start to Name
claude Jun 16, 2026
8651271
Merge pull request #85 from michaelcolenso/claude/press-start-to-name
michaelcolenso Jun 18, 2026
874b9ad
SEO overhaul: homepage title/editorial/SSR, decade TDZ fix, twitter t…
michaelcolenso Jun 21, 2026
9485931
fix: install @cloudflare/workers-types to unblock local builds
michaelcolenso Jun 21, 2026
9fa7105
SEO audit fixes: shorten titles, rewrite meta descriptions, fix featu…
michaelcolenso Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 25 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"permissions": {
"allow": [
"Bash(cat)",
"Read(//tmp/**)",
"Bash(npm run *)",
"Bash(git push *)",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__site-explorer-metrics",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__site-explorer-domain-rating",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__site-explorer-backlinks-stats",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__site-explorer-organic-keywords",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__site-explorer-top-pages",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__site-explorer-organic-competitors",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__site-explorer-referring-domains",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__keywords-explorer-overview",
"mcp__cbdb50ba-e16f-41a1-8f51-6e90f23211d1__gsc-keywords",
"mcp__Ahrefs__site-explorer-top-pages",
"mcp__Ahrefs__keywords-explorer-overview",
"mcp__Ahrefs__keywords-explorer-matching-terms"
]
},
"disabledMcpjsonServers": [
"postgresql"
]
}
44 changes: 44 additions & 0 deletions .github/workflows/deploy-cloudflare.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Deploy to Cloudflare

on:
workflow_dispatch:
push:
branches:
- master
- main

jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm

- name: Install dependencies
run: npm ci

- name: Verify Cloudflare credentials
run: |
test -n "$CLOUDFLARE_API_TOKEN" || (echo "CLOUDFLARE_API_TOKEN secret is not set" && exit 1)
test -n "$CLOUDFLARE_ACCOUNT_ID" || (echo "CLOUDFLARE_ACCOUNT_ID secret is not set" && exit 1)

- name: Build shared package
run: npm run build

- name: Deploy web (Pages)
run: npm run deploy:web

- name: Deploy ingest worker
run: npm run deploy:ingest
62 changes: 35 additions & 27 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,34 +1,42 @@
# Logs
logs
node_modules/
.wrangler/
dist/
.dev.vars
.env
.env.local
*.log
.DS_Store

# Runtime data
pids
*.pid
*.seed
# Credentials
*service-account*.json

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Worker / D1 local state
.mf/
.miniflare/

# Coverage directory used by tools like istanbul
coverage
# Generated seed SQL (large; produced by scripts/seed-from-shards.ts)
migrations/seed/

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directory
# Deployed apps should consider commenting this line out:
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
node_modules

data
# Local SSA data drops (used by scripts/local-ingest.ts)
data_src/
names.zip
flat
flat/*
extra/states/*
scripts/cache/

.DS_Store
# Enrichment input structure. Keep manual inputs tracked; keep generated SQL ignored.
data/*
!data/manual/
!data/manual/*.csv
!data/raw/
!data/raw/ssa-national/
data/raw/ssa-national/*
!data/raw/ssa-national/.gitkeep
!data/raw/ssa-state/
data/raw/ssa-state/*
!data/raw/ssa-state/.gitkeep
!data/dist/
data/dist/*
!data/dist/.gitkeep

# Legacy data dirs (pre-Cloudflare; kept ignored for any local checkout)
flat/
extra/states/
scripts/cache/
41 changes: 41 additions & 0 deletions .impeccable.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# .impeccable.md

Design context for Name Vitals — consumed by all frontend-design skills.

## Design Context

### Users

Two overlapping audiences: **expectant parents** researching whether a name is trending, dying out, or timeless; and **name enthusiasts / data nerds** who find the cultural history and trend data intrinsically interesting. Both deserve a design that treats the data seriously without condescension. The parent is shopping; the enthusiast is exploring. The interface serves both without compromise.

### Brand Personality

**Authoritative. Curious. Refined.**

Name Vitals is the publication of record for baby name history. It doesn't shout. It presents. It lets the data do the talking with quiet confidence. Think: a well-edited longform piece about cultural trends, typeset carefully, with charts that earn their place.

### Aesthetic Direction

**Editorial / magazine** — typographically precise, data-forward, serious without being sterile.

The existing foundation is correct: warm off-white (`#f7f5f2`), Iowan Old Style serif, subtle structure. Build on it rather than replace it.

**References to draw from:**

- Are.na: restrained, typographically intentional, lets content breathe
- The Pudding: data journalism that feels crafted, not generated
- Craig Mod's writing/design: serif-led, warm, precise, respects the reader's intelligence

**Anti-references (explicitly avoid):**

- BabyCenter / What to Expect: pastel overload, stock photography, commercial register, feels like it's selling something
- Generic SaaS dashboard: purple-to-blue gradients, card grids, hero metrics, AI aesthetic fingerprints
- Wikipedia: technically correct but personality-free, pure utility with no craft

### Design Principles

1. **Let the data speak.** Charts and numbers are primary content, not decorations. Typography and layout serve the data, not the other way around.
2. **Earn every element.** Nothing decorative that doesn't reinforce meaning. Status colors communicate, sparklines inform, whitespace creates hierarchy.
3. **Refined, not precious.** Serif typography and warm tones signal care — not luxury. This is a research tool with craft, not a premium product.
4. **Both audiences, one interface.** Don't design for either extreme. The parent should find what they need without a data-science degree; the enthusiast shouldn't feel talked down to.
5. **Light and dark, properly done.** Dark mode is not an afterthought or a color-inverted light mode. It gets its own considered palette — ink-on-paper / paper-in-lamplight duality.
174 changes: 174 additions & 0 deletions .playwright-mcp/page-2026-05-07T07-11-18-726Z.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
- generic [ref=e2]:
- banner [ref=e3]:
- link "nobodynamed" [ref=e4] [cursor=pointer]:
- /url: /
- navigation [ref=e5]:
- link "Extinct" [ref=e6] [cursor=pointer]:
- /url: /extinct.html
- link "Endangered" [ref=e7] [cursor=pointer]:
- /url: /endangered.html
- link "Comebacks" [ref=e8] [cursor=pointer]:
- /url: /comeback.html
- link "Birth year" [ref=e9] [cursor=pointer]:
- /url: /year.html
- link "Rising" [ref=e10] [cursor=pointer]:
- /url: /rising.html
- link "About" [ref=e11] [cursor=pointer]:
- /url: /about.html
- group [ref=e12]:
- generic "Open navigation" [ref=e13]
- article [ref=e15]:
- generic [ref=e16]:
- generic [ref=e17]:
- generic [ref=e18]: Feminine dossier · first seen 1880
- heading "Anna" [level=1] [ref=e19]
- generic [ref=e21]:
- generic [ref=e22]: Stable
- generic [ref=e23]: Cross-generational persistence
- generic [ref=e24]:
- generic [ref=e25]:
- generic [ref=e26]: Peak era
- generic [ref=e27]: "1918"
- generic [ref=e28]:
- generic [ref=e29]: Peak rank proxy
- generic [ref=e30]: 15,666
- generic [ref=e31]:
- generic [ref=e32]: Current vitality
- generic [ref=e33]: Healthy
- generic [ref=e34]:
- generic [ref=e35]: Generation
- generic [ref=e36]: Greatest Generation
- region "Anna annual popularity chart" [ref=e37]:
- generic [ref=e38]:
- generic [ref=e39]: "1880"
- generic [ref=e40]: Peak 1918
- generic [ref=e41]: "2017"
- img [ref=e42]:
- generic [ref=e46]: peak 1918
- generic [ref=e47]: "2017"
- generic [ref=e48]: "1880"
- generic [ref=e49]: "1900"
- generic [ref=e50]: "1920"
- generic [ref=e51]: "1940"
- generic [ref=e52]: "1960"
- generic [ref=e53]: "1980"
- generic [ref=e54]: "2000"
- generic [ref=e55]:
- generic [ref=e56]:
- generic [ref=e57]: Peak year
- generic [ref=e58]: "1918"
- generic [ref=e59]:
- generic [ref=e60]: Decline from peak
- generic [ref=e61]: 71.1%
- generic [ref=e62]:
- generic [ref=e63]: "2017"
- generic [ref=e64]: 4,520
- generic [ref=e65]:
- generic [ref=e66]: All-time
- generic [ref=e67]: 888,505
- navigation "Explore more name data" [ref=e68]:
- link "Top names from 1918" [ref=e69] [cursor=pointer]:
- /url: /year.html?year=1918
- complementary [ref=e70]:
- generic [ref=e71]:
- paragraph [ref=e72]: "Anna has avoided the sharper boom-and-bust cycles of fashion naming. Its strength is not novelty but endurance: steady recognition across eras, families, and classrooms."
- paragraph [ref=e73]:
- text: Your name peaked in 1918, when
- strong [ref=e74]: 15,666
- text: girls were named Anna.
- paragraph [ref=e75]:
- text: In 2017, only
- strong [ref=e76]: 4,520
- text: girls were given the name.
- paragraph [ref=e77]:
- text: Down
- strong [ref=e78]: 71.1%
- text: from its peak.
- paragraph [ref=e79]:
- text: All told, about
- strong [ref=e80]: 888,505
- text: Americans have been named Anna and recorded by the Social Security Administration since 1880.
- region "Anna enrichment" [ref=e81]:
- heading "SSA enrichment" [level=2] [ref=e82]
- paragraph [ref=e83]: "Anna peaked in 1918 with 15,666 girls, roughly #10 for that year. The recent record is comparatively steady: 4,520 girls were recorded in 2017, around #53."
- generic [ref=e84]:
- generic [ref=e85]:
- term [ref=e86]: First seen
- definition [ref=e87]: "1880"
- generic [ref=e88]:
- term [ref=e89]: Peak
- definition [ref=e90]: 15,666 girls in 1918
- generic [ref=e91]:
- term [ref=e92]: Peak rank
- definition [ref=e93]: "#10 · 1918 girls"
- generic [ref=e94]:
- term [ref=e95]: Latest rank
- definition [ref=e96]: "#53 · 2017 girls"
- generic [ref=e97]:
- term [ref=e98]: All-time records
- definition [ref=e99]: 888,505
- generic [ref=e100]:
- term [ref=e101]: Decade trend
- definition [ref=e102]: 0.6x · 93,570 to 57,141
- link "Social Security Administration baby-name records" [ref=e103] [cursor=pointer]:
- /url: https://www.ssa.gov/oact/babynames/
- generic [ref=e104]:
- generic [ref=e105]:
- generic [ref=e106]: Rarity score
- strong [ref=e107]: Mainstream
- generic [ref=e108]:
- generic [ref=e109]: Association
- strong [ref=e110]: Greatest Generation
- generic [ref=e111]:
- generic [ref=e112]: Stability
- strong [ref=e113]: Era-bound, still legible
- generic [ref=e114]:
- generic [ref=e115]: Trajectory
- strong [ref=e116]: Cross-generational persistence
- region "Related names" [ref=e117]:
- heading "Related names" [level=2] [ref=e118]
- generic [ref=e119]:
- link "Eva Feminine · Stable · peak 1918" [ref=e120] [cursor=pointer]:
- /url: /name/Eva/
- strong [ref=e121]: Eva
- generic [ref=e122]: Feminine · Stable · peak 1918
- link "Jessie Feminine · Stable · peak 1918" [ref=e123] [cursor=pointer]:
- /url: /name/Jessie/
- strong [ref=e124]: Jessie
- generic [ref=e125]: Feminine · Stable · peak 1918
- link "Adele Feminine · Stable · peak 1918" [ref=e126] [cursor=pointer]:
- /url: /name/Adele/
- strong [ref=e127]: Adele
- generic [ref=e128]: Feminine · Stable · peak 1918
- link "Selma Feminine · Stable · peak 1918" [ref=e129] [cursor=pointer]:
- /url: /name/Selma/
- strong [ref=e130]: Selma
- generic [ref=e131]: Feminine · Stable · peak 1918
- link "Nola Feminine · Stable · peak 1918" [ref=e132] [cursor=pointer]:
- /url: /name/Nola/
- strong [ref=e133]: Nola
- generic [ref=e134]: Feminine · Stable · peak 1918
- link "Roxie Feminine · Stable · peak 1918" [ref=e135] [cursor=pointer]:
- /url: /name/Roxie/
- strong [ref=e136]: Roxie
- generic [ref=e137]: Feminine · Stable · peak 1918
- generic [ref=e138]:
- button "Download share card" [ref=e139] [cursor=pointer]
- button "Share" [ref=e140] [cursor=pointer]
- button "Copy link" [ref=e141] [cursor=pointer]
- button "Find similar names" [ref=e142] [cursor=pointer]
- generic [ref=e143]:
- text: Curious about the history of Anna? Browse
- link "books about the name Anna on Amazon" [ref=e144] [cursor=pointer]:
- /url: https://www.amazon.com/s?k=history%20of%20the%20name%20Anna&tag=
- text: .
- contentinfo [ref=e145]:
- generic [ref=e146]:
- generic [ref=e147]: nobodynamed is a small data project about American first names.
- generic [ref=e148]: "Built on public-domain Social Security Administration data: about 100,000 name/sex records and 2 million yearly observations."
- generic [ref=e149]:
- link "About" [ref=e150] [cursor=pointer]:
- /url: /about.html
- text: ·
- link "SSA source" [ref=e151] [cursor=pointer]:
- /url: https://www.ssa.gov/oact/babynames/
6 changes: 0 additions & 6 deletions .travis.yml

This file was deleted.

1 change: 1 addition & 0 deletions .worktrees/workspace
Submodule workspace added at 0a7132
Loading