From f9512327f3dc69242bece7a538c36135be5f18c1 Mon Sep 17 00:00:00 2001 From: Ryan Baumann Date: Sun, 12 Jul 2026 19:18:12 +0000 Subject: [PATCH] Keep portfolio nav visible and sync social links --- CHANGELOG.md | 13 ++++ LEARNINGS.md | 7 +++ TODO.md | 8 +++ portfolio/build.mjs | 51 ++++++++++++++- portfolio/content/pages/about.md | 6 +- portfolio/content/site.json | 35 ++++++++--- portfolio/static/img/ryan-baumann-profile.svg | 8 +++ portfolio/style.css | 62 ++++++++++++++++++- 8 files changed, 174 insertions(+), 16 deletions(-) create mode 100644 TODO.md create mode 100644 portfolio/static/img/ryan-baumann-profile.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index ae1453c..46c0f83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. +## 2026-07-12: Sticky nav, profile/social sync + +- Made the portfolio nav sticky and horizontally resilient on small screens so the site sections stay available while scrolling. +- Added LinkedIn, X, and Substack as explicit social/content sources in homepage chips, footer links, and Person JSON-LD `sameAs`. +- Added a local profile image slot with dimensions and alt text so Ryan's LinkedIn headshot can be dropped in without layout shift; the current checked-in asset is an honest placeholder because LinkedIn image fetches are blocked in this environment. + +## 2026-07-12: Copy, trust, and answer-engine pass + +- Tightened homepage, about, writing, and demos copy so claims point back to visible work, live demos, decks, or durable career facts. +- Added homepage proof points for Google Maps Platform reach, Mapbox growth-stage work, and Caterpillar patents. +- Improved answer-engine structured data with a ProfilePage summary and Person knowsAbout topics for maps, developer experience, MCP, agent skills, evals, and AI-native tools. +- Kept the portfolio performance posture intact: no new client-side JavaScript, no new dependencies, and no fabricated visuals. + ## 2026-07-12: UI/UX + copy refresh, CI hang fix, agentic loop - Fixed Cloud Run auto-deployment workflow (skipped status) by correcting the repository filter in `.github/workflows/deploy.yml` to check for `ryanbaumann/Portfolio` instead of the legacy `ryanbaumann/trails.ninja` repository. diff --git a/LEARNINGS.md b/LEARNINGS.md index d12ccbc..8e93ffd 100644 --- a/LEARNINGS.md +++ b/LEARNINGS.md @@ -1,5 +1,12 @@ # Learnings +## 2026-07-12: AEO works best when the page and schema say the same thing + +Context: A repo-wide copy pass needed to improve search and answer-engine clarity without adding vague keyword stuffing. +Learning: For a personal portfolio, the strongest answer-engine optimization is a tight visible summary plus matching structured data. The homepage should say who Ryan is, what he works on, and what proof exists; JSON-LD should reinforce that same claim with `ProfilePage`, `Person`, and concrete `knowsAbout` topics. +Evidence: Today's pass added visible proof points in `site.json` and rendered them on the homepage, then aligned `ProfilePage` and `Person` JSON-LD around the same answer-engine summary instead of adding hidden claims. +Use next time: Do not hide AEO in metadata only. Put the answer on the page first, keep it verifiable, then mirror it in schema. + ## 2026-07-11 — Vite environment variables overriding dynamic behavior Context: We were trying to configure the Strava OAuth app to use a dynamic redirect URI `new URL(..., window.location.origin).href` so that it would work seamlessly on both `localhost:8080` and the production domain `ryanbaumann-portfolio.com`. diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..203b825 --- /dev/null +++ b/TODO.md @@ -0,0 +1,8 @@ +# Repo copy and trust pass TODO + +- [x] Review portfolio copy for Ryan's direct voice, clear claims, and verifiable proof. +- [x] Tighten site metadata for search, answer engines, and accurate summaries. +- [x] Prefer show-don't-tell artifacts over vague claims where the site already has proof. +- [x] Keep security posture explicit: no secrets in browser copy, server-side proxy language where relevant. +- [x] Preserve performance defaults: zero-dependency portfolio, no client JavaScript, no decorative assets. +- [x] Run a narrow portfolio build and update CHANGELOG / LEARNINGS if the pass changes user-visible behavior. diff --git a/portfolio/build.mjs b/portfolio/build.mjs index 88d5609..4f65808 100644 --- a/portfolio/build.mjs +++ b/portfolio/build.mjs @@ -376,6 +376,7 @@ ${articleTags ? articleTags + '\n' : ''}Skip to content