Skip to content

SEO + conversion overhaul for website and README#3

Merged
jayzeng merged 7 commits into
mainfrom
seo/website-and-readme
Jun 20, 2026
Merged

SEO + conversion overhaul for website and README#3
jayzeng merged 7 commits into
mainfrom
seo/website-and-readme

Conversation

@jayzeng

@jayzeng jayzeng commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Why

The project has a website but nothing linked to it (repo homepage pointed at #readme), and the site never explained what the library does or why it's different. This makes the project hard to discover and hard to evaluate.

What changed

Discoverability

  • Repo homepage now points to the live Pages site (set via API)
  • docs/robots.txt + docs/sitemap.xml for indexing
  • Open Graph + Twitter card + canonical + JSON-LD SoftwareApplication metadata — wires up the existing (previously unused) social-preview.png
  • README surfaces the site via a website badge + CTA nav line

Conversion (website messaging)

  • Concrete value-prop hero copy (names the memory types + local-first markdown angle)
  • "Why agentmemory?" benefit grid (6 cards)
  • "How it's different" comparison table vs. hosted memory SaaS and a single CLAUDE.md
  • "See it in action" — sample MEMORY.md + a real search recall
  • Live npm/downloads/stars/license badges
  • Removed leftover "extension" framing

Correctness/polish (README)

  • Fixed changelog 0.5.00.4.12, package-name references (myagentmemory), and npm view target
  • Fixed code-block alignment (file-layout comments, architecture diagram box)

Deploy note

The deploy-pages workflow runs on push to main, so the site updates once this merges.

🤖 Generated with Claude Code

jayzeng and others added 5 commits June 19, 2026 23:08
postinstall ran `git config core.hooksPath .githooks` unconditionally, so
installing agentmemory as a dependency repointed the *consumer's* repo at a
.githooks directory that isn't shipped (it's absent from the package.json
"files" allowlist), silently breaking their commits. Gate the hook setup to a
real source checkout and scope `git config` to packageRoot via cwd.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The publish workflow went straight from `npm ci` to `npm publish` with no
verification. Require the v* tag to match package.json version (and manual
runs to dispatch from a release tag), and run lint + build + tests first.
Add setup-bun since prepack builds the CLI with bun.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The test job was leftover from pi-memory: it set PI_E2E_PROVIDER/OpenAI env
and only ran `npm test` when OPENAI_API_KEY was present, else skipped. But
agentmemory's tests are the no-key bun suites, so they never ran in CI. Run
test:unit and test:cli on bun instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`agent-memory status --probe` runs a tiny semantic query and checks for qmd's
"need embeddings" warning to confirm semantic/deep search is actually usable,
beyond the cheap pending-embed count. Opt-in because it costs a real qmd query
and a possible model load; default status stays sub-second.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Point repo homepage to the live GitHub Pages site (was orphaned)
- Website: add value-prop hero copy, "Why agentmemory" benefit grid,
  "How it's different" comparison table, and a "See it in action" example
- Website: add Open Graph, Twitter card, canonical, and JSON-LD
  SoftwareApplication metadata (wires up the existing social-preview.png)
- Website: drop leftover "extension" framing; add live npm/stars badges
- Add docs/robots.txt and docs/sitemap.xml for indexing
- README: surface the website via badge + CTA nav, fix changelog/package
  naming and code-block alignment

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 75b3dfff95

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/core.ts Outdated
Comment on lines +1185 to +1188
const { stderr } = await Promise.race([
runQmdSearch("semantic", "memory", 1),
new Promise<never>((_, reject) => {
timer = setTimeout(() => reject(new Error("timeout")), 4_000);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Kill the semantic probe when the timeout fires

When agent-memory status --probe runs in an environment where the first semantic qmd query is slow or starts a model download, this Promise.race reports unknown after 4 seconds but leaves the runQmdSearch child process alive until its own 60-second timeout or completion. Because that child still holds the event loop open, the CLI can appear to hang even though the new status text says the probe is bounded; the probe needs to cancel/kill the underlying command or run it with the same short timeout.

Useful? React with 👍 / 👎.

Comment thread docs/index.html Outdated
<a class="btn btn-primary" href="https://github.com/jayzeng/agentmemory#installation">Get Started</a>
<a class="btn btn-secondary" href="https://github.com/jayzeng/agentmemory">View on GitHub</a>
</div>
<div class="hero-badges" aria-hidden="true">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don’t hide focusable badge links from assistive tech

On the landing page, this aria-hidden container includes the npm/downloads/GitHub badge anchors immediately below it, so keyboard users can tab to links that screen readers will not announce. If these badges are decorative, remove the anchors from the tab order; if the links are useful, remove aria-hidden from the wrapper.

Useful? React with 👍 / 👎.

jayzeng and others added 2 commits June 19, 2026 23:27
The install-skills tests created only the .claude/.codex directories and
relied on detection falling back to `command_exists claude`/`codex`. That
passed locally (binaries on PATH) but failed in CI where neither binary
exists. Write the marker files (settings.json, config.toml) the tests
implicitly depend on so detection no longer needs the binaries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- probeEmbeddings: abort the underlying qmd child via AbortSignal when the
  4s timeout fires, so it no longer holds the event loop open until its own
  60s timeout and hangs the CLI.
- docs/index.html: drop aria-hidden from the hero badge wrapper; the badges
  are real focusable links with alt text and should be announced to AT.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jayzeng jayzeng merged commit d36fcd3 into main Jun 20, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant