I built an alternative to Raindrop and Pocket BookmarkForge released an MIT-licensed open-core bookmark and knowledge manager that stores user data locally, encrypted with AES-256-GCM and an Argon2id-derived key, and lets users connect their own AI provider keys from OpenAI, Anthropic, Gemini, Groq, Hugging Face or OpenRouter. The Core build includes Fuse.js plus a semantic embeddings search engine and runs offline as a progressive web app on Node.js 24.17.0 or later, while Pro features — local model runtime, RAG orchestration, expert agents, flashcard generation and WebRTC peer-to-peer sync — are proprietary and unlocked by a signed license. The project positions itself as a privacy-first alternative to Raindrop and Pocket, with opt-in telemetry only and no accounts or cloud storage of vault contents. 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