Turn information into memory.
Live demo → — open a sample brief, or tap Watch the 1-minute demo.
▶ 1-minute demo with audio (MP4) · WebM · Download MP4
Documents are easy to store and hard to remember.
A board brief gets pasted into email, retyped into a status page, then rewritten again for a slide. Facts drift. Context disappears. “Summarize this PDF” tools make another blob of text — still ungrounded, still one-format, still easy to mistrust.
People don’t need another summary.
They need reusable knowledge that stays tied to the source and can leave as Email, Web, or Document without being rewritten.
That’s why memoRABLE exists.
memoRABLE is a Memory Engine.
- Bring one document (PDF, Markdown, plain text, or JSON).
- Remember it as six source-linked Memory Blocks:
Snapshot · Signals · Timeline · Decisions · Risks · Actions - Ground every memory — click it, and the exact source lines highlight.
- Publish once with Unlayer Elements into Email, Web, and Document.
One understanding. Three publications. Same memory graph.
Nothing is uploaded by default. AI is optional and off unless you turn it on.
| If you… | memoRABLE gives you… |
|---|---|
| Rewrite the same brief into email + docs + web | One memory → three outputs that can’t disagree |
| Don’t trust AI summaries | Provenance: Remembered from the exact lines |
| Need Elements to be obvious in a demo | UI says Powered by Elements / Composed using Elements |
| Care about privacy | Local-first by default |
| Work with PDFs and notes | Drop a file or paste — PDFs: first 40 pages |
Document → Memory Extraction → Memory Graph (6 blocks) → Unlayer Elements → Email · Web · Document
- Recent-document source text stays in this browser and is not uploaded by the local library.
- Recent documents expire after 7 days and the library keeps at most 24 entries.
- A saved source excerpt is limited to 1,048,576 UTF-16 units.
- The capability-detection helper reports unavailable features as false and contains storage probe failures.
The local-library limits are covered in tests/unit/doc-library.test.ts. The optional reference-storage helpers are tested in tests/unit/storage.test.ts and implemented in src/reliability/storage.ts. The capability helper's contract is covered in tests/unit/capabilities.test.ts. These helpers are not wired into the reader; the tests cover helper roundtrip and error handling, not reader restoration after reload.
- Open memo-rable.vercel.app.
- Click Watch the 1-minute demo (video + sound, or silent GIF), or
- Click Open a sample brief / drop your own file.
- Click a memory → source highlights.
- Switch Email / Web / Document → Publish.
Need: Node 20.9–24 (.nvmrc pins 22).
git clone https://github.com/charan-rathore/memoRABLE.git
cd memoRABLE
nvm use # or: nvm install 22 && nvm use 22
npm install
npm run dev # → http://localhost:3000pdf.js layout is always the default. Embedded images (spreadsheets/screenshots) are OCR’d when present; pure text PDFs skip OCR and stay fast.
Docling never blocks the UI.
npm run docgraph # sidecar → http://127.0.0.1:8765
NEXT_PUBLIC_DOCGRAPH=1 npm run dev # allow selective background refineWith the flag on, uploads still parse via pdf.js first. Docling may refine in the background only for research-like / long / table-heavy PDFs, and only replaces memories when quality improves. SHA-256 parse cache avoids re-parsing. Graphify-schema graphs are built in TypeScript (not on the Docling critical path). See services/docgraph/README.md.
| Command | What it does |
|---|---|
npm run dev |
Local app |
npm run verify |
Lint + types + tests + production build |
npm run test:e2e |
Playwright (npx playwright install chromium once) |
npm run demo:video |
Regenerate public/media/demo.mp4 + GIF |
Interactive architecture guide - open any stage for code links and failure boundaries. GitHub displays HTML source; clone or download the repository and open the HTML locally to preserve its code links. This guide does not change the application UI.
flowchart LR
D[Document] --> X[Memory Extraction]
X --> G[Memory Graph]
G --> E[Unlayer Elements]
E --> O1[Email]
E --> O2[Web]
E --> O3[Document]
architecture · why memory · reliability
Next.js 15 · React 19 · TypeScript · Zod · @unlayer/react-elements · pdf.js · Vitest · Playwright
MIT — © 2026 Charan Rathore. See LICENSE.
