From 3ca3660fa6fa03dbd0004194c187d2db73846744 Mon Sep 17 00:00:00 2001 From: bm-clawd Date: Thu, 26 Feb 2026 13:58:30 -0600 Subject: [PATCH 1/2] feat: add sitemap.xml and robots.txt for SEO - Add @nuxtjs/sitemap module (auto-generates from all routes) - Add robots.txt with sitemap reference - site.url already configured, sitemap picks it up automatically Closes #11 --- nuxt.config.ts | 1 + package-lock.json | 96 ++++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + public/robots.txt | 4 ++ 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 public/robots.txt diff --git a/nuxt.config.ts b/nuxt.config.ts index a465f54..4d9eab6 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,5 +1,6 @@ export default defineNuxtConfig({ extends: ['docus'], + modules: ['@nuxtjs/sitemap'], compatibilityDate: '2025-07-15', app: { head: { diff --git a/package-lock.json b/package-lock.json index 612880a..d5a82d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,6 +6,7 @@ "": { "name": "basic-memory-docs", "dependencies": { + "@nuxtjs/sitemap": "^7.6.0", "beautiful-mermaid": "^0.1.3", "better-sqlite3": "^12.5.0", "docus": "latest", @@ -2569,8 +2570,9 @@ "version": "13.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", - "extraneous": true, "license": "MIT", + "optional": true, + "peer": true, "engines": { "node": ">=18" } @@ -3920,6 +3922,55 @@ } } }, + "node_modules/@nuxtjs/sitemap": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/sitemap/-/sitemap-7.6.0.tgz", + "integrity": "sha512-JuWwAFn9MDHWFO5C7lpV6DS86ZIrJItGfzCK1kN9WvgvDmTgal3xbfGCADmAaCWOVl2+dcPGHH6BCypQvUX0aQ==", + "license": "MIT", + "dependencies": { + "@nuxt/devtools-kit": "^3.1.1", + "@nuxt/kit": "^4.3.0", + "chalk": "^5.6.2", + "defu": "^6.1.4", + "fast-xml-parser": "^5.3.3", + "nuxt-site-config": "^3.2.18", + "ofetch": "^1.5.1", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "radix3": "^1.1.2", + "semver": "^7.7.3", + "sirv": "^3.0.2", + "std-env": "^3.10.0", + "ufo": "^1.6.3", + "ultrahtml": "^1.6.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "zod": ">=3" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/@nuxtjs/sitemap/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/@oxc-minify/binding-android-arm-eabi": { "version": "0.110.0", "resolved": "https://registry.npmjs.org/@oxc-minify/binding-android-arm-eabi/-/binding-android-arm-eabi-0.110.0.tgz", @@ -10802,6 +10853,37 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-builder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz", + "integrity": "sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/fast-xml-parser": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.4.1.tgz", + "integrity": "sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "fast-xml-builder": "^1.0.0", + "strnum": "^2.1.2" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -19147,6 +19229,18 @@ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", "license": "MIT" }, + "node_modules/strnum": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", + "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/structured-clone-es": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/structured-clone-es/-/structured-clone-es-1.0.0.tgz", diff --git a/package.json b/package.json index d6b100d..bb4829e 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "start": "node .output/server/index.mjs" }, "dependencies": { + "@nuxtjs/sitemap": "^7.6.0", "beautiful-mermaid": "^0.1.3", "better-sqlite3": "^12.5.0", "docus": "latest", diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..ce27167 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://docs.basicmemory.com/sitemap.xml From a48eb3c0d5f762d5da723b60103adafb3bc4c595 Mon Sep 17 00:00:00 2001 From: bm-clawd Date: Thu, 26 Feb 2026 14:20:52 -0600 Subject: [PATCH 2/2] seo: improve integration page titles, descriptions, and FAQ sections Co-Authored-By: Claude Opus 4.6 --- content/6.integrations/2.claude-code.md | 30 ++++++++++++++++++++++-- content/6.integrations/5.codex.md | 31 +++++++++++++++++++++++-- content/6.integrations/6.cursor.md | 31 +++++++++++++++++++++++-- 3 files changed, 86 insertions(+), 6 deletions(-) diff --git a/content/6.integrations/2.claude-code.md b/content/6.integrations/2.claude-code.md index 29a2c5a..805cb18 100644 --- a/content/6.integrations/2.claude-code.md +++ b/content/6.integrations/2.claude-code.md @@ -1,10 +1,19 @@ --- -title: Claude Code -description: Set up Basic Memory with Claude Code for persistent development knowledge and enhanced coding sessions +title: "Add Memory to Claude Code — Persistent Context Across Sessions" +description: "Give Claude Code persistent memory with Basic Memory. Your AI remembers decisions, code patterns, and project context across every session." --- Claude Code provides native support for Basic Memory through the Model Context Protocol (MCP), enabling persistent context across development sessions and building comprehensive coding knowledge. +## Why Add Memory to Claude Code? + +Claude Code is powerful, but every new session starts from zero. Basic Memory changes that: + +- **Persistent context** — Your AI remembers project architecture, past decisions, and coding patterns +- **Cross-session knowledge** — Pick up exactly where you left off, no re-explaining +- **Searchable history** — Find any past conversation, decision, or code review instantly +- **Plain text you own** — Everything stored as Markdown files you can read, edit, and version control + ## Cloud Setup ::steps @@ -142,6 +151,23 @@ Claude: [References existing documentation to provide contextual guidance] --- +## Frequently Asked Questions + +### Does Claude Code have built-in memory? +Claude Code doesn't have persistent memory between sessions by default. Basic Memory adds this capability through MCP, giving Claude Code access to your knowledge base across every session. + +### How do I add memory to Claude Code? +Install Basic Memory and configure it as an MCP server: `claude mcp add basic-memory basic-memory mcp`. See the setup guide above for detailed instructions. + +### Does Basic Memory work with Claude Code's CLAUDE.md? +Yes! Basic Memory complements CLAUDE.md by storing detailed knowledge outside the context window. CLAUDE.md handles project instructions; Basic Memory handles everything else — decisions, context, history. + +--- + +::note +**Basic Memory also works with:** [Cursor](/integrations/cursor) · [OpenAI Codex](/integrations/codex) · [Claude Desktop](/integrations/claude-desktop) · [VS Code](/integrations/vscode) · [Obsidian](/integrations/obsidian) +:: + ## Next Steps :::card-group diff --git a/content/6.integrations/5.codex.md b/content/6.integrations/5.codex.md index 16b82b0..4696592 100644 --- a/content/6.integrations/5.codex.md +++ b/content/6.integrations/5.codex.md @@ -1,9 +1,19 @@ --- -title: OpenAI Codex -description: Set up Basic Memory with OpenAI Codex for persistent development knowledge and enhanced coding sessions +title: "Add Memory to OpenAI Codex — Persistent Development Context" +description: "Add persistent memory to OpenAI Codex with Basic Memory. Keep development context, decisions, and code knowledge across every coding session." --- + OpenAI Codex provides native support for Basic Memory through the Model Context Protocol (MCP), enabling persistent context across development sessions and building comprehensive coding knowledge. +## Why Add Memory to Codex? + +Codex is a powerful coding agent, but it starts fresh every time. Basic Memory gives it persistent context: + +- **Decisions that stick** — Architecture choices, API designs, and coding patterns are remembered automatically +- **No more re-explaining** — Pick up where you left off with full project context intact +- **Cross-tool knowledge** — Notes created in Codex are available in Claude Code, Cursor, or any MCP client +- **Your files, your control** — Everything stored as plain Markdown you can read, edit, and version control + ## Setup ### Video Tutorial @@ -165,6 +175,23 @@ If MCP isn't working, you can still use Basic Memory: - **Manual Context** — Copy content from Basic Memory into conversations - **Parallel Usage** — Use Claude Desktop or other MCP clients alongside Codex. With Basic Memory they can see the same notes and share context. +## Frequently Asked Questions + +### Does Codex have persistent memory? +OpenAI Codex doesn't retain memory between sessions by default. Basic Memory adds persistent, searchable context through MCP integration, so Codex can access your full project knowledge every time. + +### How do I add memory to Codex? +Run `codex mcp add basic-memory bash -c "uvx basic-memory mcp"` to configure Basic Memory as an MCP server. See the setup guide above for detailed instructions. + +### Can I share notes between Codex and other AI tools? +Yes! Basic Memory uses a universal knowledge format. Notes created in Codex are immediately available in Claude Code, Cursor, Claude Desktop, or any MCP-compatible client. + +--- + +::note +**Basic Memory also works with:** [Claude Code](/integrations/claude-code) · [Cursor](/integrations/cursor) · [Claude Desktop](/integrations/claude-desktop) · [VS Code](/integrations/vscode) · [Obsidian](/integrations/obsidian) +:: + ## Next Steps :::card-group diff --git a/content/6.integrations/6.cursor.md b/content/6.integrations/6.cursor.md index 6b03eda..082b980 100644 --- a/content/6.integrations/6.cursor.md +++ b/content/6.integrations/6.cursor.md @@ -1,9 +1,19 @@ --- -title: Cursor -description: Set up Basic Memory with Cursor for AI-powered development with persistent memory +title: "Add Persistent Memory to Cursor — Context That Survives Sessions" +description: "Add persistent memory to Cursor with Basic Memory. Your AI assistant remembers your codebase, decisions, and context between sessions." --- + Cursor's AI-powered development environment integrates natively with Basic Memory through the Model Context Protocol (MCP), enabling persistent context across coding sessions. +## Why Add Persistent Memory to Cursor? + +Cursor's AI features are powerful, but context resets with every new session. Basic Memory gives Cursor a long-term memory: + +- **Project knowledge that persists** — Architecture decisions, coding patterns, and conventions carry forward automatically +- **Richer context than built-in memories** — Full notes with semantic connections, not just short preference strings +- **Searchable across sessions** — Instantly find any past decision, discussion, or code insight +- **Markdown files you control** — Your knowledge lives as plain text, editable in Cursor itself + ## Cloud Setup Basic Memory Cloud provides hosted MCP access with no local installation required. @@ -151,6 +161,23 @@ If MCP setup doesn't work immediately, you can also: - **CLI Integration** — Use Basic Memory CLI tools from Cursor's integrated terminal - **Parallel Usage** — Use Claude Desktop alongside Cursor for knowledge management +## Frequently Asked Questions + +### Does Cursor have memory? +Cursor has a built-in "Memories" feature for storing short preferences, but it's limited to simple rules. Basic Memory provides full knowledge management — searchable notes, semantic connections, and rich context that grows with your project. + +### How do I add persistent memory to Cursor? +Configure Basic Memory as an MCP server in Cursor's settings. Go to **Settings → Developer → Edit Config**, add the MCP configuration, and restart Cursor. See the setup guide above for detailed instructions. + +### Can I use Basic Memory and Cursor's built-in memories together? +Yes. Cursor's built-in memories handle quick preferences and rules. Basic Memory handles everything deeper — architecture decisions, project history, detailed technical context, and cross-session knowledge. + +--- + +::note +**Basic Memory also works with:** [Claude Code](/integrations/claude-code) · [OpenAI Codex](/integrations/codex) · [Claude Desktop](/integrations/claude-desktop) · [VS Code](/integrations/vscode) · [Obsidian](/integrations/obsidian) +:: + ## Next Steps :::card-group