Privacy Policy

Last updated: October 25, 2026

This policy covers both the "Homepage" web app (doncus.github.io/homepage) and its companion browser extension. They're built and used together, so this page describes both rather than splitting the picture in two.

Short version: Homepage doesn't run ads, doesn't sell your data, and doesn't share it with anyone except the infrastructure providers (GitHub, Cloudflare) needed to run the service itself. Most of what you create — links, containers, tasks — stays in your browser's own local storage and never reaches a server at all unless you sign in. Once signed in, your pages, containers, notes, links and click counts and your Tasks board (tasks, templates, tags, your Tray's sections) sync live across your devices, and you can additionally back everything else up. How much can be stored, and how that differs between Standard and Full Access, is listed on the Plans & Limits page.

The browser extension

The extension's job is narrow: get a page, a tab group, or a bookmark folder from your browser into a Homepage container with one click or drag, and relay a few page-triggered actions (opening a link in incognito, opening links in their own windows or on a screen you chose, opening a local file link from a task, submitting a search) back through the browser's own APIs. It does not run any analytics, does not phone home to any server on its own, and does not transmit anything anywhere by itself — it only ever hands data to the Homepage page itself (via the browser's extension storage), which then decides what to do with it exactly the same way it would if you'd typed that data in by hand.

To do that, it asks for the following browser permissions:

The extension's own content script only runs on the hosted Homepage page itself, on local file:// copies of it, and on localhost/127.0.0.1 during development — not on other websites you visit.

The Homepage web app

Data that stays on your device

By default, everything you create — link containers, notes, tasks, icon choices, layout, and settings — is stored in your browser's own localStorage and never leaves your device. Uninstalling the extension or clearing your browser data removes it the same way it would for any other website.

If you turn on Settings → Debug, a diagnostic log is kept in this browser too — it can include names of your tasks and profiles, and, while task sharing is being tested, each sharing step with the profiles involved and the server's answers. It is never uploaded, synced or included in a backup; it only leaves your device if you copy it yourself, e.g. to send with a bug report.

Apart from that, this browser keeps a short record of when the Tasks Overview was opened or closed and which part of the app did it - the last 30 changes, with times, but no names or contents of your tasks. It helps find why the Overview sometimes starts closed. Like the diagnostic log, it is never uploaded, synced or included in a backup.

Each profile keeps its own design and emblem. So switching profiles shows the right one, this browser remembers each profile's design and emblem settings - including an emblem image you uploaded - for as long as you use it here. This stays on your device; only the settings themselves (not the image) also go into that profile's backups, see below.

If you choose a screen for a link to open on, your browser first asks whether this page may see your screens ("Window management"). Their names and positions are only used to place the window, and the screen you chose is kept in this browser only — never synced, backed up or sent anywhere.

Data tied to an account

Signing in uses GitHub OAuth. We receive your GitHub numeric user ID and username (via the read:user scope) to identify you — never your GitHub password, and never broader account access than that. The OAuth access token GitHub gives us is used once, server-side, to look up that ID and username, and is then discarded; what your browser holds afterward is an opaque session token of ours (valid for 30 days) with no meaning outside this app.

Once signed in, depending on which features you actually use, we may store:

Where this is hosted

The app itself is hosted on GitHub Pages. Sign-in, chat, icons, and backups run on Cloudflare (Workers, KV, R2, and D1) under our own account. We don't use any third-party analytics or advertising service, and we don't sell or share your data with anyone outside these two providers.

Exporting your data

Settings → Account has an "Export my data" button for your active profile, and an Export button next to each of your other profiles, so you never have to switch to a profile first. Each downloads everything tied to that profile — your profile record, icon filenames, backup contents (with the browser and kind of device each was made on), your synced tasks/templates/tags, the keys of any pasted-image attachments (from a task, a template, or a Notes container), the chat and connection messages you've sent and the reactions you've given, your connections list, the shared tasks you're on (with your own position, category, tags, star, effort and relations), the devices you get task notifications on, your account activity record, any access request you sent and the GitHub notifications you opened or gave a thumbs up (a saved GitHub token is only listed as "saved", never included) — as a single JSON file, instantly, with no need to contact anyone.

Your data stays yours even if your access changes. If your access level is reduced, nothing is deleted — some features are locked and adding more is limited, but everything you already have stays stored and comes back if access is restored. If your access is removed entirely, the screen you see after signing in still lets you export each of your profiles or delete all of your data, without needing to contact anyone.

Deleting your data

Clearing your browser's local storage removes everything that lives only on your device. Settings → Account also has a "Delete profile" button (for your active profile, plus a Delete button next to each of your other profiles) that immediately removes that profile's record, icons, backups, and synced tasks/templates/tags, and — if your GitHub account owns more than one profile — a separate "Delete account" button that does the same for every profile you own in one step (pasted-image attachments — from a task, template, or Notes container — are cleared once no profile is left on the account, rather than one at a time, so deleting one profile never risks another still-active profile's own pasted images). Deleting the profile you're in also clears its data from the browser you delete it in - its links, pages, tasks, settings and the rest - and deleting your account does the same for its profile there; only this browser's own bookkeeping (like the language you picked) stays. Another device still holds its own copy until you clear that browser's storage. Your past chat and connection messages are kept rather than deleted — so the people you talked to keep their own copy of those conversations — but your name is replaced everywhere with an anonymized placeholder. That includes your Support conversation: the support team sees it as from a "Deleted user", and if you sign up again later, you get a new one. The reactions you gave are deleted. Deleting your account also removes everything kept for the GitHub notifications window - what you opened there, your thumbs up, a saved GitHub token and any picture copies. If you'd rather we handle any of this for you directly, contact us using the email below.

Children's privacy

Homepage isn't directed at children, and we don't knowingly collect data from anyone under 13.

Changes to this policy

If this policy changes in a meaningful way, the "Last updated" date above will change along with it.

Contact

Questions about this policy or your data: dominic.handl@hotmail.com. For general questions, bug reports, or feature requests, see Support instead.

← Back to Homepage