Product
An engine, not a dashboard.
seo0 is a TypeScript runtime that boots a Fastify API, a fleet of BullMQ workers, a Postgres-backed state store, and a Next.js control plane. It dispatches autonomous agents that crawl, audit, draft, score, and publish — continuously, on infrastructure you control.
How it runs
From clone to autonomous in under ten minutes.
- 01
Clone the repo. Boot the engine.
One command brings up Postgres, Redis, the Fastify API, BullMQ workers, and the Next.js control plane. Bring your own LLM keys (Anthropic, OpenAI, or local). Runs anywhere Docker runs.
- 02
Connect a property and a CMS plugin.
Add a domain, install a typed plugin (WordPress, Next.js, generic), authorize Google Search Console, GA4, and Google Business Profile. The crawler indexes the site within minutes.
- 03
Agents run on schedule, forever.
The orchestrator dispatches jobs to specialist agents — technical, content, schema, GEO, llms.txt, rank-tracker, competitor, auditor. Audits run nightly, drafts queue up, /llms.txt stays current, reports roll up weekly. You watch from the control plane or read events on the bus.
What it does
A real engine, not a dashboard wrapper.
- agents
Autonomous agents
15 specialist agents — crawler, technical, content-writer, schema, geo, llms-txt, rank-tracker, competitor, entity, auditor, reporter, keyword, backlink, local-seo, orchestrator. Composable per job, planned by the orchestrator.
- skills
Skills as data
Every capability is a SKILL.md file with YAML frontmatter — Claude Agent Skills spec. Loaded dynamically, swappable, hot-reloadable. No rebuild to add new behavior.
- geo
GEO + AI-search
First-class answer-engine optimization. Score every page for citability. Auto-generate and maintain /llms.txt and its .md mirror. Track rank in Perplexity, ChatGPT, Gemini, and Google AI Overviews alongside classic SERP.
- plugins
Typed CMS plugins
WordPress, Next.js, generic webhook, GA4, GSC, GBP. Push fixes back into your stack — schema, meta, internal links, content drafts. Zod-validated boundaries. No vendor lock-in. Shopify-agnostic by design.
- runtime
24/7 runtime
BullMQ repeatable jobs on your VPS. Postgres + Drizzle for state. Redis for queues. Prometheus metrics on every slow path. Event bus between modules so nothing is hard-wired.
- stack
Real engineering
TypeScript end-to-end. ESM modules. Vercel AI SDK. Playwright crawler. Fastify API. Drizzle ORM. Next.js 15 control plane. Zod at every boundary. Read the source, fork it, run it.
Inside the engine
15 agents. 17 modules. One repo you can read.
Every agent is a TypeScript module with declared inputs, declared tools, and a swap-in skill set. Every module emits typed events on the bus. Nothing is hidden behind a managed API.
Agents
crawler-agentPlaywright crawls. Decides what to fetch next.keyword-agentExpand seeds. Cluster by intent. De-dupe.content-writer-agentSEO + GEO dual-optimized drafts.entity-agentCanonical entity profile + sameAs graph.geo-agentAI-citability audit + LLM-friendly rewrites.llms-txt-agentGenerate and maintain /llms.txt + .md mirror.technical-agentCore Web Vitals. Crawlability. Indexability.schema-agentJSON-LD generation from page content.rank-agentSERP + AI-engine rank tracking.competitor-agentForensic competitive analysis.report-agentExec-readable rollups across the site.auditor-agentProtocol-layer quality gate.backlink-agentLink prospecting + outreach drafts.local-seo-agentGBP, NAP, citations, local pack.orchestrator-agentPlans multi-step jobs. Picks sub-agents.