Commit Graph

8 Commits

Author SHA1 Message Date
Rohit Ghumare 57ceaf45c7 feat(website): add Testimonials section with PH launch-thread quotes
Six verbatim quotes pulled from the Product Hunt launch discussion,
each linked back to the source comment for verification. Quotes
cover the spectrum: concrete use cases (Peter Neyra on product-pivot
tracking, Pranav Prakash on two weeks of production use), framing
endorsements (Alper Tayfur, Mia Taylor on agentmemory's intent
versus storage-only tools), and onboarding feel (Zoe Alexandra).

Section header: "BUILDERS USING AGENTMEMORY" with the title
"IN THE WILD." in the gold accent. 3-column grid above 980px,
2-column at tablet, single-column on mobile. Cards are clickable
and route to the original PH comment thread.

Slotted between Compare and Agents — social proof after the
comparison table, before the agent-list grid. Matches the
existing FeaturedIn aesthetic (charcoal border + iron fill +
gold hover) so the section feels native, not bolted on.

website/lib/generated-meta.json also picked up the v0.9.20 bump +
the two new MCP tools shipped via #498 (memory_commit_lookup,
memory_commits) — clean by-product of `npm run build`.

- website/components/Testimonials.tsx: 6 verbatim quotes + attribution
- website/components/Testimonials.module.css: 3/2/1 grid + card chrome
- website/app/page.tsx: wired between Compare and Agents
- website/lib/generated-meta.json: regenerated against v0.9.20

Site builds clean.
2026-05-18 20:34:04 +01:00
Rohit Ghumare 6f228bd8c0 fix(website): compare section polish (#427)
User caught the section looking bad on the live merge:

1. Title "AGENTMEMORY VS. THE FIELD." was redundant (eyebrow already
   reads VS.) and wrapped ugly with FIELD. dangling on its own line.
   Shortened to "VS. THE FIELD." Eyebrow + title now read together
   as "VS. · VS. THE FIELD." which is still on-brand and fits one
   line at every viewport above 480px.

2. Added `text-wrap: balance` to .section-title globally so titles
   that DO need to wrap break at a balanced point instead of leaving
   orphan words. Affects every section's heading; net win — already
   verified other titles (Features TWELVE THINGS, CommandCenter TWO
   UIs, Agents SIX FIRST-PARTY, etc) render correctly.

3. Comparison NATIVE PLUGINS cell value was "6 (Claude/Codex/
   OpenClaw/Hermes/pi/OpenHuman)" — that's 49 chars stuffed into a
   ~180px grid column, forcing multi-line wrap that looked cramped.
   Cell now reads just "6"; the agent names are already visible in
   the dedicated Agents grid two sections above.

4. Row grid: bumped agentmemory column from 1fr → 1.3fr at the
   expense of the label column (1.6fr → 1.4fr) so the longer cell
   values (95.2%, YES (APACHE-2.0), 2 (Qdrant, Neo4j)) have
   breathing room. Added `word-break: break-word` as a safety net
   for future entries. Padded the row 24px horizontally so cells
   don't kiss the section edge.

Build clean.
2026-05-16 10:43:30 +01:00
Rohit Ghumare f1fbea3c08 feat(website): hero rebuild — npx CTA + inline validation + SSR star count (#425)
Five user-reported issues against agent-memory.dev v0.9.16:

1. AGENT/MEMORY title was clamp(54px, 12vw, 160px) — eating ~half the
   viewport on most desktop widths and forcing FeaturedIn below the
   fold. Reduced to clamp(44px, 9vw, 124px). Mobile-stacked variant
   now clamp(40px, 14vw, 72px) — cleaner.

2. Primary CTA was a generic "START IN 30 SECONDS" button that
   anchored to #install. Replaced with a copyable terminal command —
   `$ npx @agentmemory/agentmemory` rendered as a gold-bordered cell
   with "CLICK TO COPY" affordance. Copy → clipboard, transient
   "COPIED" state. Matches what users actually type.

3. FeaturedIn was a standalone section below the fold. Now inlined
   inside the hero (compact mode — no border, no own padding,
   transparent background) so AlphaSignal / Agentic AI Foundation /
   Trendshift validation lands above the fold.

4. Star count was missing from the hero CTA button. The component
   only fetched client-side from unauthenticated github.com/api which
   is rate-limited to ~60 req/hr/IP — first paint had no count, often
   forever on mobile (which is what the user screenshot showed).
   Hero is now an async server component; calls lib/github.ts
   fetchRepoStats (same path Nav already uses), passes the SSR'd
   count into GitHubStarButton via new optional initialStars prop.
   Client-side refetch still fires in useEffect as a best-effort
   refresh.

5. Mobile layout was unverified. Tightened all clamp() values,
   added explicit @media (max-width: 760px) breakpoint that drops
   padding, stacks the title, and reduces the chip size. The new
   HeroNpxCommand has its own mobile breakpoint at 640px that hides
   the "CLICK TO COPY" hint and stretches to full width.

CTA stacks vertically now: copyable command (primary, gold border)
on row 1, then "SEE IT MOVE" + STAR-with-count on row 2. FeaturedIn
strip sits below row 2 as part of the above-the-fold validation.

Build clean. No new deps.
2026-05-16 10:09:14 +01:00
Rohit Ghumare 9ba346789b docs(website): refresh agent-memory.dev for v0.9.15+ (#415)
* docs(website): refresh agent-memory.dev for v0.9.15+ DevEx surface

Drift accumulated across the website from v0.9.0 through v0.9.15.
Each section caught up:

CommandCenter:
- "iii CONSOLE · OPTIONAL" → "iii CONSOLE · FIRST-CLASS". User
  pushback: the console gives engine-level visibility (workers,
  functions, queues, traces) and is now installed inline by the
  agentmemory CLI on first run from v0.9.16. Not optional.
- Bullet "49 HTTP TRIGGERS" → "107 HTTP ENDPOINTS" to match
  generated-meta.json restEndpoints count. Dropped the stale "33
  REGISTERED FUNCTIONS" subhead.
- Section lede now mentions both UIs are first-class + inline-
  installed.

Compare:
- MCP TOOLS our column 44 → 51 (matches generated-meta.json).
- New REST ENDPOINTS row (107) — competitors don't ship a REST
  shape per their docs, so dashes for mem0/letta/cognee.
- New NATIVE PLUGINS row listing the 6 first-party agents +
  Cursor/Gemini CLI.

Agents:
- FEATURED expanded from 4 to 6 (added pi + OpenHuman). Codex CLI
  pitch updated to "6 hooks + MCP · native plugin" reflecting the
  hooks addition in PR #383.
- Section title "FOUR FIRST-PARTY" → "SIX FIRST-PARTY".
- Section lede now mentions `agentmemory connect <agent>`
  (shipped in v0.9.15 PR #402).

Hero:
- "START IN 60 SECONDS" CTA → "START IN 30 SECONDS". Cold install
  + engine spawn measured 8-12s on v0.9.15 with the native binary
  path; 60s was the v0.9.0-era Docker-first claim.

generated-meta.json regenerated by the build (auto-derive rule).
Website build clean.

* chore(website): refresh generated-meta timestamp

* feat(website): AS FEATURED IN bar — AlphaSignal, AAIF, Trendshift

Wedges between Hero and Stats. Three text-cells in a 3-col row (1-col
on mobile), each links to the source article. Matches the existing
brutalist mono aesthetic — no logo files, no marquee animation, no
JS. Border + small ↗ glyph on each card; gold border on hover.

Sources chosen for brand authority + independence:
- AlphaSignal (180K technical subscribers) →
  alphasignalai.substack.com/p/how-agentmemory-works-and-how-to
- Agentic AI Foundation (Linux Foundation backed) → aaif.io
- Trendshift "NEW 2026 · Position #19" → trendshift.io/repositories/25123

Static, server-rendered, no client bundle impact.

* feat(website): real logos in AS FEATURED IN bar

Replaced text-only treatment with actual brand marks:

- AlphaSignal — github.com/Alpha-Signal org avatar (verified)
  https://avatars.githubusercontent.com/u/64016073?s=200&v=4
- Agentic AI Foundation — aaif.io's own favicon PNG (verified by
  fetching their site)
- Trendshift — their official badge endpoint
  trendshift.io/api/badge/repositories/25123 — bakes the repo's live
  star + position count into the image, so the cell tracks the
  Trendshift state automatically

Layout split: AlphaSignal + AAIF render logo-left / text-right with
↗ arrow. Trendshift renders centered with the full badge image (it's
already a wide brand mark with the rank + stars baked in, so making
it text-bound looks cramped).

next.config.ts adds the three new image hosts to remotePatterns
(aaif.io, trendshift.io, raw.githubusercontent.com). Existing
unoptimized={true} per image so we don't proxy through Vercel's
optimizer.

Build clean. No new deps.

* feat(website): use real AAIF wordmark logo + center 3-card grid

User pushed the actual Agentic AI Foundation wordmark — 838x203 PNG
on transparent background, black artwork. Dropped the favicon and
self-hosted the wordmark at /featured/aaif-logo.png so the brand
reads cleanly on the dark cell.

Rendered as a badge-style cell (centered, wide-form) like Trendshift,
with a `filter: invert(1) brightness(1.05)` so the black artwork
inverts to white-on-dark and matches the site palette without
shipping a second asset.

Grid template balanced: 1fr / 1.3fr / 1fr — gives AAIF the extra
horizontal room its wordmark needs while keeping AlphaSignal and
Trendshift consistent on either side. Max width bumped to 1000px.

`badgeImg` got `object-fit: contain` and an explicit `max-height` so
the AAIF + Trendshift badges sit at the same vertical baseline.

* fix(website): coderabbit PR #415 — meta drift + a11y + dead CSS

Five findings, all valid against the branch:

1. CommandCenter line 48 hardcoded "107 HTTP ENDPOINTS" but
   website/lib/generated-meta.json reports restEndpoints: 121.
   Bumped to 121. The meta file is the source of truth (auto-derived
   from src/triggers/api.ts at build via scripts/derive-meta.js).

2. Compare.tsx REST ENDPOINTS row same drift: "107" → "121".

3. Compare.tsx NATIVE PLUGINS row claimed "6" in the label but the
   parenthesized list had 8 names (Cursor + Gemini included). Per
   README: those two are MCP-server tier, not native plugin. List
   trimmed to the actual 6 native-plugin agents:
   Claude/Codex/OpenClaw/Hermes/pi/OpenHuman.

4. FeaturedIn.module.css .cell had :hover only — keyboard users
   tabbing through saw no focus indicator (WCAG 2.4.7). Added
   :focus-visible with gold border + outline.

5. .cellBadge declared `grid-template-columns: none` while using
   display: flex. Dead property removed.
2026-05-15 19:23:45 +01:00
Rohit Ghumare 197aa8d0e8 fix(website): mobile overflow + add OG/Twitter preview images
Mobile (375px) had ~55px horizontal scroll caused by grid tracks
defaulting to min-content across nowrap text in Install, AgentInstall,
and CommandCenter sections. Replace implicit/`1fr` tracks with
`minmax(0, 1fr)` so tracks can shrink below their content and let
`overflow: hidden` / `text-overflow: ellipsis` actually clip.

Also tightens padding, font-size, and letter-spacing at <=640px for
Install boxes, AgentInstall snippet head/code/copy row, CommandCenter
tabs and launch strip, and Stats tiles so dense uppercase content stops
crowding itself at mobile widths.

Adds app/opengraph-image.tsx and app/twitter-image.tsx using
next/og ImageResponse, statically prerendered at build (no edge
runtime) so socials get a real 1200x630 preview instead of the blank
card the site was shipping before.
2026-04-19 00:30:22 +01:00
Rohit Ghumare b99c9ec5d6 feat(website): derive version + MCP/hook/REST counts from source at build
Website chip + stats + terminal + features were hardcoded to 0.8.13,
44, 12, 49 — they drifted every release. Now every one of them is
read at build time from the real source of truth:

- lib/meta.ts (server-only) reads package.json, src/triggers/api.ts
  (api_path count), src/mcp/tools-registry.ts (memory_* name count),
  and the HookType union in src/types.ts.
- Hero chip, Stats, LiveTerminal, and Features all consume the
  computed counts via props; no more literal strings in component
  bodies.
- Fallback defaults (44 / 12 / 49) kick in only if the source files
  cannot be read, so a monorepo re-root still boots.

Result: cutting a release bumps the website hero to v<new>
automatically, and any new MCP tool or REST endpoint raises the
displayed count without an edit.

next build stays clean — single static page prerendered.
2026-04-18 20:19:33 +01:00
Rohit Ghumare 3338f9d039 feat(website): live GitHub stars, logo-based agent showcase, simpler MCP install
Nav
- Replace overlay hamburger with a solid horizontal bar.
- Use the real agentmemory icon from assets/icon.svg as the brand mark.
- Single GitHub pill: GH icon + GITHUB label + gold star + live count,
  the entire pill links to the repo. No more separate icon button.
- Server-rendered count pulled from api.github.com/repos/... with
  revalidate 3600. Falls back to 0 on rate limit.
- Mobile (<720px) collapses to a hamburger sheet with sections + links.

Command Center (new)
- Tabbed section showing the shipped viewer (:3113), the iii console
  (:3114), the raw KV state browser, and OTel traces.
- Real screenshots vendored into public/ (dashboard.png,
  states.png, traces-waterfall.png, demo.gif).
- Each tab ships with a description, 4-5 capability bullets, and a
  copy-ready launch command.

Features (new)
- 12-tile grid covering 12 auto-hooks, 44 MCP tools, 49 REST
  endpoints, BM25+vector+graph recall, auto consolidation, JSONL
  replay, knowledge graph extraction, mesh federation, Obsidian
  export, 5 LLM providers, OTel observability, 0 external DBs.

Agents
- Replaced the flat tile grid with an agents.md-style two-tier layout.
- Top row: 4 featured first-party integrations (Claude Code,
  OpenClaw, Hermes, Codex CLI) as big cards with real logos, brand
  accent colors, and integration pitch.
- Bottom row: CSS keyframe marquee of every other supported agent
  (Claude Desktop, Cursor, Gemini CLI, OpenCode, Cline, Roo,
  Kilo, Goose, Aider, Windsurf) with real logos + brand borders on
  hover. Pauses on hover. Edges fade into the page. Respects
  prefers-reduced-motion.

Install · step 3 · MCP wiring
- Dropped the 10-tab toggle and the Cursor-only gold hero button.
- Left column: equal-weight agent chips in a 2x3 grid — Cursor,
  VS Code, Claude Code, Claude Desktop, Gemini CLI, Codex CLI.
  Click copies the right snippet (JSON / CLI command / TOML) or
  fires the one-click deeplink where one exists.
- Right column: UNIVERSAL MCP JSON — paste-ready block that works
  for Claude Desktop, Cursor, Cline, Windsurf, Gemini CLI, OpenCode.
- Expando reveals Hermes, OpenClaw, and Codex TOML shapes.

Infrastructure
- lib/github.ts server-only fetch for repo stats.
- lib/format.ts (client-safe) formatCompact.
- next.config.ts: turbopack.root pinned to silence workspace warning,
  images.remotePatterns for github.com / GH avatars / Cursor /
  Windsurf logos.
- layout.tsx: icon metadata wired to /icon.svg.

Build: next build clean, 3 routes prerendered static, 0 vulns.
2026-04-18 19:50:59 +01:00
Rohit Ghumare 7193361b67 refactor(website): rebuild as Next.js 16 App Router app for Vercel
Replaces the vanilla HTML/CSS/JS landing with a production Next.js 16.2
app router build. Deploy target is Vercel; root directory should be
set to 'website/' in the Vercel project settings.

Stack:
- Next.js 16.2 + React 19 + TypeScript 5.7
- next/font for Archivo + JetBrains Mono (no external fetch)
- CSS Modules per component + one globals.css for tokens
- No Tailwind, no bundler config, no client-side routing

Component layout:
- app/layout.tsx           — <html>, font vars, metadata, viewport
- app/page.tsx             — composes all landing sections
- app/globals.css          — design tokens + shared utilities
- components/Nav.tsx       — hexagonal bull mark + menu
- components/Hero.tsx      — title, lede, CTAs
- components/MemoryGraph.tsx   — client canvas animation + hex pause
- components/ScrollProgress.tsx — fixed top gold progress rail
- components/Stats.tsx     — counter-up on first intersect
- components/Primitives.tsx — three cards with 3D mouse tilt
- components/LiveTerminal.tsx  — typewriter memory.recall demo
- components/Compare.tsx   — vs Mem0/Letta/Cognee table
- components/Agents.tsx    — supported-agents grid
- components/Install.tsx   — click-to-copy npm + console boxes
- components/Footer.tsx    — source / changelog / license links

Interactive elements are "use client" islands; static sections render
on the server. prefers-reduced-motion gated throughout.

Upgraded Next from 15.1.3 to 16.2.4 to clear CVE-2025-66478 during
setup. next build completes clean, all 3 routes prerender static.

Deploy:
  1. Import repo on Vercel, set Root Directory = website/
  2. Or: cd website && npx vercel
2026-04-18 19:15:11 +01:00