> ## Documentation Index
> Fetch the complete documentation index at: https://supermemory.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Supermemory

> The full loop: authenticate, put context in, get it back out, keep it correct.

export const JourneyItem = ({icon, title, href}) => <a href={href} className="group flex items-center gap-2.5 rounded-lg border border-gray-200 dark:border-zinc-800 bg-white dark:bg-zinc-900/40 px-3.5 py-2.5 no-underline text-[13px] font-medium text-gray-700 dark:text-zinc-300 transition-colors duration-150 hover:border-gray-300 dark:hover:border-zinc-600 hover:bg-gray-50 dark:hover:bg-zinc-800/60 hover:text-gray-900 dark:hover:text-zinc-50">
    {icon && <Icon icon={icon} className="h-3.5 w-3.5 shrink-0 text-gray-400 dark:text-zinc-500 group-hover:text-gray-600 dark:group-hover:text-zinc-300" />}
    {title}
  </a>;

export const JourneyStep = ({number, title, children}) => <div className="relative pl-10">
    <div className="absolute left-0 top-0 flex h-7 w-7 items-center justify-center rounded-full border border-gray-200 dark:border-zinc-700 bg-gray-50 dark:bg-zinc-900 text-sm font-semibold text-gray-700 dark:text-zinc-300">
      {number}
    </div>
    <h3 className="mb-3 text-base font-semibold text-gray-900 dark:text-zinc-50">
      {title}
    </h3>
    <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2.5">
      {children}
    </div>
  </div>;

export const Journey = ({children}) => <div className="not-prose relative my-8 flex flex-col gap-9">
    <div className="absolute left-[13px] top-3 bottom-3 w-px bg-gray-200 dark:bg-zinc-800" />
    {children}
  </div>;

Everything in this section is one of four steps. Same loop whether you're building personal memory, RAG over docs, or both on the same `containerTag`.

<Journey>
  <JourneyStep number="1" title="Get started">
    <JourneyItem icon="play" title="Quickstart" href="/docs/quickstart" />

    <JourneyItem icon="key" title="Get an API key" href="/docs/authentication" />

    <JourneyItem icon="book-open" title="API Reference" href="/docs/api-reference/overview" />
  </JourneyStep>

  <JourneyStep number="2" title="Ingest — get content in">
    <JourneyItem icon="plus" title="Add memories & documents" href="/docs/ingestion/add-memories" />

    <JourneyItem icon="files" title="Document operations" href="/docs/ingestion/document-operations" />

    <JourneyItem icon="plug" title="Connectors" href="/docs/connectors/overview" />

    <JourneyItem icon="file-stack" title="Content types" href="/docs/concepts/content-types" />

    <JourneyItem icon="terminal" title="Ingest API reference" href="/docs/api-reference/ingest" />
  </JourneyStep>

  <JourneyStep number="3" title="Retrieve — get context back out">
    <JourneyItem icon="search" title="Search" href="/docs/recall/search" />

    <JourneyItem icon="user" title="User profiles" href="/docs/recall/user-profiles" />

    <JourneyItem icon="database" title="SMFS" href="/docs/smfs/overview" />

    <JourneyItem icon="terminal" title="Recall API reference" href="/docs/api-reference/search" />
  </JourneyStep>

  <JourneyStep number="4" title="Manage">
    <JourneyItem icon="eraser" title="CRUD & forgetting" href="/docs/recall/memory-operations" />

    <JourneyItem icon="list-checks" title="Review inferred memories" href="/docs/recall/memory-review" />

    <JourneyItem icon="settings-2" title="Customizing behavior" href="/docs/concepts/customization" />

    <JourneyItem icon="gavel" title="Rules of thumb" href="/docs/concepts/rules" />

    <JourneyItem icon="terminal" title="Memories API reference" href="/docs/api-reference/memories" />

    <JourneyItem icon="flask-conical" title="Benchmark it yourself" href="/docs/memorybench/overview" />
  </JourneyStep>
</Journey>

Raw input becomes **memories** (the knowledge graph) and/or indexed **document chunks** (for RAG) automatically — see [how it works](/docs/concepts/how-it-works). You don't choose one or the other; both build from the same write. Retrieval gives you three ways to read that same pool back — see [Memory vs RAG](/docs/concepts/memory-vs-rag) if you're not sure which one fits.

## Where next

<CardGroup cols={2}>
  <Card title="Quickstart" icon="play" href="/docs/quickstart">
    Walk the whole loop end to end with one working example.
  </Card>

  <Card title="How it works" icon="cpu" href="/docs/concepts/how-it-works">
    What happens between `add()` and a memory showing up in search.
  </Card>

  <Card title="Container tags" icon="folder" href="/docs/concepts/container-tags">
    The isolation boundary every ingest and retrieve call is scoped to.
  </Card>

  <Card title="Memory vs RAG" icon="scale" href="/docs/concepts/memory-vs-rag">
    When to reach for search, profiles, or both.
  </Card>

  <Card title="Benchmarking" icon="flask-conical" href="/docs/memorybench/overview">
    Run standardized, reproducible evals against Supermemory and other providers — including your own.
  </Card>
</CardGroup>
