SReader / Transparency

Privacy policy

Effective September 14, 2026Local-first by design

What this covers

This policy describes how SReader handles information when you use the web reader at sreader.thoughtbubble.dev or the SReader native app. SReader is designed to keep your reading library, settings, and progress on the device where you use it.

Information stored on your device

SReader stores imported text, titles, document metadata, reader settings, theme preferences, bookmarks, and reading progress locally. The web reader uses IndexedDB for the library and local storage for preferences. The native app uses its native app-data repository for reading content and its durable native store for small preferences.

SReader does not require an account or include an advertising SDK. The developer does not receive your saved library through SReader. Native builds and the browser reader send the limited product analytics described below to separate Umami properties.

Imports and network requests

Files selected through the file picker and text pasted into SReader are read and processed locally. If you enter an article URL, SReader makes a request to that URL to retrieve and clean its content. The selected site can receive the request information it normally receives, and its own privacy policy applies to that request.

The web site and its hosting/CDN may receive ordinary technical request information, such as an IP address, user agent, requested path, and timestamp, to deliver the site and protect it from abuse. SReader does not use that information to build a reading profile.

The interface uses fonts already available on your device and does not contact a third-party font service.

Product analytics

Installed SReader apps and the browser reader send privacy-limited product events to our self-hosted Umami analytics service. These events help us understand whether imports and reading sessions work, which reader modes and settings are used, and where product flows stop. Events identify native iOS, Android, or macOS usage separately from browser usage and use coarse categories for values such as document source, reading speed, progress, word count, and session duration. Events also include the app version and build, release channel, and whether an event belongs to an operator test.

Analytics events do not include document text, titles, filenames, file paths, article URLs, bookmark labels, clipboard contents, account information, advertising identifiers, or precise reading progress. Analytics failures never prevent the reader from working. A limited local queue retains unsent events for up to seven days in native apps. The browser keeps a bounded in-memory queue for up to one day, lost when the page closes. Both retry when connectivity returns. Each event has a random delivery identifier to recognize retries.

The native app creates a random installation identifier and keeps it in the app's durable local store so Umami can count returning installations. It is not derived from your identity, device hardware identifier, store account, or reading content, and it resets when app data is cleared or the app is uninstalled. The browser reader keeps its separate random identifier in local storage for this site; clearing site data resets it. Browser reader events use their own property, separate from installed apps and landing pages or blogs. Qualified reading means at least 100 automatically presented words and 30 seconds of active playback, excluding paused time. Umami also receives ordinary request metadata such as IP address, user agent, operating system, timestamps, and approximate location derived from the request.

User-controlled access

SReader accesses a file only after you choose it through the picker, and accesses the clipboard only when you use the paste action. You choose whether to import a URL; SReader does not crawl or upload content in the background.

Sharing, retention, and deletion

SReader does not sell or share your locally saved reading library. Saved documents remain on your device until you delete them, clear the web site's storage, or uninstall the native app. URL requests and hosting logs are retained by the relevant third-party service under its own policies.

Product analytics are used only to improve SReader and are not used for advertising or cross-service tracking. We retain product analytics for up to two years. The local random installation identifier remains until app data is cleared or the app is uninstalled.

To remove local data, delete saved texts in the library and clear the browser's site data, or uninstall the native app. For privacy requests about analytics, contact us at the address below. SReader cannot delete records held by an article site or hosting provider; contact that provider directly for those requests.

Changes and contact

We may update this policy when SReader's data practices change. The date at the top of this page identifies the current version. For support or privacy questions, email support@thoughtbubble.dev.