Your architecture
is nobody else’s business.
Tradeoff Studio has no accounts, no database and no server-side storage of your work. The systems you model are processed and saved locally. Like any hosted site, requests pass through hosting infrastructure, and a small amount of privacy-conscious analytics is collected. Here is exactly where that line falls.
The systems you model stay on your machine.
This is the promise that matters, so I will be precise about it. Scenario Studio saves your work to this browser’s local storage. Project and design names, component names, technology labels, notes, topology, timings, targets, the contents of any file you open, and the contents of any file you download are never transmitted anywhere. There is no account, no server-side project storage and no sync between devices.
Downloading a project writes a file to your computer. Opening one reads a file from your computer. Neither involves a network request.
One consequence worth knowing: clearing this site’s data in your browser deletes your saved work permanently. Download a copy of anything you want to keep.
What a hosted website unavoidably sees.
I am not going to claim nothing leaves your device, because that is not how the web works. Tradeoff Studio is hosted on Vercel, and serving you a page means Vercel processes the ordinary request information any host needs — the address requested, your IP address, your user agent, and similar metadata — to deliver the site and protect it from abuse. That happens whether or not any analytics exist, and it is governed by Vercel’s own terms as the hosting provider.
What I can control is what gets deliberately collected on top of that, and how much of it I ask for. The answer is: very little, described below.
The analytics I do use.
Two products, both from Vercel, both cookieless: Web Analytics and Speed Insights. Neither sets a cookie, neither uses an advertising identifier, and neither builds a profile of you across other sites. Vercel’s documentation describes visitors as identified by a hash derived from the incoming request, and states that the visitor session is not stored permanently and is discarded after 24 hours. That is their description of their system, not a guarantee I am in a position to make on their behalf.
Per Vercel’s published data-point list, Web Analytics may store the page address and route, the referrer, geolocation at roughly city level, device type, operating system and browser with versions, and a timestamp. Speed Insights stores the route and page address, network speed, browser, device type and operating system, country, the Web Vitals measurements themselves, and an attribution hint identifying which page element was responsible for a slow measurement.
Note that the geolocation is coarser than an address but more specific than a country. I would rather say that plainly than round it down to “approximate region”.
Query strings are removed before analytics are sent.
Some links here carry settings in the query string — a shared circuit breaker configuration looks like ?mode=intermittent&threshold=5. None of that needs to reach an analytics product, so every event is passed through a redaction step that strips the query string and fragment before transmission. Web Analytics receives /patterns/circuit-breaker/ and nothing after it.
To be accurate about what that does and does not achieve: the original request, query string included, is still sent to the host in order to serve the page. The redaction applies to the analytics event, not to the HTTP request. I am not able to remove something from a request that has to be made.
Product events, and why the list is short.
The code records a small fixed set of interaction events — a simulation started, a failure introduced, a scenario run, a project downloaded — so I can tell which parts of this are actually used. There are ten of them and they are enumerated in the source. Adding one is a deliberate code change, not a configuration toggle.
Each event may carry at most two properties, drawn from a closed vocabulary the application controls: a content slug for authored material such as a pattern, which application surface you were on, and small bounded counts. The function that sends them filters anything outside that vocabulary, so a careless future change cannot leak a project name or a component label through it.
Whether these events are collected at all depends on the hosting plan: Vercel does not include custom events on the Hobby plan. If Tradeoff Studio is running on Hobby, the calls are made and nothing is recorded. Page views and Speed Insights are unaffected either way.
Things this site does not do.
No cookies of its own, and no consent banner, because there is nothing to consent to. No advertising networks, no third-party trackers, no session recording, no heatmaps, no email collection, no newsletter, no account. Nothing is sold or shared for marketing.
Fonts are self-hosted, so no font provider sees your visit. Links to external sources — papers, documentation, engineering write-ups — are ordinary links; following one takes you to that site under its own terms.