Architecture & Privacy

Everyone watches you.
We keep our eyes closed.

FreeFollowers shows you who is tracking you — without tracking you itself. Here is exactly how it works and what we never collect.

🔒

Tracking detection happens locally in your browser

The extension observes network requests inside your browser and builds the tracker relationships locally. Cookie values are never sent to FreeFollowers. To render your live graph, the extension sends a temporary session ID, domain-name nodes, graph edges and observed cookie names to the FreeFollowers server. Full page URLs and page content are not sent. Session graph data is kept in application memory and removed automatically after 2 hours of inactivity.

System architecture
🌐
Websites you visit
nzz.ch, amazon.de, any site — loads normally, unaffected
In your browser
requests
intercepted
🧩
FreeFollowers extension
Runs inside Edge or Chrome. Observes third-party requests and cookie names, builds the graph, and sends the current graph every 3s.
Your computer
domain names
only · no URLs
☁️
FreeFollowers server
Flask backend on Hetzner in Germany. Session graph data is kept temporarily in application memory and expires after 2h of inactivity.
freefollowers.ch

✓ What FreeFollowers does not send to its server

Cookie values and contents
Full URLs of pages you visit
Page content or text
IP address is not stored as part of the FreeFollowers graph
Login credentials or form data
Name, email address or account information
Step by step — what happens when you browse
1
You visit a website
You open any website in Edge or Chrome. FreeFollowers does not interfere with or slow down page loading in any way.
In your browser
2
The extension watches network requests
While the page loads, the browser makes background requests to ad networks, analytics services, CDNs and social widgets. The extension observes these using the browser's built-in webRequest API and records the source site and target domain name. Full page URLs, page content and cookie values are not sent to the FreeFollowers server.
Local only
3
A graph is built in memory
The extension builds a graph: the site you visited → the third-party domains it contacted. Where available, edges can also be annotated with cookie names (not values). The graph is assembled inside the browser before the current session state is sent to the FreeFollowers server for visualisation.
Local only
4
Only the temporary graph data needed for the visualisation is sent
Every 3 seconds the extension sends a small JSON payload containing the random session ID, domain-name nodes, graph edges and observed cookie names. This lets the website display the live graph. The session ID is randomly generated by the extension and is used only to link the extension's current session to its graph page.
freefollowers.ch
5
Your graph renders live in the browser
The graph page polls the server every 2 seconds and updates the force-directed visualisation. Tracker domains are classified using the open-source Disconnect.me list — the same list used by Firefox's Enhanced Tracking Protection. Hover any node to see what the company does with your data.
In your browser
6
Session data is automatically deleted
FreeFollowers does not persist session graphs to a database or application data store. Active graph data is held in the application's memory, and a cleanup process removes sessions that have not been updated for 2 hours. Restarting the application also clears these in-memory sessions.
Auto-deleted after 2h
Data inventory — what we collect and why
DataWhere it goesWhyRetention
Third-party domain namesServer (memory)To build the tracker graph and classify by company2 hours
Cookie names (not values)Server (memory)To show which cookies are shared with which trackers2 hours
Anonymous session IDServer (memory)To link extension data to your graph page2 hours
Cookie valuesNever sent
Page URLsNever sent
Page contentNever sent
IP addressNot stored in graph dataUsed only as part of normal network transportNot retained by the FreeFollowers application
Name, email, accountNever collectedNo accounts, no registration required
Infrastructure
🇩🇪
Hosted in Germany
The FreeFollowers server is hosted with Hetzner in Germany. The server processes only the temporary session graph data required to display the current FreeFollowers session.
🐳
Docker container
The backend runs in a Docker container. This makes the deployment reproducible and keeps the application runtime separated from other services on the server. The server and extension source code are published on GitHub for inspection.
🔐
HTTPS everywhere
Communication between the browser extension, website and backend uses HTTPS. Caddy terminates TLS and manages the site's certificates automatically.
💾
No database
FreeFollowers does not persist session graph data to a database or application storage. Active sessions live in application memory and are removed after 2 hours of inactivity or when the application restarts.
💻
Open source on GitHub
The extension and server source code are public at github.com/DonVermicello/FreeFollowers, so the implementation can be reviewed independently.

Don't take our word for it. FreeFollowers is open source. The browser extension and server code are available on GitHub, so you can inspect how requests are processed, what data is sent to the server and how the graph is generated. Tracker classification uses the open-source Disconnect tracker protection list.