Free, self-hostable AI tool for SEO content writing, keyword research, technical site audits, AI Overviews optimization, and topic authority scoring. Replaces Surfer SEO, Ahrefs, Clearscope, Screaming Frog, AlsoAsked, and MarketMuse — all with one AI API key.
Quick start · Screenshots · Features · What it replaces · Methodology Library · Architecture · FAQ · Deploy
Premium SEO tools cost $400+/month and lock content in their cloud. Surfer SEO ($89), Ahrefs ($129), Clearscope ($170), MarketMuse ($149), Screaming Frog ($21), AlsoAsked ($15) — each owns one part of the workflow. None talk to each other. None let you self-host.
BlogPilot AI is free, open-source, and self-hostable. Bring your own AI key — free Google Gemini works (1,500 requests/day). Run it on your laptop, on a free Vercel tier, or in Docker. All client data stays in a single SQLite file you own.
Built for solo bloggers, niche-site owners, SEO agencies, marketing teams, and indie developers managing 1-50 client sites at agency-grade output without subscription fees.
Keywords: open source SEO tool · AI content writer · SEO content studio · Surfer SEO alternative · Clearscope alternative · MarketMuse alternative · Screaming Frog alternative · AlsoAsked alternative · self-hosted SEO · Next.js SEO app · AI Overviews optimization · GEO (generative engine optimization) · llms.txt generator · technical SEO audit · content cannibalization detection · topic authority scoring · TF-IDF content scoring · Google E-E-A-T compliance · keyword research without API · free SEO software · Yoast SEO alternative · Rank Math alternative · content gap analyzer · PAA tree explorer · SERP feature detector · WordPress XML export · Ghost JSON export · llms.txt for AI search
Live grading against the top-10 SERP. Pure local TF-IDF, no AI cost, no rate limits. Updates 800ms after each keystroke.
Recursive crawler runs 28 deterministic audit rules across crawlability, on-page, content, images, schema, and security headers. Severity-graded findings (critical / high / medium / low) with concrete fix suggestions. CSV export. Cannibalization detector included.
Three free-API tools replace AlsoAsked ($15), SEMrush's SERP feature checker (part of $139), and MarketMuse ($149).
Paste any URL, BlogPilot crawls identity, sitemap, Core Web Vitals, and social profiles in 30-60 seconds. Real CrUX field data via PageSpeed Insights v5 (no API key required).
Auto-generated social variants for X, LinkedIn, Instagram, Pinterest, WhatsApp. Newsletter excerpts (short + long). Export to WordPress XML, Ghost JSON, Webflow CSV, Hugo, Markdown, HTML, JSON. Signed read-only client portal link.
| Premium tool | Monthly price | Replaced by BlogPilot AI |
|---|---|---|
| Surfer SEO | $89 | ✅ Real-time content score editor (TF-IDF vs top-10 SERP) |
| Clearscope | $170 | ✅ Grade A-F term coverage scoring |
| MarketMuse | $149 | ✅ Topic authority scorer (Wikipedia entity coverage) |
| Ahrefs Site Audit | $129 | ✅ Technical SEO crawler (28 audit rules) |
| Screaming Frog SEO Spider | $21 | ✅ Recursive crawler + audit findings + CSV export |
| AlsoAsked | $15 | ✅ PAA tree explorer (3 levels deep) |
| Frase | $45 | ✅ SERP-grounded outline + writer |
| Jasper | $59 | ✅ AI writer with brand voice trainer |
| Writesonic | $20 | ✅ AI content + social repurposer |
| SEMrush SERP features | (part of $139) | ✅ 9-feature detector |
| Yoast SEO Premium | $99/yr | ✅ Schema generation + meta + readability |
| Combined monthly cost | $700+/mo | Free · MIT · self-hosted |
- Run on your laptop, no infrastructure cost
- Free Gemini key (1,500 requests/day) writes 30+ posts/month
- Auto-discovery means you never re-explain your site's voice
- Built-in rank tracker + decay monitor = know when to refresh
- Manage 2-20 sites in one dashboard
- Cluster designer + posting scheduler = predictable publish cadence
- Content score editor = ship posts that beat the SERP, not just match it
- Common Crawl backlink intelligence (Wave 9, planned)
- Per-client isolation (one row per client, one folder per export)
- Client portal share links — no logins needed for client review
- White-label friendly (toggle Dice Codes branding off in OSS)
- Bulk technical audits across all client sites
- WordPress XML / Ghost / Webflow exports match whatever stack the client uses
- Centralize brand voice across writers (paste sample posts → AI extracts profile)
- Stop reinventing meta + schema + internal links for every post
- CSV import for GSC + GA4 means no per-user OAuth nightmares
- E-E-A-T author bio templates pass Quality Rater requirements
- Forkable, MIT licensed, no vendor lock-in
- Methodology Library is markdown — fork it, edit it, add your own
- 12+ AI providers via one interface = swap models without rewriting prompts
- Self-host on $0/mo Vercel + Turso libSQL
| Goal | How BlogPilot delivers |
|---|---|
| Pass Google's Helpful Content System | google-helpful-content.md (22-item compliance check) + content-formatting-google-likes.md |
| Win featured snippets | featured-snippet-targeting.md enforces 40-55 word direct-answer paragraphs |
| Get cited in AI Overviews | ai-overviews-capture.md + passage-ranking-optimization.md ensure each H2 is standalone-citable |
| Strengthen E-E-A-T | eeat-checklist.md + eeat-author-bios.md + auto Person/Organization schema |
| Find content gaps | Top-10 SERP scrape + heading diff vs competitors |
| Track ranks for free | Bing + DuckDuckGo SERP scraping with throttle |
| Detect cannibalization | Exact-keyword + similar-title detection across all client posts |
| Optimize Core Web Vitals | Auto PSI on discovery + core-web-vitals-thresholds.md with ranked fixes |
| Generate llms.txt | Spec-compliant llms.txt + llms-full.txt for AI search crawlers |
| Multi-language sites | 31 BCP 47 presets, hreflang return-tag validation, locale-aware writer |
- One-URL onboarding — paste any URL, BlogPilot crawls identity, sitemap, Core Web Vitals, social profiles
- Brand voice trainer — paste 3-5 sample posts, AI extracts tone, voice, sentence length, heading case, em-dash use
- Keyword research — Google Autocomplete + People-Also-Ask + Bing SERP top-10, no API keys
- Content gap analyzer — scrapes competitor headings, returns missing topics
- Competitor blog scanner — maps competitor's content clusters from their sitemap
- PAA tree explorer — recursive 3-level People-Also-Ask scraping with collapsible tree view
- Content calendar generator — pillars + spokes, intent-classified, prioritized for quick wins
- Posting scheduler — niche-aware best day + time recommendations, deterministic + timezone-aware
- "What to write next" recommender — synthesizes rank data + decay + gaps + cluster coverage
- Methodology-driven writer — every generation loads structured SEO playbooks before the AI call
- Outline approval gate — review structure before AI writes 2,000 words
- Auto meta + JSON-LD schema — Article, FAQ, HowTo, Breadcrumb, Person, Organization, Product
- Internal linking assistant — Jaccard + cluster + pillar scoring across all client posts
- Image briefs — alt text, AI generation prompts, stock search terms per section
- Readability dashboard — Flesch-Kincaid, passive voice %, paragraph length warnings
- Duplicate content checker — local 4-gram shingle Jaccard
- Existing-post refresher — paste URL → AI rewrites with 2026 freshness + regenerates meta + schema
- Real-time content score editor — TF-IDF grading vs top-10 SERP, debounced 800ms keystroke updates
- 0-100 grade with A-F card — gradient progress bars per category
- Term coverage chips — required (lime) + recommended (blue) + missing (slate) + over-optimization warnings
- Topic authority scorer — Wikipedia + Wikidata entity coverage score
- SERP feature detector — 9 features (snippet, PAA, shopping, map pack, video, image, knowledge panel, news, X)
- Social repurposer — native variants for X / LinkedIn / Instagram / Pinterest / WhatsApp
- Newsletter excerpts — short (240-char) + long (200-word) variants
- CMS exports — Markdown, HTML, JSON, WordPress WXR (XML), Ghost JSON, Webflow CSV, Hugo TOML
- Client portal share links — signed, expiring (30-day default), no-auth public URLs
- Rank tracker — free Bing + DuckDuckGo SERP scraping (throttled, rotating UA)
- GSC + GA4 CSV import — paste CSV, no OAuth setup needed
- Content decay monitor — 4-week trailing avg vs prior 4-week, severity-graded alerts with refresh suggestions
- Hreflang manager — 31 BCP 47 language presets + return-tag symmetry validation
- llms.txt generator — spec-compliant
llms.txt+llms-full.txtfor AI search crawlers
- Recursive crawler with 28 audit rules
- Categories: crawlability · on-page · content · images · schema · security headers
- Cannibalization detector — exact keyword + similar title signals
- Severity-graded findings (critical / high / medium / low) with concrete fix suggestions
- CSV export with formula-injection guard
Configure any subset. Free tier is enough for most users.
| Provider | Type | Free quota / pricing | Get key |
|---|---|---|---|
| Google Gemini | Free | 1,500 requests/day | aistudio.google.com |
| Groq | Free | very fast, generous tier | console.groq.com |
| OpenRouter | Free + paid | many free models | openrouter.ai |
| Mistral | Free tier | small free tier | console.mistral.ai |
| Cerebras | Free | ultra-fast inference | cloud.cerebras.ai |
| Together AI | Free | $1 free credit | api.together.xyz |
| Anthropic Claude | Paid | premium quality | console.anthropic.com |
| OpenAI | Paid | GPT-4o / GPT-5 | platform.openai.com |
| DeepSeek | Paid (cheap) | premium model | platform.deepseek.com |
| Perplexity | Paid | built-in web search | perplexity.ai |
| Ollama | Local | fully offline | ollama.com/download |
| LM Studio | Local | fully offline | lmstudio.ai |
The single most distinctive thing about BlogPilot. Every AI generation loads structured playbooks first — the AI follows proven SEO patterns instead of guessing.
The AI doesn't decide what good SEO is. The methodology files do.
| Playbook | What it codifies |
|---|---|
| content-formatting-google-likes.md | 12-section playbook of formatting patterns Google rewards |
| google-helpful-content.md | 22-item Helpful Content System compliance checklist |
| ai-overviews-capture.md | 6 cited-passage patterns for Google AI Overviews + ChatGPT + Perplexity |
| passage-ranking-optimization.md | Make every H2/H3 standalone-citable |
| eeat-author-bios.md | Bio templates Quality Raters accept |
| serp-features-targeting.md | Per-feature capture strategy (9 SERP feature types) |
| content-cannibalization-resolution.md | 301-merge vs differentiate decision tree |
| core-web-vitals-thresholds.md | 2026 LCP/INP/CLS targets + ranked fixes |
| skyscraper-technique.md | Brian Dean / Backlinko content depth method |
| topic-cluster-model.md | HubSpot pillar + spoke structure |
Plus 35 more covering schema (Article, FAQ, HowTo, Product, Organization, Person), readability, internal linking, image briefs, social repurposing, newsletter excerpts, CMS exports, rank tracking, GSC decay, hreflang, llms.txt, content refresh, brand voice extraction, content gap analysis, and more.
📂 Browse all 45 methodologies →
Fork them, edit them, add your own.
Most AI content tools embed SEO best practices in prompts — invisible, untestable, locked to the developer's worldview. When Google's algorithm shifts, the prompts go stale silently.
BlogPilot stores those best practices in versioned markdown files at src/lib/methodologies/. Each file is:
- Auditable — read it like you'd read a spec
- Forkable — copy it, edit it, ship your own variant
- Composable — the executor loads N methodologies at once
- Testable — output JSON schema lets you verify compliance
- Version-controlled — git diff shows when guidance changed
The AI doesn't decide what good SEO is. The methodology files do.
Download or clone the project, then double-click one file:
| Your computer | Double-click |
|---|---|
| Windows | Start BlogPilot.cmd |
| macOS / Linux | Start BlogPilot.command |
That's the whole setup. It opens the Control Panel in your browser, and everything else is a button there — including the first install. There is no separate installer to run, no terminal commands to copy, and nothing else in the folder to click.
Need Node.js first? The launcher checks, and sends you to nodejs.org if it's missing.
git clone https://github.com/IamRamgarhia/BlogPilot-Open-Source-AI-SEO-Content-Studio
cd BlogPilot-Open-Source-AI-SEO-Content-Studio
# then double-click the launcher for your platformThe Control Panel (http://127.0.0.1:44320) shows only the buttons that apply right now:
- Install BlogPilot — the only button before it's installed; deps + database, 2-4 min
- Start / Stop — boots the app on port 44321, stops it cleanly (no orphaned processes)
- Open BlogPilot — opens the running app in a new tab
- Update — runs
git pull && npm install - Backup data — a verified snapshot of your database (integrity-checked before it says "done")
- Add to Desktop — a shortcut so you never open this folder again
- Live status indicator (green when running, yellow while starting, red when stopped)
- Live server logs (last 200 lines, color-coded errors)
- Embedded iframe of the running app — use BlogPilot without leaving the panel
- Info card: version, Node, port, data path, platform
Port 44320 (control panel) and 44321 (main app) are IANA-unassigned and chosen so they never collide with other software on your machine.
npm run control # same control panel the launcher opens
npm run dev # alias for control
npm run setup # ./data/, .env, migrations, Desktop shortcut
npm run backup # verified database snapshot -> ./backups/
npm run stop # escape hatch: free ports 44321 + 44320 if the panel is gone
npm run clean # wipe .next, data/, tsbuildinfo, test artifacts (never backups/)
npm run doctor # health check (Node, libsql, Playwright, write perms, live data sources)
npm test # unit tests
npm run typecheck # TypeScript validationAll user data lives in ./data/blogpilot.db. Nothing is created outside the project directory (except the Desktop shortcut).
- Double-click Start BlogPilot.cmd / .command (or the Desktop shortcut), then press Start
- Browser opens at http://localhost:44321
- Click + Add client, paste any URL
- Wait 30-60 seconds for auto-discovery
- Explore: Research keywords → Calendar generator → outline → Score the draft → Distribute to 7 CMS formats
Deep dive: See USAGE.md for the complete walkthrough of every feature with troubleshooting tips.
A condensed 18-step tour of every workflow.
Step 1 — Install
git clone https://github.com/IamRamgarhia/blogpilot-ai
cd blogpilot-ai
# then double-click the launcher for your platform:
# Windows Start BlogPilot.cmd
# macOS / Linux Start BlogPilot.commandThe panel's Install button sets everything up and creates a Desktop shortcut. Double-click that any time to launch.
Step 2 — Configure an AI key (optional but recommended)
- Open http://localhost:44321/settings
- Click Get key next to Google Gemini (free 1,500/day)
- Paste your key into
.envafterGEMINI_API_KEY= - Restart: press Stop then Start in the control panel
- Click Test on Settings page → "✓ reachable"
Without an AI key, all features still work using deterministic fallbacks.
Step 3 — Add your first client
- Click + Add client on the home page
- Paste any URL (e.g.,
https://yoursite.com) - Click Add and auto-discover
- Wait 30-60s while BlogPilot crawls identity, sitemap, Core Web Vitals, social profiles
- Land on the client dashboard with 4 cards: Identity / Sitemap / Web Vitals / Socials
Step 4 — Train brand voice (recommended)
- Click Train voice from the client dashboard
- Paste 3-5 published posts (≥100 chars each) into the textareas
- Click Train voice
- AI extracts a deep style profile (tone, voice, sentence length, heading case, em-dash, contractions, persona, phrases to keep/avoid)
- Every future post for this client matches this voice automatically
Step 5 — Keyword research
- Click Research from the client dashboard
- Enter a seed keyword (e.g.,
wordpress seo) - Click Research → 5-8s later you see:
- 25 keyword candidates with intent + format tags
- Bing SERP top-10 ranking pages
- Check the boxes next to keywords you want to write about
- Click Generate calendar from selected →
Step 6 — Competitor + gap analysis
- Click Competitors from the client dashboard
- Tab 1: Content gap analyzer — enter a keyword → scrapes top-10 SERP + diffs against your client's existing posts → returns missing topics
- Tab 2: Competitor blog scanner — paste a competitor URL → crawls their sitemap → maps their content clusters
Step 7 — Content calendar
- Click Calendar from the client dashboard
- View 4-column Kanban: Idea / Outline approved / Draft / Ready
- Click any Idea card → goes to outline page
- Calendar auto-generates from the keywords you picked in research
Step 8 — Schedule publishing dates
- Click Schedule from the client dashboard
- Click Auto-schedule unscheduled
- BlogPilot assigns publish dates based on detected niche (B2B = Tue/Thu mornings; food = Fri/Sun midday; etc.)
- Pillars before spokes; first post lands 2 business days out
Step 9 — Outline a post
- Click an Idea card on the calendar
- AI auto-generates an outline in 4-8s (using outline-structure + skyscraper-technique + featured-snippet-targeting + paa-optimization methodologies)
- Review: title, TL;DR bullets, intro hook, H2 body sections, FAQs, conclusion, word count target
- Edit JSON in the right pane if needed
- Click Approve & write full post →
Step 10 — Full draft + SEO checks
The draft page shows:
- Left: Full Markdown draft (editable)
- Right sidebar: Meta title/description (char-counted) · 10 SEO checks · Internal link suggestions · Image briefs · Readability dashboard
Download as .md / .html / .json, or click Score for live SERP grading.
Step 11 — Real-time content score (Surfer-killer)
- Click Score from any draft page
- Enter the target keyword
- Click Load SERP corpus → 15-30s scrape of Bing top-10
- Edit the draft — score updates 800ms after each keystroke
- Watch the A-F grade card + 5 weighted score bars + term coverage chips + over-optimization warnings
- Aim for grade A or B before publishing
Step 12 — Refresh an existing post
- Click Refresh post from the client dashboard
- Paste the URL of a published post you want to refresh
- Click Refresh post → 20-90s while AI fetches + rewrites with 2026 freshness + regenerates meta + schema
- Lands on a draft page with a change log of what was updated
Step 13 — Technical SEO audit (Screaming Frog-killer)
- Click Audit from the client dashboard
- Set max pages (default 50; up to 200)
- Click Start audit → 60-120s crawl
- View 5 severity stat cards (Pages / Critical / High / Medium / Low) — click any to filter
- Cannibalization callout if duplicate keyword targets exist
- Per-finding cards with rule ID, severity, fix suggestion, URL, evidence
- Click .csv to export the full report
Step 14 — PAA tree explorer
- Click Tools → PAA tree tab
- Enter a seed keyword
- Click Build tree → 60-90s recursive Bing PAA scrape
- View 3-level collapsible tree (~40 nodes)
- Each leaf is a candidate FAQ item or future blog post
Step 15 — SERP feature detector
- Click Tools → SERP features tab
- Enter a target keyword
- Click Detect features
- 9-feature grid lights up: featured snippet / PAA / shopping / map pack / video / image / knowledge panel / news / X
- Plan capture strategy for each present feature using serp-features-targeting.md
Step 16 — Topic authority scorer
- Click Tools → Topic authority tab
- Enter the niche (e.g.,
wordpress seo) - Click Score authority
- BlogPilot fetches the Wikipedia canonical article + extracts 30 entities
- Matches against all your client posts
- Returns 0-100 score, tier (Strong / Moderate / Surface), covered + missing entities, recommended posts to fill gaps
Step 17 — Distribute (social, newsletter, CMS exports, share link)
- Click Distribute → from any draft page
- Click Generate social → native variants for X / LinkedIn / Instagram / Pinterest / WhatsApp
- Click Generate newsletter → short (240-char) + long (200-word) versions
- Click any CMS export button: WordPress XML / Ghost JSON / Webflow CSV / Hugo — downloads immediately
- Click Create share link → 30-day signed read-only URL for client review (no login)
Step 18 — Measure (rank tracking + GSC/GA4 import + decay alerts)
- Click Measure from the client dashboard
- Search Console import: paste your GSC CSV → click Import GSC
- GA4 import: paste your GA4 CSV → click Import GA4
- Decay alerts appear after 8+ weeks of GSC data — severity-graded with refresh recommendations
- What to write next queue — priority-scored backlog based on rank data + cluster coverage + decay rescue
For everything else — hreflang manager, llms.txt generator, refresh post, voice trainer config, troubleshooting — read the full guide at USAGE.md.
| Layer | Choice | Rationale |
|---|---|---|
| Frontend | Next.js 15 (App Router) + React 19 + TypeScript 5 | SSR, file-routing, modern type safety |
| Styling | Tailwind CSS 3 + shadcn/ui-inspired primitives + 21st.dev-inspired layouts | Clean, accessible, ship-fast |
| Database | @libsql/client (SQLite) |
Prebuilt napi-rs binaries for every Node + OS combo |
| ORM | Drizzle ORM | First-class type safety, parameterized queries |
| Crawler | Playwright + Cheerio fallback | Handles JS-rendered + static sites |
| NLP | Pure-TS TF-IDF + n-gram (no deps) | Zero install footprint, deterministic |
| Tests | Vitest (unit) + Playwright (e2e) | Fast unit + real-browser e2e |
| Deployment | Vercel free tier · Docker · or npm run dev locally |
Three paths, all free |
Tested on:
| OS | Node 18 | Node 20 | Node 22 | Node 24 |
|---|---|---|---|---|
| Ubuntu | ✅ | ✅ | ✅ | ✅ |
| macOS | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
No Python, no Docker, no Redis, no Visual Studio Build Tools required.
See .github/workflows/ci.yml for the CI matrix.
Measured on a 2024 M2 MacBook Air with Node 22 and Gemini 2.5 Flash:
| Operation | Time |
|---|---|
Cold npm run dev first load |
4-5s |
| Add client + auto-discovery (50-post site) | 30-60s |
| Keyword research (autocomplete + PAA + Bing top-10) | 5-8s |
| Generate content calendar (30 posts) | 8-15s with AI · <1s deterministic fallback |
| Outline generation (one post) | 4-8s with AI · <100ms fallback |
| Full draft (1,500 words) | 12-25s with AI · 1s fallback |
| Content score (after corpus loaded) | 50-150ms per keystroke |
| Technical audit (50 pages) | 60-120s |
| PAA tree (3 levels, ~30 nodes) | 60-90s |
| CMS export (any format) | <100ms |
Yes. MIT licensed. No subscriptions, no usage limits we impose, no telemetry. The only thing you pay for is your AI provider — and Google Gemini's free tier (1,500 requests/day) is enough for most users.
No. Bing SERP, Google Autocomplete, PageSpeed Insights v5, Wikipedia, OpenStreetMap — all used without keys. Free public endpoints only. An AI key is the single thing you configure.
Most features yes. Every generator has a deterministic rule-based fallback. Content scoring, technical audits, hreflang, schema, llms.txt, internal linking, rank tracking — all pure local code that never calls an AI.
Same real-time content score against top-10 SERP. Same term-coverage chips. Same A-F grading. Built with pure TypeScript TF-IDF — no Surfer subscription, runs on your machine. See the Content Score Editor screenshot above.
Same technical crawler. 28 audit rules across crawlability, on-page, content, images, schema, security headers. Severity-graded findings with concrete fix suggestions. Plus cannibalization detector Ahrefs charges extra for. See the Technical Audit screenshot.
Same grade A-F content scoring. Same TF-IDF term coverage analysis. Same "required vs recommended" term split. Clearscope is $170/month and locks reports to their dashboard — BlogPilot is free and your data is yours.
The Topic Authority Scorer provides the same niche-completeness scoring MarketMuse charges $149/month for. Uses Wikipedia + Wikidata as the entity ground truth instead of MarketMuse's proprietary topic model.
Same recursive crawler architecture. 28 audit rules covering the same categories (crawlability, on-page, content, images, schema, security headers). Plus a built-in cannibalization detector and severity-graded reporting Screaming Frog doesn't have.
Those are pure AI writers. BlogPilot is a full SEO content studio — research, planning, writing, scoring, distribution, measurement, and technical audits in one app. The writer is just one of 39 modules.
Yes. The crawler detects the site's language automatically. The post writer respects the detected language. 31 BCP 47 language presets in the hreflang manager. multi-language-writing.md covers locale-specific punctuation and number formatting.
MIT license. Use it for client work, fork it for an agency, build a SaaS on top — all permitted. Attribution appreciated but not required (Dice Codes branding is toggle-able in OSS mode).
Yes via export — WordPress WXR (XML), Ghost JSON, Webflow CSV, Hugo TOML, plus generic Markdown / HTML / JSON. Imports the same way any standard CMS importer would.
Yes. See DEPLOY.md. For persistent storage, pair with Turso (free libSQL tier) — same client we use locally.
Free Bing + DuckDuckGo SERP scraping, throttled 5s between requests. Position 100+ reports as "not in top 100" rather than guessing. For Google-specific tracking, use the GSC CSV import — that's real Google data.
ai-overviews-capture.md ships with 6 verified passage patterns. passage-ranking-optimization.md enforces standalone citability. llms-txt-spec.md generates the llms.txt AI crawlers consume.
PageSpeed Insights v5 (free, no key) pulls real CrUX field data during auto-discovery. core-web-vitals-thresholds.md ships 2026 thresholds with ranked fixes.
Yes — that's the whole point. Drop a markdown file in src/lib/methodologies/ with the frontmatter format. The loader picks it up automatically. Reference it from any execute({ methodologies: [...] }) call. See CONTRIBUTING.md.
Yes. Everything lives in ./data/blogpilot.db on your machine. Zero telemetry, zero analytics, zero phone-home. The only outbound traffic is to your configured AI provider and free public endpoints (Bing, PageSpeed Insights, Wikipedia) — and only when you trigger a feature that needs them.
Common Crawl backlink intelligence (Ahrefs replacement), local SEO audit (Google Business Profile), image SEO at scale (bulk WebP conversion + alt-text gen), programmatic SEO template engine, brand mention monitor for link reclamation, HARO journalist-request scraper. See docs/strategy/COMPETITIVE_ROADMAP.md.
| Modules | 39 |
| API routes | 35+ |
| Pages | 17 |
| CMS exporters | 7 (Markdown, HTML, JSON, WordPress XML, Ghost, Webflow, Hugo) |
| Methodology playbooks | 45 |
| Database tables | 10 |
| Unit tests | 158 across 27 files |
| E2E tests | 3 (Playwright) |
| TypeScript lines | ~7,500 |
| Cross-version CI | 12 cells (Node 18/20/22/24 × Ubuntu/macOS/Windows) |
- SSRF guard on every user-URL ingress point — blocks localhost, RFC1918, AWS metadata, IPv6 link-local, non-http(s) protocols
- CSV formula-injection neutralization in all CSV exporters (OWASP guidance)
- Share-link tokens — 190 bits of entropy, base64url-encoded, revocable, time-limited
- Drizzle parameterized queries throughout — zero SQL injection surface
- No telemetry, no analytics, no phone-home
- Your data, your machine — single SQLite file in
./data/
✅ Auto-discovery · ✅ Brand voice trainer · ✅ Keyword research · ✅ Gap analyzer · ✅ Calendar generator · ✅ Outline + writer · ✅ Meta + schema · ✅ Internal linking · ✅ Image briefs · ✅ Readability · ✅ Refresher · ✅ Social repurposer · ✅ Newsletter · ✅ 7 CMS exports · ✅ Client portal · ✅ Rank tracker · ✅ GSC/GA4 import · ✅ Decay monitor · ✅ Hreflang · ✅ llms.txt · ✅ Content Score Editor · ✅ PAA Tree · ✅ SERP Features · ✅ Topic Authority · ✅ Technical Audit (28 rules) · ✅ Cannibalization Detector
- Wave 9 — Compete with Ahrefs for $0: Common Crawl ingestion → backlink discovery + anchor distribution + local Domain Authority
- Wave 10 — Sibling apps: OGForge (OG images), ReviewMiner (testimonials), SubjectLab (email subjects), CopyAtlas (conversion copy briefs), GMBPilot (Google Business Profile scheduler), PriceRadar (competitor pricing-change alerts)
- Google Search Console + GA4 OAuth (currently CSV-import only)
- Multi-user workspaces with roles
- Realtime collaborative editing
See docs/strategy/COMPETITIVE_ROADMAP.md for the full 25+ item backlog.
PRs welcome. See CONTRIBUTING.md.
How to extend BlogPilot:
- Add a methodology → drop a markdown file in
src/lib/methodologies/(see existing files for the frontmatter format) - Add an AI provider → implement the
AIProviderinterface insrc/lib/ai/providers/ - Add a CMS exporter → create
src/lib/exports/<platform>.tsand wire it into/api/export-cms - Add an audit rule → add a function to
src/lib/technical/audits.tsthat takes aCrawledPageand pushesFindingobjects
MIT — free for commercial use, modification, and distribution. See LICENSE.
If you cite BlogPilot AI in research or content, see CITATION.cff for the recommended format.
Dice Codes builds custom web apps, SaaS, mobile apps, e-commerce stores, and SEO-ready websites for startups and SMEs worldwide — at startup-friendly prices.
Need a custom SaaS like BlogPilot for your industry?
📱 WhatsApp +91 9888404991 · 📧 Contact@dicecodes.com · 🌐 dicecodes.com
Selected work: Oceglow US · Marby · Anahat Exclusive · Bravo Pizza NYC.
If BlogPilot saved you a $400+/month subscription, ⭐ this repo.
⭐ Star this project · 🐛 Report issue · 💡 Request feature · 📰 Changelog · 🗺️ Roadmap