~/portfolio
← back to all posts
★ featured•Aug 17, 2026•6 min read

Why Saved Collections Become Graveyards: Building a Semantic Memory Engine

Why bookmarking tools fail: databases store files while humans remember ideas. How we built an open-source memory engine that understands meaning, fights memory decay, and resurfaces forgotten insights.

#Memory Systems#Semantic Search#AI Infrastructure#Open Source#TypeScript

Imagine you're one of the earliest human beings. The entire planet is wilderness, darkness, and predators. Every single piece of knowledge you gather—which berry is poisonous, which footprints mean danger, which fire ember keeps you warm through the night—is a matter of immediate survival.

If you forget an insight, you die.

So the human brain evolved an extraordinary, subconscious indexing system. It doesn't remember "File #4,821 on shelf B". It remembers associations, metaphors, emotional peaks, and survival urgency. When you see smoke on the horizon, your brain doesn't query the keyword "smoke"; it instantly floods your consciousness with the memory of fire, the heat of the hearth, and the danger of an approaching beast.

Fast forward to today.

We accumulate more external data in a single afternoon than a Paleolithic ancestor encountered in a lifetime. We save 2,000 Instagram reels, bookmark 500 Substack essays, screenshot 300 tweet threads, and download 50 research PDFs.

And what happens to them?

They become digital graveyards.

You save something because in that precise moment, it struck a chord in your intellect. You tell yourself, "I will definitely use this later."

Six months pass. You're in a high-stakes conversation or designing a system architecture, and you vaguely recall: "There was this video where someone explained salary negotiation by comparing it to buying a house."

You open your saved folder. You type "salary negotiation". Nothing. You type "house". You get 40 irrelevant home-tour clips. You scroll through hundreds of thumbnails until your eyes glaze over.

You give up. The memory is dead.


Databases Store Files; Humans Store Ideas

The fundamental failure of modern bookmarking and save-for-later tools is that they treat human memory like dumb file storage.

Storage is a solved problem. Instagram already stores the video. Twitter already stores the tweet. Pocket already stores the HTML.

The real problem is retrieval and decay.

  1. Humans recall by metaphor and analogy, but traditional databases match by exact strings.
  2. Memory decays exponentially without reinforcement, yet software treats every saved item as static and immortal.

I decided to fix this from first principles. Not by building another bloated dashboard with tags and folders, but by building reusable infrastructure: an open-source, framework-agnostic Memory Engine.


The 4 Primitives of a Real Memory Layer

A genuine memory layer doesn't need fifty features. It only needs four fundamental primitives:

[ Raw Messy Content ]
        │
        ▼
 1. Ingest (Strip noise & chunk cleanly)
        │
        ▼
 2. Understand (Map into high-dimensional semantic space)
        │
        ▼
 3. Retrieve (Fuse conceptual meaning with exact keyword recall)
        │
        ▼
 4. Resurface (Track memory decay & bring forgotten ideas back to life)

Here is how each layer works under the hood.


1. Ingestion: Stripping the Noise

Content captured from the wild is messy. Video transcripts are filled with timestamp junk ([00:14], 01:23 -), subtitle artifacts (Speaker 1:), and awkward line breaks.

If you feed raw junk into an AI system, you get junk retrieval out.

Our ingestion pipeline first strips chronological noise while preserving semantic integrity. Then, instead of cutting text arbitrarily at every 500 characters—which inevitably severs ideas in half—it splits hierarchically (Paragraphs → Sentences → Clauses) while maintaining a sliding overlap window.

Context is never decapitated across chunk boundaries.

const normalized = TextNormalizer.normalize(rawTranscript);

2. High-Dimensional Understanding

Instead of relying on tags, we convert each text chunk into a dense numerical fingerprint (a vector embedding).

In this mathematical space, conceptual proximity equals geometric proximity.

"Salary negotiation" and "buying real estate with mutual safety" naturally gravitate toward each other in vector space—even though they share almost zero identical words.


3. Hybrid Retrieval: Why Pure Vector Search Fails

Many modern AI tutorials tell you to throw embeddings into a vector database and call it a day.

Vector search alone is flawed.

If a user searches for an exact term like "Raft consensus paper 2014", a pure vector search might return general papers about distributed consensus while completely missing the exact paper mentioning "Raft". Conversely, pure keyword search fails whenever the user searches for the idea rather than the term.

To solve this, MemoryEngine uses Reciprocal Rank Fusion (RRF):

  • Run a dense semantic search (for ideas and analogies).
  • Run a fast lexical search (for exact names, codes, and terms).
  • Intelligently blend their rank positions together.

The result? 100% Top-1 recall accuracy on ambiguous conceptual queries in our benchmark suite, with sub-millisecond in-memory response times.


4. Resurfacing: The Mathematics of Forgetting

In 1885, German psychologist Hermann Ebbinghaus discovered a predictable law of human consciousness: The Forgetting Curve.

Within 24 hours of learning something, the brain discards roughly 70% of the details. Within 30 days, over 90% is completely gone unless an active recall event resets the curve.

Retention (%)
100% ──┐
 70% ──┼─\  <── Standard Forgetting Curve (90% lost in 30 days)
 20% ──┼───\───────────────────────────────
  0% ──┴───────────────────────────────────
       0d   1d   3d   7d   14d   30d (Time)

Digital bookmarking tools fail because they assume saved information stays fresh forever.

MemoryEngine tracks the decay trajectory of every saved memory. When an item's retention drops below a threshold, the engine flags it for resurfacing based on three things:

  1. How much time has passed (is it about to vanish from your mind?)
  2. Inherent importance (how high was its initial signal?)
  3. Bridge connectivity (does it connect multiple themes you care about?)

Instead of noisy daily pings, it enables applications to construct a Weekly Cognitive Digest—curating high-value ideas that were about to slip away, right at the moment they matter most.


Developer Simplicity: Infrastructure as Craft

True infrastructure should feel effortless to integrate. A developer shouldn't have to manage vector dimensions or write complex mathematical decay equations by hand.

import { MemoryEngine } from "memory-engine";

const memory = new MemoryEngine();

// 1. Ingest any raw transcript, note, or article
await memory.ingest({
  id: "reel_salary_101",
  text: transcript,
  metadata: { source: "podcast", author: "Chris Voss" }
});

// 2. Search by concept or analogy
const results = await memory.search(
  "analogy comparing salary negotiation to buying real estate"
);

// 3. Resurface forgotten ideas before they decay
const digest = await memory.resurface({ decayThreshold: 0.35 });

From Hoarding to Real Cognition

We don't need more apps to hoard files. We need systems that behave like genuine extensions of human cognition.

When software understands the meaning of what you save, connects disparate ideas across time, and resurfaces forgotten insights before they fade, saved collections stop being digital graveyards.

They become a second brain.


MemoryEngine is open source on GitHub.