
I built an alternative to Raindrop and Pocket
Local-first AI Knowledge Vault with End-to-End Encryption
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
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 • Features • Free vs Pro • Documentation • Architecture • Security • 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
📸 Screenshots
🔒 Security & Privacy
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
🌐 Local-First Design
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
🤖 AI Integration (Core: BYOK)
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
📝 Knowledge Management
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
💡 Why BookmarkForge?
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.
Prerequisites
Node.js >= 24.17.0
npm (comes with Node.js)
Installation
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
Useful Commands
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:
Buy a Pro license: 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 ✅ ❌ ❌
🔗 Links
Website: https://bookmarkforgeapp.com
Documentation: https://github.com/bookmarkforge/bookmarkforge-core/tree/main/docs
Security Policy: https://github.com/bookmarkforge/bookmarkforge-core/blob/main/.github/SECURITY.md
Contributing: https://github.com/bookmarkforge/bookmarkforge-core/blob/main/CONTRIBUTING.md
Private Repository: https://github.com/bookmarkforge/bookmarkforge-2026
📚 Documentation
Core Documentation
Architecture — System architecture and design decisions
Security — Security model and best practices
API Reference — Companion server API documentation
OpenAPI Spec — OpenAPI 3.0 specification
Documentation Index — Full documentation catalog
Open Core Model — Licensing and feature boundaries
Project Guides
Contributing — How to contribute to the Core
Engineering Conventions — Code style and architectural rules
Trademark Policy — Brand usage guidelines
Core MIT License — Open source components
Pro License — Commercial features
User Manual
English 🇺🇸 · Español 🇪🇸
PDF English 🇺🇸 · PDF Español 🇪🇸
The full set ships in 30 languages under docs/: see docs/index.md.
🏗️ Architecture
┌─────────────────────────────────────────────────────────┐ │ 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
Key Architectural Principles
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
🔒 Security & Privacy
Privacy Guarantees
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
Security Measures
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. 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
📦 Self-Hosting & MIT Core
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:
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.
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 for the complete list.
Core contributions are accepted under MIT. Do not send Pro code or copy third-party code with an incompatible license.
Before opening a change that crosses the Core/Pro boundary, document the decision and update the export gate. See CONTRIBUTING.md and AGENTS.md.
Documentation — See the documentation index
Issues — Report bugs on GitHub Issues
Discussions — Join community discussions on GitHub Discussions
Security — Report vulnerabilities privately via SECURITY.md
📜 License
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
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。