Your personal memory layer. Save anything. Find it when you need it.
I save things constantly. Articles I want to read, GitHub repos I want to explore, screenshots of things that catch my eye, links forwarded on WhatsApp that I know I'll want later. I save them everywhere — phone camera roll, browser bookmarks, Slack saved messages, WhatsApp Starred, Reddit saved posts.
And then I forget all of it.
Not because I'm forgetful. Because retrieval is broken. When I need something, I have no idea where I saved it. I open WhatsApp and scroll for five minutes. I search my camera roll with no keywords. I give up. The thing I saved is gone — not deleted, just unreachable.
I've talked to enough people to know this isn't just me. We've all built these little piles of saved content that we never go back to. The capture habit works. The retrieval habit doesn't exist — because retrieval is too hard.
Unforgettable is my attempt to fix that. One place where everything you save actually lives. When you need it, you just ask.
- Save anything in seconds — share to Unforgettable from any app on iOS or Android. One click from any browser. No forms. No tags. No friction.
- Find it with a query — type or speak what you're looking for. Unforgettable searches everything: titles, content, URLs, and text extracted from screenshots via OCR.
- Mark it done — when you've used something, mark it Absorbed. One tap. It moves to your archive. The pile stays finite.
That's it. No AI summaries, no auto-organisation, no ambient resurfacing. Just a fast, private, keyword-searchable second brain that you can actually trust.
- Not a read-later app (Instapaper, Pocket) — those assume you'll read things linearly. You won't.
- Not a note-taking app (Notion, Obsidian) — those require structure and effort at capture time. Unforgettable requires nothing.
- Not an AI tool — your saved content never leaves your server. No embeddings, no external APIs, no data sent anywhere in v1.
| Layer | Technology |
|---|---|
| Web app | Next.js 14 (App Router) + Tailwind |
| Mobile | React Native (bare workflow) |
| Browser extension | WebExtension MV3 (Chrome/Edge/Firefox/Safari) |
| Backend | Node.js + Next.js API routes |
| Database | PostgreSQL 15 with full-text search |
| Auth | NextAuth.js (Google OAuth + email) |
| OCR | Tesseract.js (server-side, Docker) |
| Infrastructure | Docker Compose |
| Language | TypeScript everywhere |
Prerequisites: Node.js 20+, pnpm, Docker Desktop
# 1. Clone
git clone https://github.com/YOUR_USERNAME/unforgettable.git
cd unforgettable
# 2. Install dependencies
pnpm install
# 3. Set up environment
cp .env.example .env
# Fill in: NEXTAUTH_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
# NEXTAUTH_SECRET: openssl rand -base64 32
# 4. Start the stack
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.dev.yml up
# 5. Open
open http://localhost:3000The first startup automatically creates all database tables and indexes.
See documentation/INFRASTRUCTURE.md for the full environment variable reference.
unforgettable/
├── apps/
│ ├── web/ # Next.js web app
│ ├── mobile/ # React Native (iOS + Android)
│ └── extension/ # Browser extension (Chrome/Edge/Firefox)
├── packages/
│ ├── shared/ # Shared TypeScript types
│ └── search/ # Full-text search logic
├── services/
│ └── ocr-worker/ # Background OCR processing (Tesseract.js)
├── docker/ # Docker Compose + Dockerfiles + init.sql
└── documentation/ # Full design docs (PRD, system design, schema, etc.)
All design decisions are documented in documentation/:
| File | What it covers |
|---|---|
PRD.md |
Why this exists, what it does, success criteria |
SYSTEM_DESIGN.md |
Architecture, data flows, API endpoints |
DATABASE.md |
Full schema, indexes, key queries |
TECH_STACK.md |
Technology choices and why |
INFRASTRUCTURE.md |
Docker setup, environment variables |
SECURITY.md |
Auth, OWASP mitigations, privacy |
UI_UX.md |
Design principles, layouts, colour system |
SCOPE_AND_DEV.md |
Build phases and current status |
- Phase 1 — Backend: PostgreSQL + API + Auth + OCR worker
- Phase 2 — Browser extension (Chrome/Edge/Firefox)
- Phase 3 — Web app (query interface + library)
- Phase 4 — Mobile iOS (share extension + Spotlight)
- Phase 5 — Mobile Android (share intent + Quick Settings tile)
- Phase 6 — Safari Web Extension
Contributions are welcome. Please read CONTRIBUTING.md before opening a PR.
If you've ever felt the frustration of losing something you know you saved — you understand exactly what we're building. That's the bar: does this change make it faster or more reliable to save and find things?
MIT — see LICENSE.