{"repo":"iannuttall/seo-graph","free":true,"listed":false,"github":"https://github.com/iannuttall/seo-graph","clone":"git clone https://github.com/iannuttall/seo-graph.git","description":"Agent-ready SEO for JavaScript — schema.org JSON-LD graph builders, deterministic agent markdown with content negotiation, and an Astro integration.","language":"TypeScript","stars":20,"topics":["agent-ready","ai-agents","astro","astro-integration","cloudflare-workers","content-negotiation","indexnow","json-ld","llms-txt","markdown"],"license":"MIT","category":"ai-agents","readme_excerpt":"seo-graph Agent-ready SEO for JavaScript: schema.org JSON-LD graph builders, a deterministic agent-markdown pipeline, and HTTP content negotiation — with an Astro integration. Sites are read by two audiences now. This toolkit serves both from one place: typed schema.org @graph output for structured-data consumers, and byte-stable Markdown representations of every page (with llms.txt , a route manifest, IndexNow, and Accept: text/markdown negotiation) for AI agents. Package Purpose --- --- @iannuttall/seo-graph-core Pure, runtime-agnostic core. Schema piece builders and graph assembler (typed by schema-dts ), the built-HTML → Markdown renderer with a strict content-selection contract, MDX cleaning, route mapping, manifests, validated llms.txt v2 output, git-based lastmod, and IndexNow hashing. @iannuttall/seo-graph-astro Astro layer. agentMarkdown() build integration, opt-in generic content negotiation, Markdown response and collection helpers, schema endpoints + schema map, IndexNow key route, RFC 9727 api-catalog, Zod content helpers, and a static-asset Cloudflare handler ( ./cloudflare ). Why not convert HTML at the edge? Managed edge HTML→Markdown conversion has no exclusion contract: decorative markup, aria-hidden card internals, and form labels leak into what agents read, and you cannot fix it from your codebase. This pipeline runs at build time against markup you own — decorative elements are stripped by contract ( data-agent-markdown=\"exclude\" , aria-hidden , forms, na","default_branch":null,"files":null,"tree":[],"storefront":"/r/iannuttall","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/iannuttall/seo-graph/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}