# I built an alternative to Raindrop and Pocket

> Source: <https://github.com/bookmarkforge/bookmarkforge-core>
> Published: 2026-10-23 23:29:46+00:00

**Local-first AI Knowledge Vault with End-to-End Encryption**

**Distribution model:** Open Core. This repository is the MIT-licensed Core; Pro features identified in `OPEN-CORE.md` are proprietary and not included here.

Your personal knowledge vault — encrypted on your device, works offline, and stays yours. No accounts, no tracking, no one can read your data. Not even us.

[Quick Start](#-quick-start) • [Features](#-features) • [Free vs Pro](#-free-vs-pro) • [Documentation](#-documentation) • [Architecture](#-architecture) • [Security](#-security--privacy) • [Contributing](#-contributing)

- **Privacy First:** Your data stays on your device, encrypted with AES-GCM + Argon2id
- **BYO AI:** Use any AI provider you want (OpenAI, Anthropic, Gemini, etc.) with your own keys
- **Lifetime:** One payment, no subscriptions or recurring fees
- **Offline:** Works without internet connection
- **Open Source:** Core is MIT-licensed, auditable and customizable
- **No Tracking:** Opt-in telemetry only, full control over your data

- **End-to-end encryption** — AES-256-GCM + Argon2id for secure vault storage
- **Zero-knowledge vault** — 24-word recovery phrase, tampering detection, fail-closed storage
- **BYO AI keys** — Provider keys stored encrypted in your vault, never on our servers
- **No tracking** — Opt-in telemetry only, works fully offline
- **Client-side cryptography** — All encryption/decryption happens in Web Workers, server never sees keys

- **Offline-first** — The app lives in your browser; your vault works without internet
- **No cloud dependencies** — Full Core functionality without external services
- **Progressive Web App** — Installable on any modern browser, plus browser extensions
- **P2P sync (Pro)** — Optional device-to-device sync over WebRTC; servers relay encrypted traffic, never content

- **Multi-provider support** — Gemini, OpenAI, Anthropic, Groq, Hugging Face, OpenRouter with your own keys
- **Direct API calls** — No proxy: the browser calls the provider you configure
- **Free smart search** — Fuse.js + semantic embeddings engine included in Core
- **Pro AI surfaces (Pro)** — Local model runtime, RAG orchestration, expert agents and flashcard generation

- **Bookmarks & Notes** — Organize your digital knowledge
- **Interactive Knowledge Graphs** — Visualize connections between concepts
- **Advanced Search** — Smart search across all your content
- **Import / Export** — JSON, JSONL, CSV, Markdown, HTML, Notion, Obsidian, and PDF

Most bookmark managers store your library in someone else's cloud in plain text. BookmarkForge keeps everything **encrypted on your device** (AES-GCM with an Argon2id-derived key), so your data is yours in the strongest sense: we couldn't hand it over even if we wanted to.

- **Local-first** — Your vault works fully offline. No server required.
- **Zero-knowledge** — Recovery phrase, tampering detection, fail-closed storage.
- **P2P sync (Pro)** — Device-to-device sync; servers relay encrypted traffic, never content.
- **Open Core, MIT** — Audit the public Core; Pro components are not included in this export.

- **Node.js** >= 24.17.0
- **npm** (comes with Node.js)

```
# Clone the public Core
git clone https://github.com/bookmarkforge/bookmarkforge.git
cd bookmarkforge

# Install dependencies
npm install

# Start the development server
npm run dev        # http://localhost:5173
# Type checking (production config)
npm run typecheck:prod

# Linting
npm run lint

# Fast tests (critical paths)
npm run test:fast

# Full test suite
npm run test:slow

# Production build with integrity gates
npm run build:ci

# Full gate chain (open-core, boundaries, docs, security, …)
npm run check
```

Build for production: `npm run build`. See `docs/architecture.md` for the full topology: static web + signaling/licensing companion server.

This repository contains the MIT-licensed **Core**. The private distribution adds proprietary **Pro** components, unlocked at runtime by a **signed license** purchased from the official store:

| Feature | Free (Core) | Pro | 
|---|---|---|
| Bookmarks | 2,500 | Unlimited | 
| Smart search (Fuse.js + semantic) | ✅ included | ✅ | 
| Encrypted backups & PDF/OCR | — | ✅ | 
| Flashcards from bookmarks | — | ✅ | 
| P2P device sync | — | ✅ | 
| Support | Community | Email 48h | 

**Buy a Pro license:** [bookmarkforgeapp.com](https://bookmarkforgeapp.com) — $59 Early Bird (first 200 licenses) → $79 regular.

| Feature | BookmarkForge | Obsidian | Notion | 
|---|---|---|---|
| Local Storage | ✅ | ✅ | ❌ | 
| AI Integration | ✅ (BYO keys) | ❌ | ✅ (embedded) | 
| Privacy | 🔒🔒🔒 Zero-knowledge | 🔒🔒 | 🔒 | 
| Lifetime | ✅ | ❌ | ❌ (subscription) | 
| Offline | ✅ | ✅ | ❌ | 
| Open Source | ✅ (Core MIT) | ✅ | ❌ | 
| BYO AI Keys | ✅ | ❌ | ❌ | 

- **Website:**[https://bookmarkforgeapp.com](https://bookmarkforgeapp.com)
- **Documentation:**[https://github.com/bookmarkforge/bookmarkforge-core/tree/main/docs](https://github.com/bookmarkforge/bookmarkforge-core/tree/main/docs)
- **Security Policy:**[https://github.com/bookmarkforge/bookmarkforge-core/blob/main/.github/SECURITY.md](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/.github/SECURITY.md)
- **Contributing:**[https://github.com/bookmarkforge/bookmarkforge-core/blob/main/CONTRIBUTING.md](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/CONTRIBUTING.md)
- **Private Repository:**[https://github.com/bookmarkforge/bookmarkforge-2026](https://github.com/bookmarkforge/bookmarkforge-2026)

- [**Architecture**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/architecture.md) — System architecture and design decisions
- [**Security**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/security.md) — Security model and best practices
- [**API Reference**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/api.md) — Companion server API documentation
- [**OpenAPI Spec**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/openapi.yaml) — OpenAPI 3.0 specification
- [**Documentation Index**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/index.md) — Full documentation catalog
- [**Open Core Model**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/OPEN-CORE.md) — Licensing and feature boundaries

- [**Contributing**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/CONTRIBUTING.md) — How to contribute to the Core
- [**Engineering Conventions**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/AGENTS.md) — Code style and architectural rules
- [**Trademark Policy**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/TRADEMARKS.md) — Brand usage guidelines
- [**Core MIT License**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/LICENSE) — Open source components
- [**Pro License**](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/PRO-LICENSE.md) — Commercial features

- [English 🇺🇸](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-en.md) ·[Español 🇪🇸](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-de-usuario-es.md)
- [PDF English 🇺🇸](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-en.pdf) ·[PDF Español 🇪🇸](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-de-usuario-es.pdf)
- The full set ships in **30 languages** under`docs/` : see[docs/index.md](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/index.md) .

```
┌─────────────────────────────────────────────────────────┐
│              Browser / PWA / Extension                   │
│  React 19 + TypeScript + RxDB + IndexedDB + WebRTC      │
└────────────────────┬────────────────────────────────────┘
                     │ HTTPS/WSS
                     ▼
┌─────────────────────────────────────────────────────────┐
│            Reverse Proxy (TLS, CSP, Static)              │
└────────────────────┬────────────────────────────────────┘
                     │
         ┌────────────┴────────────┐
         ▼                         ▼
┌─────────────────┐     ┌─────────────────┐
│  Web Frontend   │     │ Companion Server│
│  (React/Vite)   │     │   (Node/ws)     │
└────────┬────────┘     └────────┬────────┘
         │                     │
         │                     ├─► P2P WebSocket signaling
         │                     ├─► License endpoints (/api/license/*)
         │                     ├─► Health, CSP reports
         │                     └─► Opt-in telemetry
         │
         └─► Your AI Providers (BYO key)
              • Gemini, OpenAI, Anthropic
              • Groq, Hugging Face, OpenRouter
              • Ollama, WebLLM (local, Pro)

Cryptography: AES-GCM, Argon2id/HKDF, keys managed in Web Workers
```

- **Client-first data** — Vault data lives on the client
- **End-to-end encryption** — Encryption and decryption happen client-side
- **Zero-trust model** — Server never sees unencrypted data or AI keys
- **Stateless services** — No shared database or Redis in production

- **Your AI keys** are stored encrypted in your vault, never on our servers
- **Vault content** never leaves your device unencrypted
- **No tracking** — Opt-in telemetry only, no behavioral tracking
- **IP privacy** — Server logs never contain user IP addresses

- **TLS termination** at reverse proxy with HTTPS redirect and HSTS
- **Content Security Policy** (CSP) with strict allow-lists
- **Secret scanning** — Automated detection of leaked secrets in commits
- **460+ automated tests** including security, crypto, and property-based tests
- **Monthly DAST** (OWASP ZAP) penetration testing
- **CodeQL + Semgrep** SAST analysis on every PR

Found a vulnerability? Please report it privately — see [SECURITY.md](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/.github/SECURITY.md). Please do not open public issues for security reports.

| Profile | Coverage | Command | 
|---|---|---|
| `test:fast` | Critical paths | `npm run test:fast` | 
| `test:slow` | Full test suite | `npm run test:slow` | 
| `e2e:smoke` | Critical vault operations | `npm run e2e:smoke` | 
| `check` | ~50 gates + lint | `npm run check` | 

- **Unit / Integration** — Vitest suites for security, DB, and services
- **E2E** — Playwright specs across Chromium, Firefox, WebKit, and Android
- **Open Core boundary** —`npm run check:open-core` verifies no Pro code leaks into this export
- **Performance budgets** — Bundle size and runtime metrics enforced per feature

The code in this public repository is the MIT-licensed Core. You may run, study, modify and redistribute it under the terms in `LICENSE`. Proprietary Pro features and private infrastructure are intentionally excluded. The BookmarkForge name and logo remain protected by `TRADEMARKS.md`.

Running the Core for yourself or your team is permitted without payment.

Pro code is resolved two ways in this build, both enforced in CI by `npm run check:open-core`:

1. 
**Behind the entitlement gate.** Core components resolve the Pro services (encrypted backups, PDF/OCR extraction, P2P sync, and the proprietary AI surfaces — the local model runtime, RAG orchestration, expert agents and flashcard generation) through`src/services/pro-access.ts` (MIT), which calls`hasProAccess()`*before* fetching the Pro chunk. A Free user never downloads that code; the call rejects with a typed`ProUnavailableError` that the UI presents as a "requires Pro" state or upgrade prompt, never a silent dead button.
2. 
**Client-side AI boundary.** Cloud providers are called directly by the browser with a user-supplied key; no server-side AI relay or placeholder is shipped. (The AI client tree is largely Core MIT: the BYOK cloud path and the embedding engine behind free smart search are open; see`OPEN-CORE.md` for the exact Pro list.)

Reaching a Pro surface is never silent: the placeholder helper also dispatches `open-core:pro-reached`, and the loader refuses to hand out a placeholder as if it were real. Either signal opens the in-app **"Available in Pro"** panel (`ProRequiredBoundary`), which explains what happened and links to the Pro section with the current license price.

BookmarkForge ships **30 languages** with complete UI translations. Each language has a Markdown source and a generated PDF under `docs/`. See [` docs/index.md`](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/index.md) for the complete list.

| Language | Markdown |  | 
|---|---|---|
| 🇸🇦 Arabic | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ar.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ar.pdf) | 
| 🇧🇬 Bulgarian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-bg.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-bg.pdf) | 
| 🇨🇿 Czech | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/uzivatelska-prirucka-cs.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/uzivatelska-prirucka-cs.pdf) | 
| 🇩🇰 Danish | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/brugervejledning-da.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/brugervejledning-da.pdf) | 
| 🇩🇪 German | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/benutzerhandbuch-de.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/benutzerhandbuch-de.pdf) | 
| 🇬🇷 Greek | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/egcheiridio-christi-el.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/egcheiridio-christi-el.pdf) | 
| 🇺🇸 English | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-en.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-en.pdf) | 
| 🇪🇸 Spanish | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-de-usuario-es.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-de-usuario-es.pdf) | 
| 🇫🇮 Finnish | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/kayttoopas-fi.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/kayttoopas-fi.pdf) | 
| 🇫🇷 French | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manuel-utilisateur-fr.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manuel-utilisateur-fr.pdf) | 
| 🇮🇱 Hebrew | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-he.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-he.pdf) | 
| 🇮🇳 Hindi | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-hi.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-hi.pdf) | 
| 🇭🇷 Croatian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/korisnicki-prirucnik-hr.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/korisnicki-prirucnik-hr.pdf) | 
| 🇭🇺 Hungarian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/felhasznaloi-kezikonyv-hu.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/felhasznaloi-kezikonyv-hu.pdf) | 
| 🇮🇩 Indonesian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/panduan-pengguna-id.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/panduan-pengguna-id.pdf) | 
| 🇮🇹 Italian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manuale-utente-it.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manuale-utente-it.pdf) | 
| 🇯🇵 Japanese | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ja.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ja.pdf) | 
| 🇰🇷 Korean | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ko.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ko.pdf) | 
| 🇳🇱 Dutch | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/gebruikershandleiding-nl.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/gebruikershandleiding-nl.pdf) | 
| 🇳🇴 Norwegian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/brukerhandbok-no.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/brukerhandbok-no.pdf) | 
| 🇵🇱 Polish | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/podrecznik-uzytkownika-pl.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/podrecznik-uzytkownika-pl.pdf) | 
| 🇵🇹 Portuguese | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-do-utilizador-pt.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-do-utilizador-pt.pdf) | 
| 🇷🇴 Romanian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-de-utilizare-ro.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/manual-de-utilizare-ro.pdf) | 
| 🇷🇺 Russian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ru.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-ru.pdf) | 
| 🇸🇪 Swedish | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/anvandhandbok-sv.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/anvandhandbok-sv.pdf) | 
| 🇹🇭 Thai | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-th.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-th.pdf) | 
| 🇹🇷 Turkish | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/kullanici-kilavuzu-tr.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/kullanici-kilavuzu-tr.pdf) | 
| 🇺🇦 Ukrainian | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-uk.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-uk.pdf) | 
| 🇻🇳 Vietnamese | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/huong-dan-su-dung-vi.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/huong-dan-su-dung-vi.pdf) | 
| 🇨🇳 Chinese | [MD](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-zh.md) | [PDF](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/user-manual-zh.pdf) | 

Core contributions are accepted under MIT. Do not send Pro code or copy third-party code with an incompatible license.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature` )
3. Make your changes
4. Run the gates (`npm run check` )
5. Commit your changes
6. Push to the branch (`git push origin feature/amazing-feature` )
7. Open a Pull Request

Before opening a change that crosses the Core/Pro boundary, document the decision and update the export gate. See [`CONTRIBUTING.md`](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/CONTRIBUTING.md) and [`AGENTS.md`](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/AGENTS.md).

- **Documentation** — See the[documentation index](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/docs/index.md)
- **Issues** — Report bugs on[GitHub Issues](https://github.com/bookmarkforge/bookmarkforge/issues)
- **Discussions** — Join community discussions on[GitHub Discussions](https://github.com/bookmarkforge/bookmarkforge/discussions)
- **Security** — Report vulnerabilities privately via[SECURITY.md](https://github.com/bookmarkforge/bookmarkforge-core/blob/main/.github/SECURITY.md)

Copyright © 2026 BookmarkForge

This Core is free software: you can redistribute and/or modify it under the terms of the MIT License in `LICENSE`.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

**BookmarkForge v1.0.0 — Open Core: MIT Core + proprietary Pro**
