Skip to content

feat: AI-agent landing section + SEO blog#328

Merged
QSchlegel merged 1 commit into
preprodfrom
claude/ai-agent-landing-seo-blog
Jun 29, 2026
Merged

feat: AI-agent landing section + SEO blog#328
QSchlegel merged 1 commit into
preprodfrom
claude/ai-agent-landing-seo-blog

Conversation

@QSchlegel

Copy link
Copy Markdown
Collaborator

Summary

Two related additions to the public site, behind one push.

1. "Connect your AI agent" landing section

A new section at the top of the homepage promoting the downloadable multisig skill:

  • Prominent Download skill button + link to the developer/bot docs.
  • An animated typing prompt cycling example agent prompts (e.g. "Connect to my https://multisig.meshjs.dev/ wallet").
  • Copy makes the trust model explicit: the agent reads and drafts but never signs — keys and signatures stay with you and your co-signers (a "Read & draft only" caption + a non-signing prompt).
  • New reusable Typewriter component (SSR-safe, honors prefers-reduced-motion).

2. SEO blog at /blog

Markdown-based blog with two starter posts:

  • Connect an AI agent to your Cardano multisig
  • What is Cardano multisig? A guide to M-of-N treasuries

Wired into the existing SEO surface (src/lib/seo.ts):

  • Per-post server-rendered <head>: each post supplies a resolved seo via pageProps, which _app.tsx renders outside the ssr:false boundary → real per-post <title>, description, canonical, og:type=article, and Article JSON-LD. (Metatags gained image / type / extraJsonLd.)
  • Posts enumerated in /sitemap.xml with <lastmod>; /blog added to INDEXABLE_ROUTES.
  • "Blog" added to the footer + public routes.
  • Content lives in src/content/blog/*.md, read by a server-only data layer (src/lib/blog.ts) with a tiny front-matter parser — no new dependencies (react-markdown / remark-gfm were already present).

Verification

  • tsc --noEmit clean (the pre-existing, unrelated governance.ts Prisma errors aside).
  • Production build (next build --webpack) succeeds; /blog and /blog/[slug] compile.
  • Ran next start and confirmed: /blog → 200, both posts → 200 with correct per-post SSR'd titles + og:type=article + canonical, unknown slug → 404, sitemap lists both posts, no server errors.

Notes

  • Blog article bodies render client-side (consistent with the rest of the app, which sits inside MeshProviderNoSSR / ssr:false); the SEO-critical <head> is server-rendered. Full body SSR would need a provider-boundary change — happy to do that as a follow-up if wanted.
  • The Claude Code preview config (.claude/launch.json) was intentionally not included.

🤖 Generated with Claude Code

Landing: new "Connect your AI agent" section at the top of the homepage with the downloadable skill, an animated typing prompt, and copy that makes clear the agent reads/drafts but never signs — keys and signatures stay with the co-signers.

Blog: markdown-based SEO blog at /blog with two starter posts (AI-agent skill, Cardano multisig basics). Per-post <head> is server-rendered (title, canonical, og:type=article, Article JSON-LD) by returning a resolved seo via pageProps, which _app renders outside the ssr:false boundary; posts are listed in the sitemap with lastmod.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
multisig Ready Ready Preview, Comment Jun 29, 2026 1:23pm

Request Review

@QSchlegel
QSchlegel merged commit f42bacb into preprod Jun 29, 2026
7 checks passed
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