# SEO for SaaS > SEO for SaaS researches, writes, and cites SEO articles for SaaS products and delivers them to your site as typed JSON blocks over a read-only API, with a webhook when an article changes. Every page below is Markdown. The example article (one of every block type) needs no key: https://api.seoforsaas.dev/public/v1/fixtures/article ยท block schema: https://api.seoforsaas.dev/public/v1/schema/blocks.json ## Get started - [SEO for SaaS docs](https://docs.seoforsaas.dev/docs/index.md): How published articles reach your site, and how to render them with your own design. - [Quickstart](https://docs.seoforsaas.dev/docs/quickstart.md): Read your articles from the API in any language. ## Guides - [Next.js (App Router)](https://docs.seoforsaas.dev/docs/guides/nextjs.md): A blog under /blog with static pages, full SEO metadata, a sitemap, and a refresh on publish. - [Astro](https://docs.seoforsaas.dev/docs/guides/astro.md): A static blog under /blog, rendered by the SEO for SaaS React components at build time, rebuilt by your host's deploy hook. - [Other frameworks](https://docs.seoforsaas.dev/docs/guides/other-frameworks.md): SvelteKit, Nuxt, Remix, Express, Rails, Django: the same steps in any stack. - [Static sites](https://docs.seoforsaas.dev/docs/guides/static-sites.md): Rebuild a static site on every publish by pointing the webhook at your host's deploy hook. ## AI snippets - [AI snippets](https://docs.seoforsaas.dev/docs/ai-snippets.md): One prompt for your coding agent that adds the blog with tested code, follows the integration rules, and checks its own work. - [Next.js AI snippet](https://docs.seoforsaas.dev/docs/ai-snippets/nextjs.md): Adds /blog to a Next.js App Router project: pages, SEO metadata, sitemap, webhook refresh. - [Astro AI snippet](https://docs.seoforsaas.dev/docs/ai-snippets/astro.md): Adds a static /blog to an Astro site: pages, SEO tags, sitemap, deploy-hook rebuilds. - [AI snippet for any other stack](https://docs.seoforsaas.dev/docs/ai-snippets/any.md): SvelteKit, Nuxt, Remix, Express, Rails, Django: the same steps in the project's idiom. - [Agent rules](https://docs.seoforsaas.dev/docs/ai-snippets/rules.md): Standing rules for CLAUDE.md, .cursor/rules or Copilot instructions. ## Components - [React components](https://docs.seoforsaas.dev/docs/components.md): Render every block type with components you own, restyle any of them, and never break on a new one. - [Heading](https://docs.seoforsaas.dev/docs/components/heading.md): A section heading, level 2 to 4. The article title is not a block: render it as the page's h1. - [Paragraph](https://docs.seoforsaas.dev/docs/components/paragraph.md): Body text as rich text runs: bold, italic, inline code and links. - [List](https://docs.seoforsaas.dev/docs/components/list.md): An ordered or unordered list; each item is rich text. - [Quote](https://docs.seoforsaas.dev/docs/components/quote.md): A quotation with an optional attribution. - [Code](https://docs.seoforsaas.dev/docs/components/code.md): Preformatted code with an optional language. - [Image](https://docs.seoforsaas.dev/docs/components/image.md): An in-article image hosted on the SEO for SaaS CDN, with alt text and an optional caption. - [Callout](https://docs.seoforsaas.dev/docs/components/callout.md): A highlighted aside: info, tip or warning. - [Call to action](https://docs.seoforsaas.dev/docs/components/cta.md): A call to action for your product, usually the last block, with a link into your site. - [FAQ](https://docs.seoforsaas.dev/docs/components/faq.md): Questions and answers, rendered as native details elements. - [Table](https://docs.seoforsaas.dev/docs/components/table.md): A table with a header row and plain-text cells. - [Video](https://docs.seoforsaas.dev/docs/components/video.md): A YouTube video taken from the search results for the topic. ## API reference - [Authentication](https://docs.seoforsaas.dev/docs/api/authentication.md): Content keys, the project ID, and where to find both. - [List articles](https://docs.seoforsaas.dev/docs/api/list.md): GET /content: published articles, newest first, paginated. - [Get an article](https://docs.seoforsaas.dev/docs/api/get.md): GET /content/by-slug/{slug}: one published article with its related links. - [Sitemap](https://docs.seoforsaas.dev/docs/api/sitemap.md): GET /content/sitemap: every published article as a ready sitemap entry, with a lastmod date Google can rely on. - [TypeScript client](https://docs.seoforsaas.dev/docs/api/client.md): One dependency-free file: list, paginate, read by slug, typed errors. Runs anywhere fetch does. - [The article object](https://docs.seoforsaas.dev/docs/api/article.md): Every field of an article, as the API returns it. - [Blocks](https://docs.seoforsaas.dev/docs/api/blocks.md): The block types, rich text, and the JSON Schema. - [SEO metadata](https://docs.seoforsaas.dev/docs/api/seo.md): article.seo: everything the head of an article page needs, precomputed. - [Webhooks](https://docs.seoforsaas.dev/docs/api/webhooks.md): A signed POST when an article is published, changed, or unpublished, and how to verify it. - [Errors and limits](https://docs.seoforsaas.dev/docs/api/errors.md): Status codes, the error body, and rate limits. - [Example article and schema](https://docs.seoforsaas.dev/docs/api/example.md): One of every block type in the exact shape of a single read, and the block JSON Schema. No key needed. ## AI snippet prompts - [Any other stack](https://seoforsaas.dev/snippets/any.md): SvelteKit, Nuxt, Remix, Express, Rails, Django: the same integration, in the project's own idiom. - [Astro](https://seoforsaas.dev/snippets/astro.md): A static /blog rendered at build time by the SEO for SaaS React components, with SEO tags, a sitemap, and deploy-hook rebuilds. - [Next.js (App Router)](https://seoforsaas.dev/snippets/nextjs.md): /blog and /blog/[slug] with full SEO metadata, a sitemap, and a refresh on the next visit when an article is published or changes. - [Agent rules](https://seoforsaas.dev/snippets/rules.md): Standing rules for CLAUDE.md, .cursor/rules or Copilot, so later edits keep the blog's contract.