Last Updated: September 13, 2026
Privacy Policy
1. Data Controller
The data controller for the processing described in this policy is BookmarkForge, operated by Leonardo (Castrelos, Vigo, Spain). Privacy questions and data subject requests: bookmarkforge@proton.me (see section 17). For a self-hosted companion server, the operator of that deployment acts as controller of the data processed by that server.
2. Introduction & Scope
BookmarkForge ("we", "our", or "us") is committed to protecting your privacy. This Privacy Policy explains how we handle your data when you use our application.
Key Principle: BookmarkForge runs 100% locally on your device. Your bookmarks, notes, documents, and AI conversations are stored in your browser's local database and are never transmitted to our servers.
3. Data We Do NOT Collect
We want to be clear about what we do not collect:
- No bookmarks or URLs are sent to our servers
- No notes or documents leave your device
- No AI prompts or responses are logged by us
- No browsing history is tracked
- No personal information is required to use the app
- No analytics of any kind -- no product analytics, no event pipelines, no fingerprinting, no third-party analytics scripts
4. Where Your Data Lives
All your data is stored locally in your browser using:
- IndexedDB - for bookmarks, documents, and settings
- Secure Storage - for encrypted keys and passwords
- Service Worker Cache - for offline functionality
Your data never leaves your device unless you explicitly:
- Export a backup file
- Share your vault with another device
- Use a cloud AI provider (your prompts go directly to the AI provider, not through us)
5. Encryption
Your data is encrypted using:
- AES-GCM-256 encryption for all stored content
- Argon2id (memory-hard KDF) for password-derived keys
- Keys are derived and stored locally in your browser
We do not have access to your encryption keys or passwords.
6. Content Security Policy (CSP) Reports
BookmarkForge uses Content Security Policy (CSP) headers to prevent cross-site scripting and data injection attacks. If your browser blocks a resource because of these headers, it automatically sends a brief technical violation report to the same origin that served the application (the /csp-report endpoint). The operator's collector keeps only:
- The origin of the blocked resource (path, query and fragment are stripped; never your personal data)
- The CSP directive that was violated
- The origin of the page where the violation occurred
- A one-way salted hash of your IP address, used solely for rate limiting -- your IP is never stored
This is standard browser behavior mandated by the CSP specification (the report-uri / Reporting-Endpoints headers): the browser sends these reports on its own, without any per-user opt-in, because they are part of the security machinery that protects you. No cookies, identifiers or browsing history are attached, and no vault content is ever included.
7. AI Providers
When you use AI features:
- Local AI (WebLLM): Runs entirely in your browser. No data leaves your device.
- Cloud AI (Gemini, OpenAI, Anthropic, etc.): Your prompts are sent directly to the provider. We do not intercept, store, or log these requests. Each provider has its own privacy policy.
8. Optional Error Reporting (Opt-In Only, Local-Only)
You may choose to enable local error reporting in Settings. If enabled:
- Technical error logs (stack traces, error class, app version) are stored only in your browser's local database
- Nothing is transmitted to us -- the hosted service runs no remote error sink; there is no endpoint that receives crash reports
- We NEVER receive: your bookmarks, text, URLs, prompts, or any personal content
- You can disable this at any time; disabling stops local storage of new reports
9. PWA Bookmarklet & Share Target
BookmarkForge offers two ways to save content from your browser:
- Bookmarklet: Drag the "Save to Forge" button to your bookmarks bar. Click it on any page to save instantly.
- PWA Share Target: On mobile, use your browser's native Share menu to send links to BookmarkForge.
Both methods only send the URL and page title to the app when you explicitly trigger them. No browsing activity is tracked.
10. Third-Party Services
These are the third parties that can be involved. Section 13 describes each one's role, the data it can receive and the transfer mechanism. Nothing below happens unless the corresponding feature is used.
- Vercel, Inc. - the exclusive hosting provider for this site and the application (web hosting + CDN). No other hosting company is involved.
- AI Providers - Google, OpenAI, Anthropic, Groq, OpenRouter, Hugging Face (only if you configure them)
- Whop - Pro license checkout and entitlement verification
- GitHub - source repository, issue tracker and CI/CD
- Transactional e-mail provider - service and support messages
- Error monitoring (Sentry) - optional and not currently enabled on bookmarkforgeapp.com; listed only for completeness if the operator enables it later
- Signalling relay (rxdb.info / PubNub) - P2P sync rendezvous, only while a sync is running
- Domain registrar - registration of the domain name
- Storage providers you choose yourself - cloud backup and sync destinations you configure
11. Your Rights (GDPR / RGPD)
BookmarkForge is designed so that we never receive your personal data, which means most GDPR obligations fall away by design. Under the General Data Protection Regulation (GDPR), you retain the following rights:
- Right of access (Art. 15): All your data is on your device. Use the Export feature to obtain a complete, machine-readable copy at any time.
- Right to rectification (Art. 16): Edit your bookmarks, notes, and documents directly in the app.
- Right to erasure (Art. 17): Use the built-in data removal (Settings -> Danger Zone / Nuclear Forget). This permanently deletes all local data, including encrypted keys and recovery data. We hold no copy.
- Right to data portability (Art. 20): Exports are open formats (JSON, Markdown, HTML) usable in other applications.
- Right to object and restrict processing (Arts. 18/21): All optional processing (cloud AI, telemetry, error reporting) is strictly opt-in and can be disabled at any time in Settings.
- Right to withdraw consent (Art. 7): Disabling optional features in Settings withdraws consent immediately and stops all associated processing.
To exercise any right that requires our involvement (e.g. a complaint about server-side processing), contact us at the email in section 17. You also have the right to lodge a complaint with your national data protection authority.
12. Lawful Basis & Processing Register
Under GDPR Article 6, we document the lawful basis for every processing activity that involves any data leaving your device:
| Processing activity | Data involved | Lawful basis | Retention |
|---|---|---|---|
| Cloud AI (direct browser-to-provider) | Your prompts, sent directly to the provider you selected | Consent (Art. 6(1)(a)) -- opt-in per provider in Settings | Not stored by us; provider policies apply |
| Pro license validation (Whop adapter) | License key, instance/device identifier, IP for rate limiting | Contract (Art. 6(1)(b)) -- required to deliver the paid feature | Entitlement state while the license is active; rate-limit windows <= 1 hour |
| CSP violation reports | Blocked resource origin, violated directive, page origin, salted one-way IP hash for rate limiting | Legitimate interest (Art. 6(1)(f)) -- browser-mandated security reporting; see Section 6 | Bounded in-memory ring (<= 200 reports) or JSONL file you host |
| Opt-in business analytics -- self-hosted companion server only; the hosted service at bookmarkforgeapp.com does not operate this endpoint | Daily aggregated counts of a fixed list of event types, plus a SHA-256 hash of a random per-install id; no content, URLs, titles or timestamps | Consent (Art. 6(1)(a)) -- off by default | <= 180 days of daily totals; <= 200,000 installs of bounded per-install state |
| Client degradation events -- self-hosted companion server only; not operated on the hosted deployment | Anonymized technical error class, hashed IP with per-deployment salt | Consent (Art. 6(1)(a)) | Bounded ring (<= 200 events), aggregation window <= 10 minutes |
| P2P sync signaling | Peer connection metadata (SDP/ICE), ephemeral room secret | Contract (Art. 6(1)(b)) -- you initiated the sync | Connection lifetime only; no persistence after disconnect |
Everything else -- your bookmarks, notes, documents, passwords, encryption keys, analytics events -- is processed exclusively on your device under your control, and is therefore outside the scope of GDPR processing by us.
13. Third-Party Processors & Data Transfers
When you use optional features, data may be processed by the following third parties (sub-processors). Each transfer happens only when you explicitly use the feature:
- Google (Gemini API) -- cloud AI prompts and generated media. Processes data in Google Cloud (global regions, data residency configurable by Google; see Google's Gemini API terms). Transfers outside the EU may occur under Google's Standard Contractual Clauses.
- OpenAI / Anthropic / Groq / OpenRouter / Hugging Face -- alternative cloud AI providers, only if you configure them. Their respective terms and SCCs apply.
- Whop -- Pro license payment and entitlement verification. Receives your license key and payment details when you purchase Pro. Whop acts as an independent controller for payment data.
- Sentry (Functional Software) -- optional error reporting, not currently enabled on bookmarkforgeapp.com (no diagnostic endpoint is configured). If it were enabled, it would only activate with your explicit consent in Settings and would receive redacted technical stack traces (URLs without query strings, secrets removed, no user identity). Sentry acts as a processor under its Data Processing Agreement; see Sentry's privacy policy for international transfers.
- Vercel, Inc. -- the exclusive web hosting and CDN provider for bookmarkforgeapp.com. It serves this site, the application and the license API, and receives the connection metadata every web server receives (IP address, user agent, request path) and, for licence checks, the licence key and a device identifier. Connection logs are kept for a short, bounded period (see section 6). No other hosting provider is involved.
- GitHub -- source code, issue tracker and CI/CD. Receives the data of maintainers and contributors (account data, commits, issue content). It never receives vault content.
- Transactional e-mail provider -- service, onboarding and support messages. Receives your e-mail address and the content of the message, plus bounces.
- Signalling relay (rxdb.info / PubNub) -- the rendezvous service used to introduce two browsers for a peer-to-peer sync when no self-hosted signalling endpoint is configured. It receives your IP address and the connection metadata needed to match the two peers; the payload itself is end-to-end encrypted and the room secret never leaves your device. A deployment that configures its own signalling endpoint (
signal.<domain>) does not contact the public relays at all. - Domain registrar -- holds the domain registration contact data and the DNS logs of the domain itself.
- Storage providers chosen by you -- when you connect your own cloud (WebDAV, Nextcloud, OneDrive, Dropbox, pCloud, Google Drive), that provider processes the encrypted backup you upload under your own account. It is your provider, not ours, and it is not a sub-processor of BookmarkForge.
We do not sell, rent, or share your data for advertising. We operate no analytics of any kind -- no page-view counters, no event pipelines, no device fingerprinting, no third-party analytics scripts, and no analytics endpoint exists to opt into. You can verify this yourself: open your browser's network inspector on bookmarkforgeapp.com and the only requests are to this domain, the AI or storage providers you configure, and Whop at checkout. Cloud providers are bound by their own GDPR-compliant data processing agreements; we recommend reviewing them before enabling cloud AI.
International transfers: when a provider processes data outside the EEA, transfers rely on the provider's EU adequacy decision or Standard Contractual Clauses. Local-only use of BookmarkForge involves no international transfer at all.
14. Record of Processing Activities (ROPA summary)
A summarized record of processing activities (GDPR Art. 30) is maintained covering: purposes, categories of data subjects (app users, paying customers), categories of personal data (license keys, hashed IPs, opt-in technical reports), recipients (the processors above), retention limits, and security measures (client-side AES-256-GCM encryption, TLS 1.3 in transit, HMAC-signed signaling, rate limiting).
15. Children's Privacy
BookmarkForge is not designed for children under 13 (or the equivalent minimum age in your jurisdiction). We do not knowingly collect any personal information from anyone.
16. Changes to This Policy
We may update this Privacy Policy from time to time. Material changes will be reflected in the "Last Updated" date above and, for breaking changes affecting processing, announced in-app before they take effect.
17. Contact
For privacy questions, data subject requests, or concerns:
- Email: bookmarkforge@proton.me
- Controller: BookmarkForge, operated by Leonardo
- Address: Castrelos, Vigo, Spain
- Published languages: English, Español, Français, Deutsch, Português, Italiano. The other languages we serve redirect to this English version.
- Repository and issue tracker: github.com/bookmarkforge/bookmarkforge
Terms of Service
Last Updated: September 13, 2026
1. Acceptance of Terms
By using BookmarkForge, you agree to these Terms of Service. If you do not agree, do not use the application.
2. Description of Service
BookmarkForge is a local-first knowledge management application that allows you to:
- Save and organize bookmarks
- Create and edit documents
- Use AI-powered features (locally or via cloud providers)
- Sync data between your devices using peer-to-peer connections
3. Pricing & Licenses — Lifetime of v1 (No Subscriptions)
Individual licenses are sold as Lifetime for a major version — pay once, own v1 forever. No monthly billing. Refunds: 30 days via Whop. Payments handled by Whop (card, PayPal, crypto; we never see card data).
- Free — $0 forever: 500 bookmarks on any device (each keeps its own vault), smart search — full-text + semantic, the feature Raindrop charges yearly for — knowledge graph, AI with your own API key, basic templates, JSON/HTML export, encrypted .bmf backups (automatic daily + disk copy), PWA + extensions. At 500, reading, search and export never stop; only new saves pause.
- Pro Lifetime v1: Early Bird $59 (200 licenses), then $79 regular, later $89–$99 after traction. Includes: unlimited bookmarks, 5 devices + P2P sync, local AI (WebLLM/Ollama) + RAG + Expert agents, flashcards, PDF/OCR, 10+ export formats, cloud backup sync, AES-GCM vault. Lifetime of v1: 12 months of all updates (features, bugfixes, security) from purchase. After 12 months, security updates forever. v1 stays functional forever.
- Upgrade without subscription: future majors (v2, v3) are separate products: $89 for new customers, $35 for v1 owners (60% off). Skip the major and v1 keeps working. That's recurring revenue without forcing a subscription — same model as Affinity/Sketch/Sublime.
- Legal line: Lifetime license for BookmarkForge v1. Includes 12 months of all updates (features, bugfixes, security) from purchase. After 12 months, security updates forever. Future major versions (v2, v3) 60% off for existing owners. 30-day refund via Whop.
4. Support SLA
Single maintainer. The vault is encrypted — we cannot see your data and we never ask for your vault password or 24-word recovery phrase.
- Free: community — Help Center (/help) + GitHub Discussions, best effort. Search BF-E* code first + paste diagnostic.
- Pro: email bookmarkforge@proton.me (subject: Pro) — 48h business days (Mon–Fri). Include diagnostic from Settings → Advanced → Copy diagnostic.
- Before contacting us, use Settings → Advanced → Copy diagnostic or Help → Diagnostics. The diagnostic contains only counts/versions (bookmarks, storage %, build hash) — never vault content, URLs or prompts. See Help § BF-E* for error codes.
- Forgot password (BF-E101): we cannot recover it. When you create a vault we show a 24-word recovery phrase once — write it on paper. Without it the vault is unrecoverable, by design.
5. Local-First Nature
You understand and agree that:
- BookmarkForge runs entirely in your browser
- All data is stored locally on your device
- We do not host, store, or backup your data on our servers
- You are responsible for backing up your data using the export feature
6. User Responsibilities
You agree to:
- Maintain backups of your important data
- Keep your vault password secure (we cannot recover it without the 24-word recovery phrase)
- Use the application in compliance with applicable laws
- Not use the application for illegal purposes
7. AI Features
When using AI features:
- You are responsible for the content of your prompts
- Cloud AI providers have their own terms of service and privacy policies
- We do not guarantee the accuracy of AI-generated content
- Local AI models require compatible hardware (WebGPU support)
8. Limitation of Liability
BookmarkForge is provided "as is" without warranties of any kind. We are not liable for:
- Data loss due to browser clearing storage
- Hardware failures
- Incompatibility with your device
- Errors in AI-generated content
9. Intellectual Property
- BookmarkForge's code and design are copyrighted
- Your content (bookmarks, notes, documents) remains yours
- We claim no ownership over your data
10. Termination
Since BookmarkForge runs locally, there is no account to terminate. You can stop using the application at any time by closing your browser.
11. Governing Law
These terms are governed by applicable laws. Any disputes shall be resolved in the appropriate courts.
12. Contact
For questions about these terms:
- Email: bookmarkforge@proton.me
- Help: Help Center — FAQ, BF-E* codes, SLA & diagnostics