FeedShade

FeedShade privacy policy

Effective date: November 6, 2026

Policy URL: https://feedshade.com/privacy

FeedShade is a personal content filter for the x.com and twitter.com websites. It can cover posts when an author’s listed “Account based in” region matches places you pick, or when words, emoji, or flags you choose appear in a display name, @handle, post text, or a profile bio that is already on the page. It is not affiliated with X Corp.

Single purpose

FeedShade only filters what you see in your own browser on X. It does not post, like, follow, or send messages. It does not have its own FeedShade account system, and it does not claim to make your X account impossible to limit or ban.

First-run acknowledgement

Region matching may be on in settings after install, but FeedShade does not send its own region-lookup requests until you acknowledge the first-run notice by choosing Enable automatic checks or Use Passive only. Opening “How it works” does not grant that acknowledgement. Diagnostic / Listen-only mode stays listen-only even after you acknowledge: it does not start FeedShade-owned lookups. Choosing Use Passive only still records the acknowledgement, so if you later turn Passive only off, authorized lookups can start without another notice.

What FeedShade reads on X

While you view posts, FeedShade reads information already shown on the page that it needs to apply your rules. That can include display names, @handles, post text, language markers already on a post, profile photos already shown on the card, follow controls already shown on the card, numeric user ids already present on the card, and a profile bio only when that text is already loaded (for example a profile description). FeedShade does not call a separate bio endpoint and does not download your follow graph.

If you have acknowledged lookups, Diagnostic mode is off, and Passive only is off, FeedShade may ask x.com, from your signed-in browser session, for an on-screen account’s public “About this account” information (the “Account based in” value when present). Those automatic lookups use your existing session cookie ct0 only at the moment of the request. FeedShade does not store or export authentication tokens, cookies, CSRF tokens, or raw request headers. Raw lookup response bodies are parsed and are not kept as stored diagnostics.

Passive only adds no extra lookup requests. After acknowledgement, FeedShade may still remember a visible author’s region from responses X has already loaded in the page. That passive metadata is untrusted: a page script can spoof it. If the region is unknown, the post stays visible. Diagnostic mode records only aggregate counts by response family (such as about, timeline, detail, hovercard, or profile). It does not store handles, user ids, or region rows.

How often lookups run, and when they pause

After acknowledgement, authorized lookups are limited to at most one every 10 minutes and 6 per rolling hour. That pace is fixed in this version. A matching region is remembered on this computer for a fixed 30 days. There is no control to choose a shorter or longer cache length.

If an authorized lookup hits a transport error (including an HTTP error such as a rate limit, or a network failure), further lookups stop globally until you click Resume lookups in the FeedShade popup, and not before a cooldown of at least 15 minutes. Lookups do not resume by themselves. Ordinary cancel cases (for example navigating away, hiding the tab, turning the filter off, or aborting an in-flight request) and completed lookups that cannot match the requested account (not found, handle or id mismatch, or identity unknown) do not apply that global stop. A pause does not stop cached region covers or your other local filters. Authors who are not yet in the cache stay visible.

What is stored on your computer

FeedShade stores data with your browser’s extension storage on this computer, including:

The bundled ExtensionPay library may also store an install key and user record using chrome.storage.sync when sync storage is available, or chrome.storage.local if it is not. Rule sync and hosted list subscriptions are not part of this FeedShade version, but ExtensionPay’s own sync storage is separate from that.

You can export and import your filter rules as JSON. That export does not include the region cache, session tokens, or lookup rate-limit state.

Payments and ExtensionPay

Optional Lifetime Pro is a one-time purchase handled by ExtensionPay (extensionpay.com), which may use Stripe as its payment processor. FeedShade does not take your card number and does not run that checkout itself.

To start a purchase, restore a purchase, or refresh whether you have paid, the extension contacts ExtensionPay and may open ExtensionPay pages. The background worker may also refresh paid status when the extension starts if this install already has an ExtensionPay key. That payment-network activity is separate from X region lookups and can occur even if Passive only or Diagnostic mode is on. ExtensionPay may receive information needed to run checkout and recognize your install, which can include an extension id, install or browser identifiers the library uses, your IP address as seen by their servers, and an email address or other details you enter on their page.

Payment, email, and entitlement records that ExtensionPay or Stripe keep are outside this extension. They are retained under those companies’ own policies. Clearing FeedShade’s region cache, or even uninstalling the extension, does not by itself delete those third-party records or cancel a purchase they have on file.

What FeedShade’s developer does not collect

FeedShade does not operate its own application server, cloud cache, analytics, advertising, or crash-reporting service. It does not send your filter settings, region cache, posts, or account list to the FeedShade developer. That is not a claim that “everything stays only on your computer”: network use that does happen is region lookups to x.com or twitter.com when authorized lookups are on, and payment or entitlement traffic to ExtensionPay as described above. Those third parties process that traffic under their own policies. Standard network metadata, such as your IP address, reaches the host you contact.

Permissions

How to delete data

Clear cache in the popup or options page deletes the local region cache (current per-account cache entries and any leftover legacy cache blob). It does not delete your filter settings, allowlist, local stats, first-run acknowledgement, diagnostic counts, lookup-pause or ledger state, or the local ExtensionPay entitlement copy. It does not delete ExtensionPay or Stripe records, and it does not change whether ExtensionPay still considers the install paid. Expired cache rows are also removed automatically on startup and about once an hour while the extension is active, as described above. If the browser is closed at the 30-day mark, that automatic removal happens at the next startup (or the next time the extension becomes active).

Removing or resetting your filter lists in options deletes those local lists and preferences that you change there. Import replaces rules with the JSON you apply; it does not wipe the region cache or ExtensionPay data.

Uninstalling FeedShade from this browser profile removes the extension’s local storage and its local IndexedDB data on this profile, including settings, cache, ledger, diagnostic counts, and the local ExtensionPay copy stored by the extension. If ExtensionPay wrote data to sync storage, uninstalling the extension from the profile removes that extension’s sync data as the browser normally does. Uninstall does not delete your X account or posts, and it does not delete payment, email, or entitlement records that ExtensionPay or Stripe retain under their own policies.

There is no FeedShade cloud account to close, because FeedShade does not operate a backend that stores your cache or settings.

Limitations

A listed region can be wrong when someone uses a VPN or when X’s “Account based in” value is missing or incorrect. Bios are not always present on the page. Passive region data can be spoofed, as noted above.

Contact

For questions about this policy, email support@feedshade.com.