Effective Date: September 16, 2026
This Privacy Policy describes how the Hub Chrome Extension (“Hub”, “we”, “us”, or “our”) handles your data. Hub is designed to be a privacy-first, local dashboard. We do not collect, store, or process your personal data.
Hub operates one backend service of its own: the Hub API, a Cloudflare Worker that supplies background images and daily quotes. It is described under “Hub API” below. No personal data, calendar data, location, or note content is ever sent to it.
Hub requests specific browser permissions to provide its core functionality. All data accessed through these permissions remains on your local device.
identity permission)Hub uses Chrome’s native identity API to authenticate with your Google account and requests read-only access to your Google Calendar (https://www.googleapis.com/auth/calendar.readonly). This scope is read-only and covers both your calendar list (needed so you can choose which calendars to display, and to show their colours) and the events on them.
geolocation permission)To display local weather conditions, Hub needs an approximate location. It is resolved in this order, stopping at the first that succeeds:
get.geojs.io).storage permission)Hub uses your browser’s storage to save:
chrome.storage.sync, which Chrome synchronises across devices where you are signed in.localStorage on the device only.localStorage (the daily quote, weather, and background image metadata) and the background image itself in the browser’s Cache storage, to avoid re-downloading it. If you choose to use your own image as the background instead of an Unsplash photo, that file is stored in this same Cache storage, entirely on your device, and is never uploaded anywhere.chrome.storage.local on that device only: up to 200 of your own most recent memos, including their content, so the widget can show them when your Memos server cannot be reached; any memo you wrote that could not be sent, kept as a draft; the name of the Memos account you connected, the address of the server it is connected to, and a note of when that server was last contacted and whether the attempt failed. These sit alongside the access token described in section 6 and, like it, are never synchronised.Hub does not store any API keys of its own on your device; the only credential it keeps is the Memos access token you enter yourself, described in section 6. This data is stored solely on your device (plus Chrome Sync, for preferences) and can be cleared at any time by uninstalling the extension or clearing your browser data.
The settings page can also export your preferences to a JSON file and read one back. The file is written to your own device by your browser’s normal download mechanism and is never transmitted anywhere; importing one reads it locally. Only the preferences listed above are included, the Memos server address and default Memos tag among them — not your notes, not your memos or your Memos access token, and not a custom background image.
alarms permission)Hub schedules a daily task that downloads the next day’s background image in advance, so opening a new tab never waits on the network.
chrome.storage.local, both on your device only.notifications permission)Hub includes an optional Pomodoro-style focus timer. When a work or break interval ends, Hub shows a local system notification to let you know.
optional_host_permissions)The Memos widget is off until you configure it. When you do, you supply the address of your own Memos server — we do not run one, and we never see it. Access to that server is requested only when you press Connect, and only for the single address you entered; if you never configure the widget, the extension is never granted access to any additional site.
chrome.storage.local on the single device where you entered it. It is not synchronised to your other devices, and it is deliberately excluded from the settings export file, so a backup you share cannot contain it. The same local storage on that device also holds the name of the Memos account the token belongs to, read from your server when you press Connect; up to 200 of your own most recent memos, including their content, so the widget can show them while your server is unreachable; any memo you wrote that could not be sent, kept as a draft until you send it or clear it; the address of the connected server, kept beside the token so that a token is never sent to a different one; and a note of when the server was last contacted and whether that attempt failed, which is what lets a new tab use the cached memos instead of asking again. None of these is synchronised or included in the export either. All of it is removed when you press Disconnect in the settings, and when you uninstall the extension, which clears the extension’s local storage along with it.Background images are requested from the Hub API, a Cloudflare Worker we operate at hub-api.csiszaralex.workers.dev. It exists so that the Unsplash API key stays on the server instead of being shipped inside the extension. Daily quotes are also fetched through this same Worker, which proxies and caches them from the upstream Stoic Quote API on Hub’s behalf.
landscape,forest) for background images; the quote request sends nothing. No account identifier, location, calendar data, or note content is included. As with any web request, your IP address and standard browser headers are visible to Cloudflare.Hub interacts with the following third-party APIs to fetch content. When Hub makes requests to these services, your IP address and standard browser headers are exposed to them as part of normal web traffic:
images.unsplash.com; the search itself goes through the Hub API described above.These third-party services have their own privacy policies governing the data they process during API requests.
Hub takes the following measures to protect sensitive data, particularly Google user data accessed via OAuth:
chrome.identity API using the OAuth 2.0 protocol. Hub never handles or stores your Google account credentials.calendar.readonly), limiting the extent of access to your Google account to the minimum required for the feature.Hub does not retain Google user data beyond the immediate session:
identity API. You can revoke Hub’s access to your Google account at any time via your Google Account permissions page. Revoking access immediately removes Hub’s ability to fetch any Google user data.chrome.storage and cached content in localStorage and Cache storage stay on your device (preferences additionally travel through Chrome Sync) and can be deleted at any time by clearing the extension’s storage via Chrome settings or by uninstalling the extension.We do not sell, trade, rent, or otherwise share your personal information or browsing data with any third party. The extension operates entirely on your local machine.
We may update this Privacy Policy from time to time. Any changes will be reflected by updating the “Effective Date” at the top of this document.
If you have any questions or suggestions about our Privacy Policy, please contact us at: hub@csalex.dev