Official documentation now served at docsbook.io/docs — middleware rewrites /docs/* internally instead of redirecting to docsbook-io.docsbook.io; canonical URLs, sitemap, JSON-LD, and all links updated across landing, admin, and MCP pages
docs.docsbook.io and docsbook-io.docsbook.io now return Disallow: / in robots.txt so search engines index only the canonical docsbook.io/docs path
Fixed broken navigation on docs.docsbook.io alias — clicking any sidebar/inline link returned 404 because cached HTML carried the /docs/ repo prefix while middleware rewrote it again. Added x-docs-alias header in src/proxy.ts and routed basePath to empty in src/app/[user]/[repo]/[[...path]]/page.tsx so links render as /ai/mcp instead of /docs/ai/mcp. Existing docsbook-io.docsbook.io/docs/* paths keep working unchanged
Removed server-side Source of Truth indexing — get_doc_graph, read_doc_sections, reindex_doc_graph and the 17 doc_* LSP-style MCP tools are gone. Graph search now runs locally via the docs-claude-plugins package (/plugin install docs-sync@docs-claude-plugins). Deleted src/lib/source-of-truth.ts, src/lib/mcp/lsp-tools.ts, the reindex REST route, the daily stale-check cron and the two smoke scripts
Replaced the admin Source of Truth card in src/components/mcp/SourceOfTruthControls.tsx — the reindex usage counter (/100) and Reindex button are gone, replaced by a promo card with the install command and a link to the docs-claude-plugins repository
Updated src/components/SourceOfTruthUpgradeModal.tsx bullet from "100 reindexes/month" to "Local indexing via Claude Code"
Cleaned src/app/mcp/page.tsx, src/app/mcp/_data/prompts.ts (239 lines dropped) and src/lib/generate-llms-txt.ts of references to the removed tools
Mobile sidebar overlay no longer covers sticky subheader in src/components/docs/Sidebar.tsx and src/components/docs/Subheader.tsx — overlay top now adds the subheader's 2.25rem when present, and subheader z-index raised from z-30 to z-40 so it stays above the overlay just like the main header
Fixed mobile sidebar backdrop overlay no longer covering the header in src/components/docs/Sidebar.tsx — overlay now starts below the header (h-12 + preview banner offset) and z-index lowered from 40 to 30 so the header stays interactive while the sidebar is open
Fixed mobile outline (right table-of-contents panel) backdrop overlay no longer covering the header in src/components/docs/Outline.tsx — same treatment as the sidebar overlay so the header stays clickable when the outline drawer is open on mobile
Restyled TL;DR block in docs to Vercel-style neutral border in src/app/globals.css — removed blue accent border-left and background fill, replaced with thin 1px border all around, transparent background, and muted-gray uppercase label for a cleaner minimal look in both light and dark modes
Ask AI on selection bubble: no longer interrupts text selection — bubble appears only after mouseup/touchend so selecting words and lines works normally
Copy button on single-line code blocks: now vertically centered (top: 50%) so it appears on hover for all code block heights
Mobile header: removed the second nav-links row on small screens — header now shows only logo + CTA button
Hero badge animation on Safari/iOS: @property conic-gradient is not supported in Safari; added CSS fallback via border-beam-rotate keyframe + @supports guard so the animated border renders correctly on all browsers
Footer layout on mobile: removed max-w-4xl mx-auto from the <footer> tag, added w-full + horizontal padding on the inner container — background and border-t now stretch full-width on all screen sizes
Hero top padding reduced from pt-40 to pt-28 on mobile (was over-compensating for the now-removed second header row)
Short marketing alias docs.docsbook.io for the product documentation — opens the same content as docsbook-io.docsbook.io/docs/* without redirect (URL stays clean in the browser). New DOCS_ALIAS_SUBDOMAINS map in src/proxy.ts rewrites docs.docsbook.io/{path} → /docsbook-io/docs/{path}; /api/* is passed through untouched, original subdomain URLs keep working.
SEO / GEO / AEO admin cards with real functionality — admin tab renamed from "SEO" to "SEO / GEO" (key seo-geo) and split into three toggleable cards, each with a Learn more about … footer link. GEO toggle injects a TL;DR <aside class="tldr"> at the top of every page (from tldr: frontmatter or auto-extracted first paragraph), shows a visible Updated DD MMM YYYY<time> at the article end, and switches author in JSON-LD TechArticle to a full Person schema (frontmatter author/authorUrl or fallback to last git commit author). AEO toggle gates the existing FAQPage JSON-LD, auto-detects HowTo JSON-LD from ## How to … / ## Как … headings followed by numbered lists (src/utils/seo/extractHowTo.ts), and adds a speakableSpeakableSpecification to TechArticle for voice assistants. New MCP tools update_geo and update_aeo (PRO-gated) mirror update_seo. Markdown pipeline migrated from regex-strip to gray-matter for typed frontmatter (new src/utils/markdown/parseFrontmatter.ts); 4 call-sites refactored. New docs/content/features/geo.md and aeo.md document the behavior and authoring patterns; seo.md updated with cross-links. DB columns workspaces.geo_enabled and aeo_enabled (migration 0028_public_marvex.sql)
UTM parameters on all internal CTAs leading from /skills, /mcp, /docs (Preview banner), and the blog to the landing page — every /start and /connect link now carries utm_source (skills / mcp / preview / blog), utm_medium (nav / cta / banner), and utm_campaign (e.g. header_signup, mcp_start_free_top, preview_connect, post slug for blog). New src/utils/utm.ts helper (withUtm()) wires the landing Header/Footer via an optional utmSource prop, the two inline CTAs on /mcp, and the PreviewConnectBanner on workspace pages. Blog post CTAs (docusaurus_vs_docsbook, mintlify_vs_docsbook, gitbook_vs_docsbook, ai_search_documentation, documentation_seo_guide, how_to_host_docs_from_github, why_documentation_matters) now tag their conversions per post. The landing page itself stays UTM-free so internal scroll-to-CTAs aren't mis-attributed
Landing page positioning rewritten for AI crawlers — ChatGPT and Perplexity were describing Docsbook as a plain GitBook/Mintlify/Docusaurus alternative, missing the entire AI-Native layer. Hero H1 changed from "The AI Knowledge Platform" to "Docs from GitHub. For humans and AI agents." with concrete subtitle naming MCP, llms.txt, and 15 languages. New full-width "Built for AI agents" bento card with terminal mock (claude mcp add), MCP tool grid (doc_outline, doc_search_text, read_doc_sections, …) and client logos (Claude Code, Cursor, ChatGPT, Perplexity, Cline). New "AI Agents" social-proof tab with CTA to /mcp. metadata.title, metadata.description, JSON-LD SoftwareApplication.featureList, and FAQPage rewritten to surface MCP server, llms.txt, Source of Truth graph, Skills catalog, and updated pricing ($150 lifetime PRO / $59/mo PRO+) so AI search engines cite the current product correctly
SEO content hub — 20 new long-tail GEO/AEO blog posts in docs/blog/ targeting AI search citation (ChatGPT, Perplexity, Claude, Gemini) and high-intent developer queries. Covers comparisons (Docusaurus vs Docsbook 2026, AI docs platform comparison, free hosting comparison, docs as code vs managed), AI infrastructure (llms.txt complete guide, JSON-LD for documentation, MCP server for documentation, docs-skills for AI agents, how to get docs cited by ChatGPT, Perplexity citations for docs, multi-language documentation SEO, AI chat build vs buy), migrations (GitBook → Docsbook, Docusaurus → Docsbook), and practical guides (custom domain how-to, API documentation best practices 2026, documentation analytics, README → docs site, why README-only projects need a docs site, best docs platforms for startups 2026). docs/blog/README.md restructured into five sections: Foundations, SEO & AI search (GEO/AEO), AI features, Comparisons & migration, Practical guides
MCP visitor activity drill-down — two new tools on PRO+ (get_top_visitors and get_visitor_activity) let AI agents investigate what one specific anonymous visitor actually did end-to-end. get_top_visitors returns the most active anonymous visitors with a stable hashed visitor_id, pageview count, country, and first/last seen; pass that visitor_id to get_visitor_activity to get the full chronological event timeline (pageviews, page feedback, CTA clicks) with paths and event-specific details (vote, query, href, heading, …). get_page_journeys also returns the same visitor_id so journeys can be drilled into immediately. visitor_id is sha256(VISITOR_ID_SALT + repoFullName + ip).slice(0,16) — stable across sessions for the same person within one workspace, but raw IPs never leave Axiom
Bento feature cards on the landing page now link to their corresponding documentation pages instead of /connect — AI Chat → /docs/ai/chat, SEO Optimization → /docs/content/features/seo, Web Analytics → /docs/analytics/tracking/overview, AI Translations → /docs/translation/ai-translations, User Feedback → /docs/content/features/feedback. Smoother funnel (visitor reads about the feature first) and internal-linking SEO boost
Devices, Browsers and AI Visits analytics — new row of cards under Pages/Referrers in the Analytics tab. First card has tabs for Devices (Mobile/Desktop/Tablet) and Browsers (Chrome, Safari, Firefox, Edge, Brave, Arc, Vivaldi, Yandex…) with favicon icons. Second card lists AI crawler visits (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bingbot, Applebot-Extended, Meta-ExternalAgent, CCBot, Bytespider, MistralAI-User and 12+ more) grouped by provider so you can see exactly which AI agents read your docs
Ask AI on text selection — when readers highlight a snippet inside the docs, a floating Ask AI bubble appears above the selection; one click sends the selected text to AI Chat as a ready prompt. Tooglable per-workspace (Content tab in admin and show_ask_ai_on_selection in MCP update_ui_settings). On by default. Reduces friction for "explain this paragraph" / "rephrase this" use cases and pushes AI engagement
Mobile Outline drawer — on screens <1280px the right-hand "On this page" panel is now reachable via a floating button in the bottom-left corner that opens a slide-up sheet with the same heading list and actions (scroll to top, ask AI, copy markdown, edit on GitHub, page feedback); desktop layout unchanged
Signup attribution tracking — capture UTM parameters and referrer on landing pages, persist as first-touch cookie (ds_attr, 90 days), and write signup_source / signup_medium / signup_campaign / signup_referrer / signup_landing_path to users on GitHub OAuth signup so we can measure which channel (Twitter, HN, Product Hunt, dev.to, blog, organic, AI assistants) actually converts
New FAQ sections covering subscription model, cancel behaviour, GitBook migration (3-step guide), annual vs monthly trade-offs, and grandfathered lifetime users
Updated refund Q&A — 30-day money-back on first payment, prorated refunds for annual after the window
Sitelinks-friendly structured data on the landing — added SiteNavigationElement JSON-LD for 8 key sections (Quick Start, AI Features, MCP Server, Agent Skills, Documentation, FAQ, Blog, Changelog), an ItemList with top destinations, and WebSite.hasPart linking the main pages so Google has explicit signals for generating sitelinks under the docsbook.io result
New sitemap entries — /mcp and /skills with priority 0.9, plus /connect with 0.5, so Google can discover and weigh these promo pages
FAQ reply notebook for community comments at docs/blog/faq-replies.md — 32 ready-to-paste answers (TL;DR + Long versions) across 8 sections (General, Pricing, Competitors, AI, SEO, Tech, Security, Objections) for Reddit, X, IndieHackers, and HackerNews distribution
Simplified install/use guide on each skill page /skills/[name] — tabs for 7 AI clients (Claude Code, Cursor, Codex CLI, Windsurf, Cline, Gemini CLI, Copilot), two steps (Install + Use) with the command pre-filled for this specific skill, plus a runtime-discovery block via Docsbook MCP
Install snippets for 8 AI clients on /mcp — interactive selector with tabs for Claude Code, Cursor, Codex CLI, Windsurf, Cline, Gemini CLI, GitHub Copilot (VS Code), and ChatGPT; each one shows its own command or config (bash/JSON/TOML) with filename and optional install steps
Expanded the Install in your AI client section in docs/ai/mcp from a single Claude snippet to 8 subsections — one per client
New blog tutorial /blog/how-to-host-docs-from-github — walks through three ways to turn a GitHub repo into a live docs site (GitHub Pages + Jekyll, Docusaurus, Docsbook) with step-by-step setup, tradeoffs, and a decision matrix; targets the "how to host documentation from github" high-intent SEO query
New opinion blog post /blog/notion-for-docs-engineering-lessons — first-person engineering essay on why Notion stops working as a docs system once docs leave the building (SEO surface vs internal wiki, version control drift, multilingual coupling, AI crawler discoverability, performance budget, export lock-in, wiki-vs-docs permission split) with a soft Docsbook pitch in the closing section; written for SEO ("notion for documentation") + outreach + objection handling
Month-1 transparency Twitter thread draft at marketing/twitter-threads/2026-05-month-1-transparency.md — 11-tweet build-in-public post (genre reference: @levelsio / @marc_louvion) covering hook with revenue, three things that worked (lifetime PRO, MCP server, llms.txt auto-generation), three that didn't (cold email, paid ads, feature bloat), AI chat numbers, and what changes in month 2; placeholders for MRR/lifetime revenue/conversion, character counts inline, posting checklist included
Twitter teaser thread for Product Hunt launch at marketing/twitter/ph-teaser-thread.md — 9-tweet building-in-public thread (D-10 hook + 7 building-in-public tweets covering Anonymous MCP, llms.txt auto-discovery, TOON format, Docusaurus alternatives guide, attribution tracking, sitelinks JSON-LD, skills install UX + CTA), each tweet ≤280 chars, character counts inline, posting notes with UTM campaign ph-teaser-twitter
New blog comparison post /blog/gitbook-vs-docsbook — honest 2026 head-to-head against GitBook (~1900 words) covering TL;DR matrix, four reasons teams leave GitBook (per-editor pricing, vendor lock-in, migration cost, AI as commodity), side-by-side feature table, pricing math for three team sizes (solo / 5-person / 20-editor mid-market), 7-step migration path, an honest "when GitBook is the better choice" section, and a 6-question FAQ — targets the "GitBook alternative", "GitBook vs Docsbook", and "GitBook pricing 2026" SEO queries
Rewrote /blog/docusaurus-vs-docsbook into a full "Docusaurus Alternatives in 2026" guide (2.7k words) — TL;DR decision matrix, four reasons teams leave Docusaurus, 9 alternatives compared (Docsbook, Mintlify, GitBook, ReadMe, Archbee, VitePress, Nextra, Starlight, MkDocs Material) with pros/cons/pricing/migration, a "how to choose" section with three decision questions, a step-by-step migration guide, and a 7-question FAQ — targets the "docusaurus alternatives" SEO query instead of the narrower 1:1 comparison
Pivoted pricing FAQ from one-time lifetime to subscription model — PRO now $19/month or $190/year, PRO+ stays $59/month or $590/year (annual saves 2 months)
Replaced legacy "Will the price increase?" answer with a price-lock guarantee for active subscriptions
Moved "Get Support" out of the admin sidebar — replaced the bulky "Help & Support" section with a subtle "Need help? Contact support" footer link pinned to the bottom of the settings modal sidebar, freeing vertical space
Reordered and trimmed the floating admin toolbar — now 5 quick-access buttons (Analytics, AI Chat, AI Translations, Design, SEO) instead of 6; removed setup-once entries (Custom Domain, MCP Server) and surfaced SEO, which was previously only reachable via the settings modal
AI Skills cards in the admin no longer 404 on workspace subdomains — clicking a card now opens an in-place modal with the full SKILL.md (description, install snippets for 7 AI clients, keywords, MCP tools, GitHub link) instead of routing to /skills/<name> which only exists on docsbook.io. Landing-page behavior is unchanged
Mobile adaptation for /mcp promo page — Hero pt-28 reduced to pt-20 on mobile, H1 base set to text-3xl, endpoint URL no longer overflows the screen
CopyCommand on mobile — reduced padding/height, font-size scaled down, long install command no longer breaks the layout
AiClientsRow — gap-x-5 on mobile (was 9) so client icons line up more evenly at 375px
PromptsFilters — category/plan selects use grid-cols-2 on mobile instead of a single row; prompt row padding reduced, prompt text set to 13px on mobile
Broken SearchAction from the landing JSON-LD — it pointed at /search?q=, a page that does not exist, sending a negative signal to Google instead of unlocking the Sitelinks Search Box
Replaced broken (#) CTA links across 5 blog posts (mintlify-vs-docsbook, docusaurus-vs-docsbook, why-documentation-matters, documentation-seo-guide, ai-search-documentation) — all now point to https://docsbook.io/start
Removed misleading "free for 14 days" copy in mintlify-vs-docsbook — Free plan is free forever; added note that the 14-day trial applies only to PRO+ ($59/month)
Anonymous MCP access: any AI model can now connect to https://docsbook.io/{owner}/{repo}/api/mcp/server without authentication and use get_info, get_doc_graph, and read_doc_sections for PRO+ workspaces
Scoped MCP endpoint /{owner}/{repo}/api/mcp/server — connecting to this URL auto-scopes the server to the specified repository
Scoped /{owner}/{repo}/.well-known/oauth-protected-resource for OAuth discovery per workspace
Every documentation page now includes <link rel="mcp-server"> meta tag so AI models can auto-discover the MCP server from any docs URL
llms.txt now includes a full MCP Server section with connect instructions, tool list, and discovery notes
get_doc_graph now supports format parameter: "toon" (default) returns a compact text tree ~10x smaller than JSON with @canonical/ref syntax that LLMs parse natively; "json" preserves the previous full structured response for programmatic clients
Paginate MCP get_doc_graph to avoid hitting the MCP response token limit on large repos (previously a single 110k+ character JSON line blew past the limit and made the tool unusable in Claude). Added page/page_size (default 50), path_prefix, include_headings, include_relations, and include_github_urls flags; relations are only emitted on page=1 to save bytes
Prevent race conditions in monthly usage limits for AI Chat, Translations, and Reindex — concurrent requests could each pass a stale pre-check and push counters past the plan limit (visible as 78/50 pages translated on Pro). Replaced check-then-act with atomic conditional UPDATE ... RETURNING in batchTranslate, /api/ai-chat, and the MCP reindex endpoint
Roll back the reserved reindex slot when fetchAndIndexRepo fails so transient errors no longer eat the monthly quota
Remove live preview modal from landing — GitHub to DocsBook input now navigates directly to /<owner>/<repo>?preview=true instead of opening an overlay
Replace dark-background OG/Twitter image with a landing-style preview — light gradient, "The AI Knowledge Platform" headline, feature badges, and a docs UI mockup — improves appearance when sharing links on X/Twitter
10 new MCP Example Questions in admin (copy brandbook from a URL, change logo, custom domain, translations, social links, AI key, analytics, reindex, read sections); moved the authentication module example to the bottom of the list
New /start page replaces the LivePreviewExpanded modal on "Start for free" — logo, GitHub URL input, Sign in with GitHub, email/Discord support links, social icons, hero-style shards background, cascade animations
Auth redirect loop after GitHub OAuth — stale callbackUrl cookie pointing at a subdomain /connect caused an infinite redirect cycle; NextAuth redirect callback now normalises any subdomain /connect → docsbook.io/connect
/connect on a workspace subdomain now redirects to docsbook.io/connect instead of 404
ConnectPage now redirects to sign-in when the session cookie is present but invalid/expired, preventing a broken ConnectPicker state
Workspace redirect after sign-in always uses APP_DOMAIN instead of the request host header, preventing wrong subdomain redirects
Infinite redirect loop for workspaces whose repo is named connect — subdomain middleware no longer intercepts user.docsbook.io/connect as a /connect auth route
Show "AI not enabled" message with owner contact link in AiPanel instead of generic error when AI is disabled for a workspace — users now see a helpful message with a link to the project owner's GitHub profile to request enabling the feature
Get Support tab in admin panel with email, Discord, and Twitter contacts
Email support link in landing Footer for quick access to support@docsbook.io
SoftwareApplication structured data schema on Landing Page for AI search visibility
llms-full.txt endpoint with complete product brief for AI crawlers
Explicit allow rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended in robots.txt
Events webhook endpoint in API for receiving real-time workspace events
Blog section in docs with 5 SEO-optimized posts for distribution — competitor comparisons (Mintlify, Docusaurus), AI search, documentation SEO guide
New SEO Optimization page in docs explaining automatic meta tags, JSON-LD, static pages, sitemap, canonical URLs, hreflang, and llms.txt — with compounding ROI timeline
Expanded AI Translations page in docs with sections on why Claude outperforms generic translation tools and how each language version is indexed separately for multilingual SEO