feat: redesign hub with Astro + 'Lab' design system, SEO/GEO
Replace the single static index.html with an Astro site that reuses the
beta.jmrp.io 'Lab / Engineering' design system (dark-first, amber + teal,
Space Grotesk / IBM Plex Sans / IBM Plex Mono, terminal-prompt logo, ambient
grid, hairline surfaces, mono kickers, status pills).
- jmrp.io is surfaced as the primary destination throughout (nav, hero lead,
primary CTA, preference banner, footer) while still listing each repo's docs.
- Data-driven: src/data/site.ts is the single source for identity + projects,
feeding the page, JSON-LD @graph, and llms.txt.
- SEO/GEO: canonical, OG/Twitter with a generated 1200x630 image, JSON-LD
@graph (Person -> jmrp.io, WebSite, ProfilePage, ItemList of SoftwareSourceCode),
Bing verification meta at host root, self-hosted fonts (CSP-friendly),
theme-color per scheme, favicon/apple-touch-icon/manifest, llms.txt.
- Static assets (robots.txt, sitemap.xml with the two doc sites, IndexNow key)
move to public/ and ship at the domain root unchanged.
- Deploy via GitHub Actions (Pages build type switched to 'workflow'); the
workflow also pings IndexNow for the hub + doc URLs.
- Accessibility: AA light theme, :focus-visible, prefers-reduced-motion,
skip-link, real <button>/<a> controls.
Claude-Session: https://claude.ai/code/session_01PuVd2s3rFHhCb1HSz5vACK
feat: redesign hub with Astro + 'Lab' design system, SEO/GEO
Replace the single static index.html with an Astro site that reuses the
beta.jmrp.io 'Lab / Engineering' design system (dark-first, amber + teal,
Space Grotesk / IBM Plex Sans / IBM Plex Mono, terminal-prompt logo, ambient
grid, hairline surfaces, mono kickers, status pills).
- jmrp.io is surfaced as the primary destination throughout (nav, hero lead,
primary CTA, preference banner, footer) while still listing each repo's docs.
- Data-driven: src/data/site.ts is the single source for identity + projects,
feeding the page, JSON-LD @graph, and llms.txt.
- SEO/GEO: canonical, OG/Twitter with a generated 1200x630 image, JSON-LD
@graph (Person -> jmrp.io, WebSite, ProfilePage, ItemList of SoftwareSourceCode),
Bing verification meta at host root, self-hosted fonts (CSP-friendly),
theme-color per scheme, favicon/apple-touch-icon/manifest, llms.txt.
- Static assets (robots.txt, sitemap.xml with the two doc sites, IndexNow key)
move to public/ and ship at the domain root unchanged.
- Deploy via GitHub Actions (Pages build type switched to 'workflow'); the
workflow also pings IndexNow for the hub + doc URLs.
- Accessibility: AA light theme, :focus-visible, prefers-reduced-motion,
skip-link, real <button>/<a> controls.
Claude-Session: https://claude.ai/code/session_01PuVd2s3rFHhCb1HSz5vACK
feat: redesign hub with Astro + 'Lab' design system, SEO/GEO
Replace the single static index.html with an Astro site that reuses the
beta.jmrp.io 'Lab / Engineering' design system (dark-first, amber + teal,
Space Grotesk / IBM Plex Sans / IBM Plex Mono, terminal-prompt logo, ambient
grid, hairline surfaces, mono kickers, status pills).
- jmrp.io is surfaced as the primary destination throughout (nav, hero lead,
primary CTA, preference banner, footer) while still listing each repo's docs.
- Data-driven: src/data/site.ts is the single source for identity + projects,
feeding the page, JSON-LD @graph, and llms.txt.
- SEO/GEO: canonical, OG/Twitter with a generated 1200x630 image, JSON-LD
@graph (Person -> jmrp.io, WebSite, ProfilePage, ItemList of SoftwareSourceCode),
Bing verification meta at host root, self-hosted fonts (CSP-friendly),
theme-color per scheme, favicon/apple-touch-icon/manifest, llms.txt.
- Static assets (robots.txt, sitemap.xml with the two doc sites, IndexNow key)
move to public/ and ship at the domain root unchanged.
- Deploy via GitHub Actions (Pages build type switched to 'workflow'); the
workflow also pings IndexNow for the hub + doc URLs.
- Accessibility: AA light theme, :focus-visible, prefers-reduced-motion,
skip-link, real <button>/<a> controls.
Claude-Session: https://claude.ai/code/session_01PuVd2s3rFHhCb1HSz5vACK
feat(geo): apply multi-agent GEO/SEO audit findings
Synthesised from a 5-agent GEO audit (composite ~67 baseline). All additions
use verified facts mirrored from the canonical Person node at jmrp.io.
Structured data (Base.astro):
- Person: add jobTitle (R&D Engineer), description, knowsAbout, and the full
verified sameAs (GitHub, LinkedIn, Mastodon, Matrix, Keyoxide, Scholar,
ORCID, ResearchGate, MathWorks); canonical name aligned with jmrp.io for
cross-site @id entity merging.
- SoftwareSourceCode: add license (MIT), keywords, runtimePlatform,
operatingSystem, applicationCategory, dateModified, and sameAs. GitLab MCP
Server now links Wikidata Q140389426 (sameAs + identifier PropertyValue) —
completing the reciprocal knowledge-graph link.
- Add FAQPage (3 citable Q&A), ProfilePage/WebSite dateModified, and speakable.
Freshness:
- Replace the static sitemap with a build-time endpoint that emits <lastmod>
for the hub + both doc sites on every deploy.
- Visible 'Updated <Mon YYYY>' line in the footer.
Content/citability:
- Hero: one-line author descriptor (answers 'who is he'); .intro class for
speakable; 'Written in Go.' on the RouterOS card for self-contained language.
- Visible FAQ section mirroring the FAQPage.
Discovery/technical:
- llms.txt: inline Wikidata + new ## Optional section (Wikidata/LinkedIn/
Scholar/ORCID/Mastodon).
- robots.txt: Content-Signal (ai-train/search/ai-retrieval=yes) + more AI bots.
- Preload the LCP display font; per-scheme theme-color without JS; trim meta
description to ~155 chars.
Claude-Session: https://claude.ai/code/session_01PuVd2s3rFHhCb1HSz5vACK
feat: redesign hub with Astro + 'Lab' design system, SEO/GEO
Replace the single static index.html with an Astro site that reuses the
beta.jmrp.io 'Lab / Engineering' design system (dark-first, amber + teal,
Space Grotesk / IBM Plex Sans / IBM Plex Mono, terminal-prompt logo, ambient
grid, hairline surfaces, mono kickers, status pills).
- jmrp.io is surfaced as the primary destination throughout (nav, hero lead,
primary CTA, preference banner, footer) while still listing each repo's docs.
- Data-driven: src/data/site.ts is the single source for identity + projects,
feeding the page, JSON-LD @graph, and llms.txt.
- SEO/GEO: canonical, OG/Twitter with a generated 1200x630 image, JSON-LD
@graph (Person -> jmrp.io, WebSite, ProfilePage, ItemList of SoftwareSourceCode),
Bing verification meta at host root, self-hosted fonts (CSP-friendly),
theme-color per scheme, favicon/apple-touch-icon/manifest, llms.txt.
- Static assets (robots.txt, sitemap.xml with the two doc sites, IndexNow key)
move to public/ and ship at the domain root unchanged.
- Deploy via GitHub Actions (Pages build type switched to 'workflow'); the
workflow also pings IndexNow for the hub + doc URLs.
- Accessibility: AA light theme, :focus-visible, prefers-reduced-motion,
skip-link, real <button>/<a> controls.
Claude-Session: https://claude.ai/code/session_01PuVd2s3rFHhCb1HSz5vACK