Mem

mem.aicontributed by Samuele Ongaro

ALMOST

A weekend of work, and real gaps remain.

Notes with retrieval driven by a language model: you write without organising, and it surfaces related notes and answers questions across everything you have written.

Promptfree, for everyone, and the only version there is
Build me notes with retrieval that replace Mem — and be honest about why this is ALMOST.

Embedding notes and searching them is a weekend now. **Retrieval quality is not.** The difference between a tool that surfaces the note you needed and one that surfaces three irrelevant ones is tuning against real usage, and with one user's notes you have very little to tune against. Build it, use it, and be prepared for the suggestions to be mediocre for a while — that is the honest expectation.

STACK
- Node 20+ with Fastify, server-rendered HTML
- SQLite through better-sqlite3, WAL mode, with FTS5 and a vector extension — or vectors in a table with a brute-force scan, which is fast enough for tens of thousands of notes and far simpler
- A local embedding model through ONNX Runtime, or an API if you accept sending your notes to somebody else
- Caddy in front

THE DATA MODEL
- notes: id, title, body_md, created_at, updated_at, source, archived_at
- chunks: id, note_id, position, text, token_count, embedding_blob, embedded_at, model_version — notes are embedded in chunks, because a whole note averaged into one vector loses everything specific
- links: from_note_id, to_note_id, kind — explicit and inferred, kept separate
- entities: id, kind, name; note_entities — people, projects and dates extracted, which is what makes 'everything about Anna' work without tagging
- queries: id, text, result_ids_json, clicked_id, at — what was asked, what was shown, what was opened. This is your only tuning signal, so record it from the first day
- Re-embedding on a model change is a background job over chunks, with the model version stored so old and new never mix

RETRIEVAL, WHICH IS THE PRODUCT
- Hybrid always: full-text search and vector similarity, combined. Neither alone is good enough — full text misses paraphrase, vectors miss exact names and identifiers
- Combine with reciprocal rank fusion rather than a weighted score, because the two produce incomparable numbers
- Then re-rank the top results by recency, by whether the note was opened recently, and by explicit links. Those cheap signals do more than a better model
- Chunk with overlap, and keep the chunk small enough to be specific and large enough to be meaningful — a few hundred tokens is the usual answer
- Show why a result matched: the matching passage, highlighted. A suggestion with no visible reason is a suggestion nobody trusts

ANSWERING QUESTIONS
- Retrieve, then answer from what was retrieved, with the sources shown and linked
- Never answer from the model's own knowledge. If nothing relevant was retrieved, say so — a confident answer assembled from nothing is the failure that destroys trust in this category
- Quote the passages used. The citation is more valuable than the summary
- If you use a hosted model, say so plainly in the README and in the interface: your notes are being sent somewhere. If that is unacceptable, run a local model and accept it is weaker

SURFACING WITHOUT ASKING
- While writing, show related notes in a sidebar, retrieved from what has been typed so far
- On a daily view, resurface notes from this day in previous years and notes not opened in a long time
- Both are cheap and both are the reason to have built this rather than a folder

WRITING
- Markdown, autosave, no organisation required. That is the premise: write, and let retrieval do the filing
- Tags and links available for anybody who wants them, never required
- Import from the common note formats

PRIVACY
- The whole database is what you think about. Encrypt at rest, require authentication, and expose nothing you do not need
- No analytics in the application. Not one event
- Export everything as Markdown in one command

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, SESSION_SECRET, MODEL_PATH, EMBEDDING_MODEL
- Migrations on boot, each once; nightly backup off the machine
- Health endpoint reporting the embedding queue and the count of unembedded chunks

WHAT MATTERS MOST
Hybrid retrieval and recording what you clicked. Build the fusion and the query log first — the log is the only way you will ever know whether the tool is working, and without it you are guessing.

What you lose

  • Retrieval quality tuned against many users' notes, which is the difference between useful suggestions and noise
  • Embedding, indexing and re-indexing handled without you running anything
  • Suggestions surfaced while you write, rather than only when you search

If you would rather not build

  • Obsidian with a local retrieval plugin
  • ripgrep, which answers more than people expect

What it costs

as published on their pricing page

PlanBilled monthlyBilled yearlyLast read
—$14.99/mo——

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Khoj

$0

Self-hosted semantic search and chat over your own notes and documents.

khoj-ai/khojfree · open source

sqlite-vec

$0

Vector search inside SQLite, so retrieval needs no extra service.

asg017/sqlite-vecfree · open source

Why this verdict

our own opinion · changed only by a person

56/100

Verdict kinda at 56. Hybrid retrieval over your own notes is a weekend and works well; matching the quality of suggestions while you type is the harder half.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Mem

answered from the record above

Is Mem free?

No — the plan we track is $14.99 a month. Mem Plus at around $14.99/month billed monthly, cheaper annually.

Can you replace Mem by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 56 out of 100, build time a weekend. Read what you lose before you decide.

How much does Mem cost?

$14.99 a month on Mem Plus — $179.88 a year. Recorded 10 Aug 2026.

What do you lose by replacing Mem?

Retrieval quality tuned against many users' notes, which is the difference between useful suggestions and noise; Embedding, indexing and re-indexing handled without you running anything; Suggestions surfaced while you write, rather than only when you search. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Mem?

Yes: Khoj, sqlite-vec. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 40 in Notes, docs & writing

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc