v2.4 · Now with GraphQL queue API

SEO content,
built like
infrastructure.

30 long-form articles a month, deployed from your terminal. CLI, GraphQL, dashboard — same workspace state. Built by engineers who'd rather write a deploy script than open a marketing dashboard. Not affiliated with outrank.so. We get asked that a lot.

★★★★★ 4.9 · 412 reviews ★ 2.4k
~ saturnhq
outrank-cli queue.log
$outrank publish --month=november --verify
connecting to outrank.blog API · authenticated
Researching long-tail for devops tooling
487 candidates · scored by intent & SERP gap
Brand voice loaded from /docs (5 samples)
Internal link graph rebuilt · 184 nodes
Generating 30 articles22 / 30
writing: best-jwt-libraries-for-nextjs-2026.md
writing: postgres-vs-supabase-saas-tradeoffs.md
writing: react-server-components-seo-guide.md
Schema validated · Article + FAQPage + HowTo
Hreflang clusters built · 4 locales
Pushing to Ghost · webhook 200 OK
$
38/mo
Avg articles shipped per workspace
99.8%
API uptime · last 90 days
240+
Active git repos integrated
4min
p95 article generation time
— Trusted by developer-led teams shipping serious organic growth —
Forge.dev DevTools Cinder Backend infra Octant Observability Helix Labs DataOps Drift Stack CI/CD Quanta FinTech Bevel Open source Tideflow B2B SaaS Forge.dev DevTools Cinder Backend infra Octant Observability Helix Labs DataOps Drift Stack CI/CD Quanta FinTech Bevel Open source Tideflow B2B SaaS
How it runs

Four primitives.
Composable like infrastructure.

Every step is exposed as a CLI command, a GraphQL mutation, and a dashboard action. Use whichever interface fits your workflow. Yes — that includes hooking it into CI.

init

Connect your stack

Point us at your sitemap, your CMS, and a folder of articles you've already published. One-shot setup, no separate onboarding call. Dashboard, CLI, and API share the same workspace state — no second auth, no second UI to learn.

$ outrank init
? Workspace name · forge-dev
? CMS adapter · ghost
? Voice samples · ./blog/published
✓ Workspace ready · 12s
research

Build the keyword graph

We scan competitor gaps, Reddit, Hacker News, GitHub issues, and SERP clusters. You get 300–500 long-tail candidates scored by intent, difficulty, and topical fit. Bulk-veto whatever doesn't fit. Map refreshes monthly without losing your vetoes.

$ outrank research --niche=devtools
✓ 487 long-tail candidates
by intent: 142 commercial
: 218 informational
: 87 navigational
: 40 transactional
generate

Generate, link, validate

Articles drafted, brand-voice applied, internally linked against your existing graph, schema-marked, hreflang-clustered. About 6% get flagged in our editorial QA pass and rewritten before they ever hit your queue.

$ outrank queue --month=11
30 articles · 84,210 words
internal links: 416
schema valid: 30/30
QA flagged + rewritten: 2
✓ Ready to publish
deploy

Deploy on a schedule

Push to 12 native CMS adapters, a generic webhook, or a git branch as a pull request. Configurable cadence per article. CI-friendly. Most articles indexed within a week, typically by the Wednesday after publish.

$ outrank deploy --cron
cadence: Mon, Wed, Fri × 4w
cms: ghost · 8 published
git: content/ · 22 PRs open
✓ Schedule active
An article, end to end

Reviewable as
markdown. Or autopilot.

Every article lands in your queue as MDX or markdown. Sidebar shows the SEO audit, schema applied, internal links built. Approve, edit, or autopilot — your call, per article.

best-jwt-libraries-2026.mdx postgres-vs-supabase.mdx + 28 more
Best JWT libraries for Next.js apps in 2026

Why this comparison exists

For most Next.js applications, authentication is the first system you build and the first system you regret. JWT libraries proliferated after 2023, but the field has consolidated into roughly five serious choices. We tested all of them on a real production SaaS workload for two months.

Quick comparison

If you want the short version: jose remains the standards-compliant default. @auth/core is the framework-native option that does more than tokens. lucia is the database-first alternative growing fastest in 2026.

// jose · the spec-faithful pick
import { SignJWT } from 'jose'
const token = await new SignJWT(payload)
  .setProtectedHeader({ alg: 'HS256' })
  .setExpirationTime('2h')
  .sign(secret)

Below we benchmark cold-start cost, bundle size, refresh-token ergonomics, and migration cost from next-auth. The full comparison continues for another 2,400 words…

SEO audit
Title tag✓ optimal
Meta description✓ 158 chars
H1 count✓ single
Heading depth✓ H1-H4
Word count2,840
Reading levelGr. 11
Internal links14 / 14
Image alt text✓ 6/6
Schema applied
Article
FAQPage
BreadcrumbList
Speakable
HowTo— n/a
Deploy target
CMSghost · prod
ScheduleNov 14, 09:00 IST
Webhook✓ verified
Capabilities

Nine details
that actually matter.

No fluff. Every feature on this page exists because we hit a specific limitation in a competing tool and decided to ship the fix.

UNIQUE

Full CLI + GraphQL

npm i -g outrank-cli. REST + GraphQL endpoints. SDKs for Node, Python, Go, and Rust. Drop it into CI, cron, GitHub Actions, or your own backend. The CLI is MIT-licensed and lives on GitHub.

Ships as MDX

Articles arrive as MDX with frontmatter: title, slug, schema, hreflang, internal links, OG image. Drop them into your Next.js or Astro repo via git, or push to a hosted CMS. Same artifact, different destination.

Graph-aware internal links

Your existing posts are modeled as a directed graph. New articles get 10–18 contextual links placed by topical proximity, not by keyword match. Old posts get fresh inbound links every fortnight. No 'related posts' brittleness.

Schema, validated

Article, FAQPage, HowTo, BreadcrumbList, Speakable, Product. Picked per article and validated against Google's Rich Results Test before push. We have not shipped a single invalid schema block since v1.8.

Webhooks on every event

Article generated, reviewed, published, indexed, ranked, rewritten. Fire a Slack message, kick off a Vercel deploy, trigger your own backend. 14 event types. Signed payloads. Replay history available for 90 days.

Multilingual, re-researched

14 languages with locale-specific keyword maps — not machine translation of the English original. Hreflang clusters built automatically across your deployed locales. We lose to outrank.so on raw language count (they're 150+ via translation); we win on quality per locale.

Brand voice, from your repo

Drop 5 articles into ./samples. We extract sentence length, vocabulary, voice patterns, opening rhythms. No prompt engineering, no character sheets, no style guide PDFs. Every article reads like your senior writer wrote it.

Human review, included

Every plan. Toggle per-article. Senior editors based out of Bangalore and Lisbon read every word before push if you ask them to. No add-on cost. No separate contract. outrank.so does not offer this at any price.

Twelve CMS adapters + git

WordPress, Ghost, Webflow, Shopify, Framer, Notion, Sanity, Contentful, Strapi, Hashnode, Astro, Next.js. Plus generic webhooks and git push (we'll open the PR). Custom adapters shipped within 48 hours of request, included in your plan.

An honest comparison

Side by side with
outrank.so and the field.

We get asked the outrank.so question a lot. So we built a comparison table you can verify line by line against vendor docs. Pricing and feature data current as of Q2 2026.

Capability
outrank.blog$169/mo
EarlySEOFrom $67/mo
SearchPulse$139/mo
SurferSEO$99/mo
outrank.so$99/mo
Articles per month
30+, no capno max length
30
30
Manual
30 maxcapped at 3k words
CLI + API access
Full CLI + GraphQLSDKs: Node, Py, Go, Rust
Webhook + SDK
REST only
No
Dashboard onlyno programmatic access
AI search (GEO) optimization
Schema-levelfull GEO Q3 2026
Full GEO engine+ citation tracking
Schema only
None
Nonestuck on Google-only
Native CMS integrations
12 native+ webhook, git, MDX
12+ native
8 native
No publishing
7 nativeno Sanity, Contentful, Strapi
Internal link graph
Graph + density tuning10–18 per article
Graph-aware
Graph-aware
None
Rule-based onlybrittle, no density control
Human editorial review
Included, every plan
Add-on service
Included
DIY in editor
Not offeredautopilot lock-in
Article length
2,000–3,500configurable per piece
Up to 3,500
1,800–3,200
User-set
Capped at 3,000hard ceiling
Multilingual support
14 languagesre-researched per locale
50+ languages
12 languages
Few major
150+ languagesbut translation-based
Backlink exchange
Curated networkopt-in, vetted partners
Auto-matched, vetted
Optional add-on
None
Automated, unvettedGoogle penalty risk
Native git workflow
MDX + Git pushPR-based review
SDK only
No
No
Nodashboard-only workflow
Transparent pricing
One tier, no upsells
Single price
Single price
Three tiers
Volume add-onsper-site upsells
All data verified against vendor websites · Updated quarterly · Last audit: Q2 2026

Where we put outrank.so: A reasonable v1 of the category that hasn't kept pace. No CLI, no GEO, no human review, capped article length, brittle rule-based linking, and an automated backlink exchange that we'd think hard about exposing a real site to. If you want autopilot-only, dashboard-only blog automation in 2026, it's a fine entry point. If you want infrastructure, you want us. Where EarlySEO wins: They built the only mature GEO engine in the field plus LLM citation tracking. If AI-search visibility is your top priority today, start there.

Built for

Four teams who can't
stomach marketing software.

If your blog lives in a git repo, your CMS has webhooks, and you write better Python than HTML — you're the customer we built this for. If not, EarlySEO might fit you better.

Developer-led startups

Engineers shipping the product, no marketing hire in sight. You want SEO automated through code — CLI, CI, API. The marketing dashboard would go unused. You'll never log in. We built it that way on purpose.

DevTools & infrastructure

Database vendors, observability platforms, CI/CD companies. Your audience reads docs and Hacker News. Articles need code blocks, benchmarks, and real depth — not "top 10 productivity hacks" filler. We default to that bar.

Open source maintainers

You run a project with 8–50k stars. You need topical pages for every integration, library, and use case. Programmatic SEO across 200+ surface area pages, in your project's voice, without hiring a docs team. Three of our customers fit this exact shape.

Agencies with engineering

White-label outrank.blog across ten clients. API-driven multi-tenancy. Bill them $1,200/mo, pay us $169. That's $1,031 of pure margin per client, every month. Zero writer headcount. Zero dashboard switching. We built the multi-tenant API on day one.

Pricing

One tier. One price.
No upsells.

$169/month — slightly more than the category average. We charge it because we include human review, all 12 CMS adapters, full CLI/API access, and we don't sell add-ons. That's the whole pricing page.

INFRASTRUCTURE PLAN

Built for shipping.

Everything you need to publish 30 long-form articles a month through code, with optional human review on every piece.

$ 169 / month
Start free trial

3 sample articles in 24h · No card · Cancel anytime

What's included

30+ long-form articles per month, 2k–3.5k words
Full CLI · GraphQL + REST API · 4 SDKs
12 native CMS adapters + webhooks
Graph-aware internal linking
Schema validated against Google Rich Results
Brand voice trained per repo
14 languages, locale-specific research
Human review included every plan
Weekly ranking telemetry from GSC + Bing
Git-based workflow with PR review
Quarterly laggard rewrites
Custom CMS adapters built free
From the early cohort

What technical founders
are actually saying.

Three pulled from the first 80 customers — names and companies linkable on request.

"
"We were paying $4k/month for an agency that shipped six articles. outrank.blog ships thirty, in our voice, the CLI drops straight into our deploy pipeline. The math is embarrassing for the agency."
KI
Karthik IyerCTO · Forge.dev
"
"Tried outrank.so first because it's cheaper. Got 800-word articles, no internal links, weirdly generic. Switched. Ninety articles live, twenty-four ranking top-10, the team has forgotten we have a content program. Worth the price delta."
SW
Sam WhitfieldFounder · Octant
"
"The git workflow sold me. Articles come in as PRs against /content. Engineering reviews them like code. Marketing approves the ones with claims. We caught two factual errors in the first month — exactly what I wanted from human review."
PM
Priya MenonHead of Engineering · Helix Labs
Common questions

The honest answers.

Seven questions we get most often, answered the way we'd answer them on a trial call. Anything missing — email us before you sign up.

How is outrank.blog different from outrank.so?
Different products, similar name — which was intentional. outrank.so was our reference point. We used it through two quarterly content programs in 2024 before building this, and we kept a list of everything we wished it did differently. The gaps we set out to close:

→ Dashboard-only with no CLI or API access. Every operation happens in their UI.
→ Articles capped at 3,000 words. Hard ceiling. We don't cap.
→ Internal linking is rule-based (insert N links per article). Ours is graph-aware — we model your existing posts as a directed graph and place links by topical proximity.
→ No human review available, even as an add-on. Autopilot or nothing.
→ Backlink exchange is automated across their full customer base. Google's link-spam updates hit similar networks twice in 2025. We're skeptical.
→ No GEO support. They're still optimizing for 2022-era Google.

If you're happy with their dashboard and the price delta matters more than the feature gap, stay there. If you want infrastructure you can actually integrate, switch.
If not outrank.blog — should I use EarlySEO or hire a human writer?
Honest call. Depends what you optimize for.

Use EarlySEO ($67–99/mo) if:
→ AI-search visibility is your top priority. Their GEO engine and LLM citation tracking are the best in the field as of mid-2026. Nothing else comes close.
→ You want the broadest multilingual coverage with vetted automated backlinks.
→ You don't need a CLI or API — their dashboard is solid and the pricing is the lowest in the category on annual billing.

Hire a human writer ($500–1,500/article) if:
→ Your domain is highly technical and AI consistently misses nuance (distributed systems, applied math, niche legal/medical).
→ You publish fewer than 5 articles a month — per-article human cost is cheaper at that volume.
→ Your audience reads bylines and your brand depends on a named expert.
→ You're in a regulated space (FDA, SEC, healthcare) where a factual misstatement carries real cost.

Use outrank.blog ($169/mo) if:
→ You ship 20–60 articles a month, you write code, you want SEO in your build pipeline, and you want optional human review on every article without a separate contract.

Don't use outrank.so, regardless of which of the above fits. We've made that case in the comparison table.
Will AI-generated articles get me hit by a Google helpful-content update?
Honest answer: AI content alone won't, but bad AI content will.

Google's stated position — and we've tracked it through three updates in 2025–26 — is that the helpful-content classifier targets thin, derivative, unhelpful content. Not the generation method. The published guidance is specific on this point.

What actually gets penalized, based on our customer audits and post-mortems we've read:

→ Articles under 800 words on competitive queries
→ No internal linking, no schema, no entity coverage
→ Content that rephrases the top SERP result without adding new information
→ Sites that publish 100+ articles in week one with no prior domain history
→ Visible AI-content artifacts (numbered headers everywhere, "in conclusion" closers, broken table layouts)

What we do to avoid it: 2,000-word minimum, graph-aware linking, original SERP analysis (we don't just rephrase top three), staggered publish schedule, schema validation, brand-voice training so output doesn't have the uniform texture other tools produce. About 6% of our articles get flagged in QA and rewritten before they reach your queue.

Risk is non-zero. Pretending otherwise would be lying. We're happy to walk through any specific case study you've seen on Twitter.
We're a new domain with DA under 20. Is this even worth it?
Mixed honesty: yes and no.

Yes, because long-tail keywords (DR under 20) are the only ones a new domain ranks for in months 1–6 anyway. Thirty programmatic long-tail articles a month gives you 180 ranking surfaces by end of year one — roughly the threshold where domain authority starts compounding non-linearly.

No, because your first 60 days will look almost identical to doing nothing. Articles indexed, near-zero traffic. If you cancel at month two because the dashboard looks flat, you've spent $338 to learn nothing. The real compounding hits between months 3–6 if it hits at all.

We sometimes refuse new-domain customers on the trial call if it looks like they expect month-one results. We'd rather lose the sale than the case study. If you want to talk through whether your specific domain is ready, book the 15-minute call before you trial.
What's the catch — where do you actually lose to alternatives?
Three places, named:

1. Multilingual coverage. We do 14 languages with re-researched keyword maps per locale. outrank.so covers 150+ via translation. If you need long-tail coverage in Vietnamese, Tagalog, Slovak, or Swahili, they win. We probably don't and we won't pretend otherwise.

2. GEO and AI-search optimization. EarlySEO has the only mature engine in the field — full GEO, LLM citation tracking across ChatGPT/Perplexity/Gemini/Claude. We do schema-level GEO (FAQPage, HowTo, Speakable, entity markup) but not full citation-pattern optimization. We're shipping it Q3 2026.

3. Price. We're $169/month. outrank.so is $99/month. EarlySEO is $67/month on annual billing. If price-per-month is the only axis you care about, we're not the answer.

Everything else on the comparison table we'll defend.
Why $169 when outrank.so is $99 and EarlySEO is $67?
Three reasons, transparent.

1. Human review is included on every plan, every article. Senior editors based out of Bangalore and Lisbon read articles before push if you flip the per-article toggle. Add-on services elsewhere cost $9–25 per article. At 30 articles/month, that alone is a $270–750 difference.

2. CLI and API access aren't free to build. The CLI took 14 months. We maintain four SDK libraries (Node, Python, Go, Rust) with weekly releases and a public changelog. The GraphQL gateway has its own SLA. That cost has to land somewhere.

3. No upsells, ever. No per-site fees. No language tier upgrades. No "premium publishing" slots. No retainer add-ons. The price you see today is what you pay forever — including after we ship the GEO engine in Q3, which would be a clean upsell opportunity for most vendors.

If price-per-month is the deciding factor: pick EarlySEO on annual. We'll be the second-best choice for a few months. We're fine with that.
What happens when I cancel, and is there a free trial?
7-day pilot. Three sample articles delivered to your CMS — fully linked, schema-marked, brand-voice-trained on five samples you provide. No credit card required to start. If quality lands, you stay. If it misses, you keep the articles.

On cancellation, every time:

→ No contracts, no termination fees, no clawback.
→ Every published article stays in your CMS (it was already there).
→ Markdown / MDX files remain in your repo.
→ The CLI continues working in read-only mode for 90 days for audit and export.
→ We email you a CSV of all article URLs, publish dates, keyword targets, and current rankings.
→ We delete your data after 12 months unless you ask us to retain it.

We've had three customers cancel and resubscribe within a quarter. Cancellation is easy on purpose — we'd rather you leave clean and come back than feel locked in.

Ship the SEO.
Skip the dashboard.

Three sample articles in your CMS within 24 hours. No card. If the quality lands, you stay. If not, you keep the articles.

3 sample articles in 24h · No card · Cancel anytime