What Kind of SEO Problems Does OpenSEO Solve? A Technical Deep Dive
OpenSEO solves end-to-end SEO workflows—including keyword discovery, technical site audits, backlink analysis, competitor intelligence, rank tracking, and AI automation—through a composable TypeScript architecture that unifies data in a single workspace.
OpenSEO is an open-source, full-stack SEO platform maintained in the every-app/open-seo repository that addresses the entire lifecycle of search optimization. Built with a "TanStack → Service → Repository" pattern, it provides portable, testable solutions to common SEO pain points using Drizzle ORM and TanStack Router. Understanding what kind of SEO problems OpenSEO solves requires examining its six core feature modules and the underlying server-side implementation.
Keyword Research and Search Intent Discovery
OpenSEO solves the keyword discovery problem by providing a dedicated research module that expands seed topics into actionable opportunities with search volume, difficulty scores, CPC data, and side-by-side SERP results.
The feature definition resides in src/lib/feature-pages.ts (lines 49-57), where UI workflows and metadata are declared. Server-side execution flows through the researchKeywords server function in src/serverFunctions/keywords.ts (lines 26-40), which utilizes the KeywordResearchService to fetch and process data. Client-side invocation follows the TanStack server function pattern:
import { researchKeywords } from "@/src/serverFunctions/keywords";
async function runKeywordResearch(seed: string) {
const result = await researchKeywords({
seed,
// optional: market info (auto‑filled by resolveMarket)
});
console.log("Keyword ideas:", result.keywords);
}
Technical Site Health and Performance Auditing
For technical SEO problems, OpenSEO includes a comprehensive Site Audit tool that crawls domains to extract HTTP status codes, titles, meta descriptions, heading structures, image alt-text coverage, internal link graphs, and response times. The system optionally runs Lighthouse checks to surface Core Web Vitals issues.
Feature metadata for audits lives in src/lib/feature-pages.ts under the siteAudit definition (lines 60-66). The crawl logic is implemented in src/shared/audit-issues.ts, while the rank-tracking service handles page-level signal extraction. This architecture ensures audit data remains consistent whether stored in SQLite for local development or Postgres in production.
Backlink Profile Analysis
OpenSEO addresses link building and authority assessment through its Backlink Checker, which pulls referring domain data, evaluates link quality scores, identifies spam signals, and tracks no-follow attributes. Users can filter historical backlink data and export reports for outreach workflows.
The feature is defined in src/lib/feature-pages.ts under backlinkChecker (lines 32-38). Server-side endpoints in src/serverFunctions/backlinks.ts handle the data retrieval, enabling the frontend to display rank correlations and lost-link tracking without exposing sensitive API credentials to the client.
Competitor Intelligence and Domain Overview
To solve competitor visibility problems, the Domain Overview feature aggregates estimated organic traffic, keyword counts, and top-performing pages for any domain. This allows users to benchmark performance against rivals and identify content gaps.
The feature metadata is declared in src/lib/feature-pages.ts as domainOverview (lines 108-114). Data fetching occurs through the Domain server function in src/serverFunctions/domain.ts, which normalizes third-party data sources into a consistent schema defined in src/db/schema.ts using Drizzle ORM.
Rank Tracking and Position Monitoring
For ongoing performance monitoring, OpenSEO provides a Rank Tracking module that records keyword positions across desktop and mobile devices. The system links ranking changes back to research workflows, surfaces trend visualizations, and alerts users to significant position fluctuations.
Defined in src/lib/feature-pages.ts under rankTracking (lines 90-96), this feature relies on src/shared/rank-tracking.ts for business logic and src/serverFunctions/rank-tracking.ts for secure data persistence. The tracking engine supports scheduled checks and historical comparison queries against the Drizzle-managed database.
AI Agent Integration via MCP
OpenSEO solves the automation and AI context problem through its MCP (Multi-Completion Prompt) layer, which exposes SEO services to large-language-model agents. This enables automated research workflows, programmatic keyword saving, and AI-generated report creation.
The MCP integration is referenced throughout src/lib/feature-pages.ts (lines 78-81) and wired via src/serverFunctions/ai-search.ts. This allows external agents to pull backlink context, domain metrics, and audit results without direct database access, maintaining security through the existing createServerFn middleware stack.
Unified Architecture and Workspace Management
Beyond individual features, OpenSEO solves tool fragmentation by unifying all capabilities into a single workspace. The application uses TanStack Router with generated routes from src/routeTree.gen.ts, ensuring type-safe navigation between /features/keyword-research, /features/site-audit, and other modules.
Each page automatically generates proper SEO meta tags using buildPageSeo from web/src/lib/seo.ts:
import { buildPageSeo } from "@/lib/seo";
export const Route = createFileRoute("/features/keyword-research")({
component: () => {
const seo = buildPageSeo({
title: "Keyword Research – OpenSEO",
description: "Find keyword ideas, SERP insights, and save opportunities.",
canonicalUrl: "https://openseo.so/features/keyword-research",
});
return (
<>
<Head>{seo}</Head>
<KeywordResearchPage />
</>
);
},
});
The architecture follows a strict "TanStack → Service → Repository" pattern. API calls use createServerFn with requireProjectContext middleware for tenant isolation and Zod validation. The Drizzle ORM schema in src/db/schema.ts supports both SQLite (via Cloudflare D1) and Postgres, configured for deployment through wrangler.jsonc for Cloudflare Workers.
Summary
- Keyword Discovery: The
researchKeywordsfunction insrc/serverFunctions/keywords.tscombined withKeywordResearchServiceprovides SERP-aware topic expansion. - Technical Audits: Crawling and Lighthouse integration via
src/shared/audit-issues.tsidentifies page-level SEO health issues. - Link Analysis: The
backlinkCheckerfeature andsrc/serverFunctions/backlinks.tsendpoints assess domain authority and link quality. - Competitor Tracking:
Domainserver functions and domain overview features benchmark traffic and keyword counts against rivals. - Position Monitoring:
rankTrackingservices record desktop and mobile rankings over time with historical trend analysis. - AI Automation: MCP endpoints in
src/serverFunctions/ai-search.tsexpose SEO data to LLM agents for programmatic workflows. - Unified Platform: TanStack Router (
src/routeTree.gen.ts) and Drizzle ORM provide a cohesive, self-hostable workspace that runs on both SQLite and Postgres.
Frequently Asked Questions
What types of SEO tasks does OpenSEO automate?
OpenSEO automates keyword research expansion, SERP analysis, site crawling, backlink data retrieval, and rank position monitoring. The MCP layer further enables AI agents to execute these tasks programmatically via the ai-search.ts endpoints, allowing for automated report generation and keyword opportunity identification without manual UI interaction.
Is OpenSEO suitable for technical SEO audits?
Yes. The platform includes a dedicated Site Audit feature that crawls websites to extract HTTP status codes, metadata, heading structures, image alt attributes, internal links, and response times. It optionally integrates Lighthouse for Core Web Vitals, with all crawl logic centralized in src/shared/audit-issues.ts and orchestrated through the TanStack service layer.
How does OpenSEO handle database portability between development and production?
OpenSEO uses Drizzle ORM with a unified schema defined in src/db/schema.ts that supports both SQLite (for local development or Cloudflare D1) and PostgreSQL (for production). The same repository code deploys to Cloudflare Workers via wrangler.jsonc or runs locally without modification, switching drivers based on environment configuration.
Can OpenSEO integrate with existing AI workflows or agents?
Yes. Through the MCP (Multi-Completion Prompt) integration exposed in src/serverFunctions/ai-search.ts, OpenSEO allows large-language-model agents to query keyword data, backlink profiles, and domain metrics. This enables custom automation where AI agents can pull real-time SEO context and save research findings back to the platform through secured server functions.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →