Lore ("Your reading, remembered.") is a personal reading-memory tool that saves articles as you browse and lets you search, query, and revisit what you've read. It runs as a Chrome extension, a web app at lore-a0x.pages.dev, and a backend API at lore-api.jordanshammahr.workers.dev.
Questions about this policy? Contact us at jordanshammahr@gmail.com.
When you create an account, we store:
When you browse the web with tracking enabled, the extension monitors pages you actively read and automatically captures:
We store this to build your personal reading library and let you revisit articles in a clean reader view.
The extension never automatically captures AI chat sessions. If you open the extension popup on a supported platform and click "Save Conversation," the conversation is extracted, formatted as structured Markdown, and saved to your library. Supported platforms: ChatGPT, Claude, Gemini, Perplexity, Grok, and Microsoft Copilot.
When you read an article in the web app and scroll past 80% of it, we mark the item as read and record the timestamp. This is used only to show read status in your library and calculate streak statistics.
We compute and store aggregate statistics derived from your reading history: day streaks, total reading time, total items saved, and achievement milestones. These are stored per user and are never shared without your explicit opt-in to a public profile.
The extension applies a layered set of filters before it captures anything. A page is never captured if:
| Feature | What it uses |
|---|---|
| Reading library | Title, domain, tags, read status, read time |
| Full-text reader | The full extracted article text |
| Today's session | Item metadata and focus_context to rank unread items |
| Reading stats | Aggregated reading metadata (streaks, time, item counts) |
| Topic tags | Title and article text used locally to generate short labels |
| Public Lore page | Title, URL, domain, word count, read time, tags — if you opt in |
We do not sell your data. We do not use your reading history for advertising.
Two external services process data on our behalf:
All user data — accounts, articles, tags, and statistics — is stored in a PostgreSQL database managed by Supabase. Authentication also runs through Supabase. See supabase.com/privacy.
All API traffic passes through Cloudflare Workers. The web app is hosted on Cloudflare Pages. Cloudflare handles CDN, DDoS protection, and edge routing. See cloudflare.com/privacypolicy.
All data is transmitted over TLS. We do not process payment information directly.
By default, your profile is private. If you choose to make it public:
The extension stores three items in your browser's local storage:
No article content, authentication tokens, or personal data is stored locally in the extension. This data stays in your browser and is not synced across devices.
The web app uses standard session cookies for authentication. We do not use advertising cookies or third-party tracking cookies.
Turn auto-capture on or off from the extension popup or the Settings page. When off, the extension captures nothing.
Add any domain to your blocklist in Settings. The extension syncs this list and checks it before every capture.
Delete any article from your library. Deletion removes it from the database, including its tags and associated data.
Opt in or out of public sharing at any time.
Add or remove the free-text context used to rank your daily reading session.
To delete your account and all associated data, contact us at jordanshammahr@gmail.com. We will process the request within 30 days.
Articles stay in your library until you delete them. There is no automatic expiry. If you delete your account, all your data is removed from our systems.
You have the right to access the personal data we hold about you, correct inaccurate data, request erasure, restrict or object to processing, and request a portable copy of your data. To exercise any of these rights, contact us at jordanshammahr@gmail.com. We will respond within 30 days. Our legal basis for processing is your consent (for optional features) and legitimate interest (for core functionality you have signed up for).
You have the right to know what personal information we collect, the right to delete it, and the right to opt out of its sale. We do not sell personal information. To submit a request, contact jordanshammahr@gmail.com.
Lore is not directed at children under 13, or under 16 where required by local law (including GDPR). We do not knowingly collect personal data from minors. If you believe a child has created an account, contact us and we will delete the data.
In accordance with Google's Limited Use requirements: Lore's use of data obtained through Chrome APIs is limited to providing and improving the reading-memory features described in this policy. We do not transfer this data to third parties except to the processors listed above, and only as necessary to operate the service. We do not use this data for advertising.
All data in transit is encrypted via TLS. Data at rest is stored in Supabase's managed PostgreSQL infrastructure with encryption at rest. Cloudflare provides edge-level protection for all API and web traffic. We do not store plaintext passwords.
No system is perfectly secure. If you discover a vulnerability, please contact us at jordanshammahr@gmail.com.
If we make material changes, we will update the effective date at the top of this page and notify you by email if the change affects how we handle data you have already provided.