Privacy

Last updated 2026-09-25 · covers both the website at treeclusion.shming.com and the Treeclusion for Chrome extension

The short version. Neither the website nor the extension collects anything about you. There are no accounts, no analytics, no telemetry, no cookies, and no server of ours that your reading passes through. Pages you open are fetched by your own browser, directly from wherever they live.

The longer version below exists because "we collect nothing" is easy to say and worth being specific about.

What both of them are

Treeclusion renders documents so that a link expands in place instead of navigating away. The website is a static site plus a renderer that runs entirely in your browser tab. The extension is the same renderer packaged to run without a website at all. Neither has a backend: there is no application server, no database, and no account system anywhere in this project.

The website — treeclusion.shming.com

Analytics

None are running. To be precise about it, because the code tells a slightly confusing story: the renderer's source includes an optional PostHog integration that activates only when an analytics key is configured at build time. No key has ever been configured, so the initialisation never runs and the analytics library sits in the bundle as unused code. No analytics requests are made and no analytics account receives anything. If that ever changes, this page changes first.

Cookies

None are set.

What is stored in your browser

The renderer keeps a few things in your browser's own localStorage, so that it behaves consistently between visits. This never leaves your device and is not readable by us:

That last one amounts to a record of some of what you have read, held locally. Clearing your browser's site data for this domain removes all of it, and the renderer works normally without it.

Server logs

The site is hosted on Vercel, which keeps standard request logs for the pages and files it serves — typically the request, a timestamp, an IP address and a user agent. That is ordinary web hosting, not something built for this project, and it is governed by Vercel's own policies. Nothing in those logs is combined with anything else or used to build a profile.

What your browser fetches, and where it goes

When you point the renderer at a GitHub repository or a web page, your browser requests that content directly — from GitHub's public API, or from the site itself. Those requests do not pass through any server of ours, because we have none, so they look to the destination like any other visit from you. The addresses you open appear in your browser's own URL bar and history, as with any website.

The Chrome extension

It does not phone home

The extension contains no analytics, no telemetry, no crash reporting and no code that contacts any server operated by us. It makes exactly the network requests needed to fetch the page you asked it to expand, and those go straight from your browser to that page's own host.

How it updates, since that is the usual reason software phones home

It does not need to. Chrome itself periodically checks the Chrome Web Store for new versions of the extensions you have installed and updates them. The extension is not involved in that and never announces itself to us. An extension installed unpacked for development is not updated automatically at all.

What the Chrome Web Store tells us

Because the extension is distributed through the Store, Google gives its developer aggregate figures — roughly, how many installs and weekly users there are, broken down by country, plus ratings and reviews. This is Google's own measurement of its storefront, not something the extension reports. It is counts, never individuals, and we could not identify a user from it if we wanted to.

Permissions

PermissionWhy it exists
activeTab Lets the extension open its own tab when you click the toolbar icon. It is never used to read or change the contents of other tabs.
<all_urls>
(optional host access)
Not requested on install. It is requested per-site, at the moment you click a link that has to be fetched to be expanded, and only for that site. Sites that permit cross-origin fetches — GitHub's API among them — need no permission at all; this exists for the ones that do not, which is most of the web. Chrome asks you to approve each site before any request is made. The fetched page is rendered in your own tab and is not sent anywhere.

Grant site access only where you would grant it to any other extension, and prefer per-site over all-sites. You can review or revoke every grant at chrome://extensions → Treeclusion for Chrome → Site access.

Feedback, and why it is not tracking

We would like to know what breaks and what reads badly, and the way to find that out is to ask rather than to watch. Feedback is always something you choose to send: an email, or an issue on the public repository. There is no in-product reporting that fires on its own, and there is nothing to opt out of.

Children

Neither the site nor the extension is directed at children, and since neither collects any personal information, none is collected from anyone of any age.

Changes to this page

If any of the above stops being true — most plausibly the analytics paragraph — this page is updated before the change ships, and the date at the top moves. Its full history is public in the repository, so you can see exactly what changed and when.

Contact

Questions about this policy: james@shming.com