AI News HubLIVE
In-site rewrite3 min read

AgentBlog – open-source, AI-native SEO blog

Install a blog that ranks and gets cited One command installs a complete, SEO optimized blog into your Next.js site. 100% Free & Open Source. $npx agentblog@latest init Installs the blog into your Next.js app, then veri…

SourceHacker News AIAuthor: goldkey

Install a blog that ranks and gets cited One command installs a complete, SEO optimized blog into your Next.js site. 100% Free & Open Source. $npx agentblog@latest init Installs the blog into your Next.js app, then verifies it. $/plugin marketplace add goldk3y/agentblog Installs the six skills into Claude Code, with no app changes. DocumentationSee it runningStar on GitHub2 stars AI crawlers do not run JavaScript GPTBot, ClaudeBot, and PerplexityBot fetch your HTML once and read it as text. Whatever is missing from that first response is missing from the answer they write. curl -sA "GPTBot" https://example.com/blog/do-ai-crawlers-run-js # 412 bytes. No title, no description, no article. A client-rendered blog. The article exists, but only after a bundle runs. curl -sA "GPTBot" https://agentblog.dev/blog/how-ai-search-engines-read-your-blog Do AI crawlers run JavaScript? | AgentBlog {"@context": "https://schema.org","@graph":[{"@type":"BlogPosting",… Do AI crawlers run JavaScript? No. Vercel and MERJ instrumented AI crawler traffic across Vercel’s network over a month and reported that none of the major AI crawlers render JavaScript. Which crawlers render? Googlebot renders. Bingbot renders on a delay.… # 41 KB. The whole article, in one response. The same post on AgentBlog. Everything a crawler needs, in one response. Representative output, abridged for width. The right-hand command is real. One command installs the whole blog 76 files, and you own every one of them. No runtime package to depend on, and nothing of ours to upgrade around. your-app/76 files opengraph-image.tsx page.tsx layout.tsx opengraph-image.tsx page.tsx not-found.tsx robots.ts sitemap.ts authors.json categories.json use-toc-active-heading.ts ai-referrers.ts config.ts define-config.ts indexnow.ts metadata.ts og-card.tsx posts.ts preflight-checks.ts preflight.ts reading-time.ts render-mdx.tsx schema.ts schemas.ts toc.ts types.ts agentblog.css agentblog.config.ts AGENTS.agentblog.md app/blog/[slug]/page.tsx import type { Metadata } from 'next' import Image from 'next/image' import { notFound } from 'next/navigation' import { AnswerCapsule } from '@/components/blog/answer-capsule' import { AuthorBio } from '@/components/blog/author-bio' import { Breadcrumbs } from '@/components/blog/breadcrumbs' import { Byline, PostDates } from '@/components/blog/byline' import { JsonLd } from '@/components/blog/json-ld' import { Faq, FAQ_HEADING } from '@/components/mdx/faq' import { Prose } from '@/components/blog/prose' import { RelatedPosts } from '@/components/blog/related-posts' import { ShareButtons } from '@/components/blog/share-buttons' import { TableOfContents } from '@/components/blog/table-of-contents' import { CLUSTER_GAP, Open any file to read the source it installs. Each preview is the first sixteen lines after the file header, and the whole file arrives with the install. Already on shadcn? npx shadcn@latest add @agentblog/blog installs the same files, and npx agentblog@latest doctor --fix finishes the config a registry cannot reach. Your coding agent writes the posts Posts are MDX files in your repository. Installing AgentBlog also adds six skills and a rule block your agent reads, so it knows the format before you ask. .claude/skills/ agentblog-setup Finishes whatever the registry could not do on its own, then replaces the seed author, categories, and posts with yours, so the blog is about your subject and not ours. plan-blog-content Decides what the site should be known for, mines the questions people actually search, and writes a backlog with the internal link direction already settled. write-blog-post Writes to the format: answer capsule first, question headings, a cited statistic, comparison data in a table. It is instructed never to invent a figure or a quotation. refresh-blog-post Re-fetches every source a post cites, checks it still says what the post says it says, and applies the smallest correct change. Nothing needed changing is a valid outcome. agentblog-audit Fetches your deployed URL as GPTBot, checks the title landed in head, and validates the graph before you publish. publish-blog-post Revalidates the post, the index, the sitemap, and the feed, submits to IndexNow, and reports the response code. A 403 and a 200 look identical until somebody reads the number. Everything a blog needs to get found Prerendering, structured data, feeds, and crawler wiring are built in. You write the posts. Prerendered HTML Every post is complete static HTML at build time. Nothing is deferred, and nothing mounts on interaction. Connected JSON-LD One graph per page. BlogPosting, Person, Organization, WebSite, and FAQPage, joined by @id instead of restated. Sitemap, Feed, IndexNow Dates come from your content, not from the deploy. Publishing pushes changed URLs to Bing, Yandex, Seznam, and Naver. Answer Capsules A direct answer under every heading, with no links inside it. That paragraph is the chunk a retrieval system lifts. Your Design System The blog reads your shadcn tokens and composes your primitives. It installs no theme, no base, and no font. Doctor Fetches your deployed URL as five different bots and names what is missing. Run it from CI. Install it in one command. Get started $npx agentblog@latest init