The short version
You can read every article, comparison, glossary entry and tool page on this site without giving us anything. There is no account system, no login, no comment system and no advertising network. Nothing you read is tied to an identity, because there is no identity to tie it to.
Two things qualify that. Subscribing to the newsletter means we hold your email address. And this site currently runs Google Analytics 4, which sets cookies and reports your visit to Google — described in full below. Beyond those, and the ordinary request logs that every web host keeps, nothing about your visit is recorded anywhere.
No accounts, no profiles
Tech Agents has no user accounts, no sign-in and no user profile of our own. We do not build a reading history, we do not fingerprint your browser, and we do not sell or rent personal data to anyone. We do set analytics cookies, which are listed under cookies below.
Analytics
This site runs Google Analytics 4 (measurement ID G-V2ZK88WBN4). Loading a page requests a script from googletagmanager.com and sends a measurement event to google-analytics.com. Google acts as our processor and its own privacy terms apply in addition to this policy.
GA4 records your approximate location derived from your IP address, your device and browser, how you arrived, and which pages you opened. It sets first-party cookies to recognise a returning browser. We do not use it for advertising: Google Signals, ad personalisation and demographic reporting are not enabled, and we do not upload or join any other data to it.
The codebase supports three providers behind one interface, so this can be changed or switched off with an environment variable and a redeploy:
- Google Analytics 4 — cookie-based, and the most data-hungry of the three. If it is on, Google's own privacy terms apply in addition to this policy.
- Plausible — cookieless and aggregate-only; it does not store a persistent identifier for you.
- PostHog — product analytics; configurable, and capable of storing a persistent identifier depending on how it is set up.
What is measured in every case is the same narrow set: which page was viewed, and a handful of interaction events such as a newsletter signup or a search. Page paths are recorded with the query string stripped, so a search term never reaches an analytics provider through a URL. Nothing you type into a form is ever sent to an analytics provider.
If you want to be certain what is running right now, open your browser's network tab. You should see requests to googletagmanager.com and google-analytics.com and to no other third-party domain. A tracker blocker, an ad blocker or your browser's "do not track" list will stop those requests, and the site works identically without them.
The newsletter
Subscribing to The Agent Brief sends three things: the email address you typed, a short slug naming which part of the site the form was on (for example footer or article-inline), and the time of the request. That is the entire record. We do not ask for your name, we do not enrich the address against any third-party database, and we do not infer anything from it.
The address is passed to whichever email provider the operator has configured. In the default configuration shipped with this codebase, that provider writes a single structured line to the server log and stores nothing — which is the honest description of a build that has no mailing list wired up yet. Once a real provider is connected, that provider stores your address and its own privacy terms apply alongside this policy.
The signup endpoint applies a short-lived, in-memory rate limit keyed on the IP address forwarded by the host. It exists to blunt form-spam scripts, it holds only a counter and a timestamp, it is never written to disk, and it disappears within a minute.
Every issue carries a one-click unsubscribe link. Unsubscribing removes your address from the list; you can also ask the desk directly and it will be removed for you.
Browser storage
The site writes two keys to your browser's localStorage. Both stay on your device, are never transmitted anywhere, and are readable and deletable by you at any time through your browser's site-data settings.
| Key | Written when | What it holds | Why |
|---|---|---|---|
| ta-theme | When you use the theme toggle in the header. | One of "dark", "light" or "system". | So the site does not flash the wrong theme on your next visit. It is read by a small script before the first paint. |
| ta-recent-searches | When you open a result from the search palette. | Up to five of your most recent search queries, as plain text. | So the palette can offer them again when you next open it. There is a "Clear" button in the palette that deletes them immediately. |
Neither key contains anything that identifies you, and clearing them costs you nothing beyond a re-set theme preference.
Search
Matching runs entirely in your browser. The index — titles, subtitles and keywords for articles, tools, glossary terms, categories, tags and authors — is downloaded once as a static file from this domain, and every keystroke is matched against it locally. No keystroke causes a network request, nothing you type is stored on our side, and no query ever reaches an analytics provider: the analytics layer strips the query string from every path before anything leaves the browser.
One caveat we would rather state than let you discover. The search page keeps your query in the address bar so a set of results stays shareable and survives the back button, and your browser can be pointed straight at it from the address bar because the site publishes an OpenSearch description. Either way the query becomes part of a URL, and a URL is exactly what a hosting provider writes to the request log described below. That log line is the only place off your own device where a search term can end up: it is not attached to an identity, not kept by us, and not passed to anyone. The other copy — the recent-searches list in the table above — never leaves your browser.
The command palette, the dialog that opens on ⌘K or Ctrl+K, does not touch the URL at all while you type; it only navigates when you open a result. If you would rather a query never reached a log at all, use the palette and open a result directly rather than pressing Enter through to the search page.
Server logs and hosting
Like any website, this one is served by a hosting provider that keeps standard request logs: IP address, user agent, the URL requested, a timestamp and a response code. These are operational records used to serve pages and to investigate abuse and outages. They are not used to build a profile of you, and they are retained according to the host's own retention schedule rather than ours.
Third parties and embeds
There are no social widgets, no comment platform, no chat bubble and no video embeds on this site. The only third-party request is the Google Analytics measurement described above. Web fonts are downloaded at build time and served from this domain, so displaying a page does not cause your browser to contact a font provider.
Articles link out to documentation, specifications and source repositories. Following one of those links takes you to a site with its own privacy practices, which we do not control and cannot vouch for.
Advertising and cookies
There are no advertising cookies on this site and no advertising network is integrated. Sponsorship, where it exists, takes the form of clearly labelled placements described on the advertising page — a labelled article or a newsletter slot, not a behavioural ad unit that follows you around.
The cookies that are set are Google Analytics' own, and they are used only to count visits:
_ga— distinguishes one browser from another so a returning visit is not counted as a new one. Expires after two years._ga_<container>— keeps GA4 session state. Expires after two years.
Neither is required for the site to work. Blocking or deleting them changes nothing about what you can read. The site also writes two localStorage keys of its own, ta-theme and ta-recent-searches, which never leave your browser and are described above.
If that ever changes, this section is the first thing that will be rewritten, the "last updated" date above will move, and any tracking that requires consent will ask for it before it runs.
Children's privacy
This is a technical publication for a professional audience. It is not directed at children, and we do not knowingly collect information from anyone under 16. If you believe a child's email address has been added to the newsletter list, write to the desk and it will be removed.
Your choices and rights
Depending on where you live, you may have the right to access, correct, export or delete the personal data an organisation holds about you, and to object to its processing. Here, that reduces to a simple picture: the only personal data we hold is a newsletter email address, and only if you gave us one.
- To see what is held — write to the desk from the address in question and we will tell you whether it is on the list, and nothing more is stored against it.
- To delete it — use the unsubscribe link in any issue, or ask, and it is removed.
- To stop analytics — a content blocker or your browser's tracking protection will block any analytics provider outright; nothing on this site depends on one to work.
You do not need to justify a request, and asking will never affect your access to anything here.
Changes to this policy
When this policy changes, the "last updated" date at the top of the page changes with it. Substantive changes — a new analytics provider, a real email provider, anything involving advertising — will be described in the relevant section rather than folded silently into the prose. There is no archive of previous versions; the current text is the whole policy.
Contact
Privacy questions and data requests go to editors@techagents.online. The other routes into the desk are listed on the contact page.