For SaaS companies
Get on the shortlist, in Google and in ChatGPT.
Buyers shortlist software with “best X for Y”, “X vs Y” and “X alternatives”, on Google and more and more in AI answers. CitedSEO finds those searches, writes the articles, and publishes straight into your Next.js, Astro or Nuxt site.
Sign-ups open soon. You’ll get an email when your spot opens.
app/blog/[slug]/page.tsx
import { createCitedSEO } from '@citedseo/next'const cs = createCitedSEO({ siteId: process.env.CITEDSEO_SITE_ID })export const generateStaticParams = cs.generateStaticParamsexport default async function Page({ params }) { const article = await cs.getArticle((await params).slug) return <ArticleContent markdown={article.markdown} />}src/content.config.ts
import { defineCollection } from 'astro:content'import { citedseo } from '@citedseo/astro'export const collections = { articles: defineCollection({ loader: citedseo({ siteId: import.meta.env.CITEDSEO_SITE_ID }), }),};// Then getCollection('articles') in your pagesapp/routes/blog.$slug.tsx
import { fetchArticle } from '@citedseo/react-router'import { ArticleContent } from '@citedseo/react'export async function loader({ params }) { return fetchArticle({ siteId: process.env.CITEDSEO_SITE_ID, slug: params.slug })}export default function Article() { return <ArticleContent markdown={useLoaderData().markdown} />}pages/blog/[slug].vue
<script setup>import { fetchArticle, articleHead } from '@citedseo/vue'const { data: article } = await useAsyncData(() => fetchArticle({ siteId, slug: useRoute().params.slug }))useHead(articleHead(article.value))</script><template> <ArticleContent :markdown="article.markdown" /> </template>src/routes/blog/[slug]/+page.server.ts
import { fetchArticle } from '@citedseo/svelte'import { env } from '$env/dynamic/private'export async function load({ params }) { const article = await fetchArticle({ siteId: env.CITEDSEO_SITE_ID, slug: params.slug, }); return { article };}- feed.updated/blog/hubspot-alternativeslive in 1.2s
- feed.updated/blog/best-crm-for-startupslive in 0.9s
Sound familiar?
What changes when CitedSEO does the legwork.
“Our site is in Next.js. Every blog post needs an engineer.”
Paste one prompt into your coding agent and it adds the blog in a couple of minutes. From then on, articles arrive from a feed and go live without a pull request.
“Competitors own the “best X” and “X vs Y” searches.”
The queue finds the comparison and alternatives searches you’re close to winning, and writes the article for each one.
“ChatGPT shortlists our competitors, not us.”
Track which AI engines name you for the questions buyers ask, and see what the cited pages have that yours don’t.
“Posts quietly go stale.”
Every article we write is watched. One that starts losing clicks is caught early and queued for a refresh, with what we’ll change and why.
How it works
Set up once, then it runs itself.
Connect Search Console
Read-only. Your queue fills with the searches you’re closest to winning, comparisons and alternatives included.
Add the SDK
Install the package for your framework and add your site ID. Or hand the docs to your coding agent and let it wire it up.
Approve and publish
Approve in the app or Slack. A webhook tells your site to refresh, so the article is live in seconds.
Set up with AI
Your coding agent adds the blog in minutes.
The SDKs come with an llms.txt written for coding agents. Paste one prompt into Claude Code, Cursor or any agent, with your site ID, and it installs the SDK, builds the blog pages and wires up the webhook.
- Works in Next.js, Astro, React Router, Nuxt and SvelteKit.
- Pages come with SEO titles, descriptions, canonical tags and a sitemap.
- No API key to create or leak. The site ID is read-only.
Read developer.citedseo.ai/llms-full.txt. My site ID is 7f3c…a91e. Add a /blog to this Next.js app.
- Read the CitedSEO docs
- Installed @citedseo/next
- Created app/blog/page.tsx
- Created app/blog/[slug]/page.tsx with SEO tags
- Added articles to app/sitemap.ts
- Added the feed.updated webhook route
Comparisons and alternatives
Be in the answer to “X vs Y”.
Comparison questions decide shortlists. CitedSEO tracks them in Google and in AI answers, shows which pages get cited, and writes the article that covers what they cover.
- “Best”, “vs” and “alternatives” searches pulled from your Search Console.
- See which pages AI engines cite for each question.
- Articles open with a one-line verdict and a side-by-side table, the way engines like to quote them.
Tracked prompt
HubSpot vs Pipedrive for a 5-person team
Not named in any engine. Cited instead: pipedrive.com, zapier.com
- Both cited pages open with a one-line verdict
- Both include a side-by-side pricing table
- Your page covers neither
Update /blog/hubspot-vs-pipedrive
Answer-first intro, a pricing comparison table and three FAQs.
Content refresh
Articles that stay current.
SaaS moves fast and posts date quickly. When an article we wrote starts losing clicks, it lands in the queue with what we’ll change, and the chart shows what happened after it shipped.
- Decay caught from Search Console, not a calendar reminder.
- Every update shows the before and after.
- Articles served from the SDK update in place, no redeploy needed.
Average position
11.44.2
Clicks a month
9321
Fix shipped
What you get
Built for software marketing.
SDKs for your framework
Next.js, Astro, React Router, Nuxt and SvelteKit, plus a plain fetch client for anything else.
Comparison opportunities
“Best”, “vs” and “alternatives” searches you’re close to winning, ranked by the clicks they could bring.
See the featureAI visibility tracking
Which engines put you on the shortlist, and who they name instead.
See the featureContent decay
Articles losing clicks, caught early and queued for a refresh.
What is this?Approvals in Slack
Whoever owns the blog approves from Slack, seeing what will change and why. Engineering doesn’t get pinged.
Rank tracking
Clicks and positions from Search Console, with every shipped change marked.
See the feature
Pricing
Cheaper than one sprint on the blog.
One site is $99 a month with the whole product, SDKs included. Nothing locked behind a higher tier, and a 60-day money-back guarantee.
FAQ
Questions from saas companies.
The things people ask most. Anything else, just ask. A real person replies.
Still have a question?
Email us or book a quick call. Most replies land within a few hours.
Get in touchWhich frameworks are supported?
Next.js, Astro, React Router, Nuxt and SvelteKit have their own SDKs. Anything that can make a fetch request can read the feed, and WordPress sites are published to directly.
Do we need an API key?
No. Your site ID is the only key, and it can only read your published articles, so it’s safe to ship to the edge.
How fast does a new article go live?
A signed webhook fires on every publish, so your site can refresh or redeploy in seconds instead of waiting for a cache to expire.
What about posts already in our codebase?
They’re read, so new articles link to them and never repeat them, and you see how they rank. They’re never edited. Articles CitedSEO writes are served through the SDK, so their updates publish themselves.
Will it write comparison pages about competitors?
It writes comparison and alternatives articles for your blog, built from what ranks and what AI engines cite. You review every one before it ships.
More solutions for your team
Your next page-one ranking is already in your data.
Connect Search Console, pick your first fixes, and watch the first one ship tonight.
Sign-ups open soon. You’ll get an email when your spot opens.