Skip to content

feat(site): landing page polish, blog, SEO, and accessibility#1

Merged
g3ortega merged 4 commits intomainfrom
landing_page
Feb 24, 2026
Merged

feat(site): landing page polish, blog, SEO, and accessibility#1
g3ortega merged 4 commits intomainfrom
landing_page

Conversation

@g3ortega
Copy link
Owner

Summary

  • Carousel redesign: infinite loop with trackpad horizontal scrolling, touch drag with velocity-based momentum, and responsive card count
  • Remote access docs split: monolithic 488-line page split into 8 focused sub-pages (SSH, Tailscale, ngrok, Cloudflare Tunnel, Cloudflare Zero Trust, Nginx, Caddy, overview)
  • SEO & LLM optimization: robots.txt with AI crawler directives, llms.txt + llms-full.txt, JSON-LD schemas (SoftwareApplication, FAQPage, BreadcrumbList, HowTo), OG image dimensions, sitemap priority/lastmod
  • Blog launch: dynamic route, first post "Introducing CodePiper", index with post listing replacing "coming soon" placeholder
  • Accessibility: skip-to-main link, mobile menu focus trap/Escape/aria-expanded, carousel aria-live region, copy button screen reader feedback, external link new-tab hints, SVG role/aria-label descriptions, decorative element marking
  • Cleanup: delete orphaned ProblemSection.astro, add site/docs/blog contribution guide to CLAUDE.md

Test plan

  • bun run lint passes
  • bun run check:site — 0 errors
  • bun run build:site — builds 34 pages
  • bun test — 1472 tests pass
  • Blog index lists the "Introducing CodePiper" post
  • Blog post renders at /codepiper/blog/introducing-codepiper/
  • Quick-start page HTML includes HowTo JSON-LD
  • Sitemap XML includes <priority> and <lastmod> entries
  • Skip-to-main link visible on Tab focus
  • Mobile menu traps focus and closes on Escape
  • Carousel announces slide changes to screen readers

- Move carousel arrows to external flexbox columns (outside card area)
- Remove ProblemSection from landing page (low value)
- Force dark-only theme: single Expressive Code theme, remove light switcher
- Split monolithic remote-access guide into 8 individual docs pages
- Add new Tailscale remote access guide
- Update sidebar with dedicated Remote Access section
- Add clone cards at both ends for seamless infinite looping
- Silent position reset after wrap transitions (no visible jump)
- Trackpad horizontal scroll via wheel event with delta accumulation
- Touch drag with real-time finger tracking, direction lock, and
  velocity-based momentum flick detection
- Add robots.txt with explicit AI crawler directives (GPTBot, ClaudeBot, PerplexityBot)
- Add llms.txt and llms-full.txt for LLM discoverability
- Add JSON-LD structured data: SoftwareApplication + FAQPage on landing, BreadcrumbList on docs
- Create reusable StructuredData.astro component
- Fix heading hierarchy: blog index h2 → h1, NavBar logo alt text
- Add og:image:width/height meta tags for reliable social unfurling
…enhancement

- Blog: dynamic route, first post "Introducing CodePiper", index with post listing
- Accessibility: skip-to-main link, mobile menu focus trap/Escape/aria-expanded,
  carousel aria-live, copy button SR feedback, external link hints, SVG descriptions
- HowTo JSON-LD on quick-start docs page (conditional in DocsLayout)
- Sitemap serialize with priority and lastmod
- Delete orphaned ProblemSection.astro
- Add site/docs/blog contribution guide to CLAUDE.md
@g3ortega g3ortega self-assigned this Feb 24, 2026
@g3ortega g3ortega merged commit 9ae244b into main Feb 24, 2026
5 checks passed
@g3ortega g3ortega deleted the landing_page branch February 24, 2026 00:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant