Privacy

Your model file, the application generated from it, and the database it fills never leave your browser. What does leave is ordinary page-visit data, sent to Google Analytics. This page says exactly what, and how to stop it.

The short version

What never leaves your browser

  • The .mmd model you upload or paste — its contents are read in the tab and are never uploaded. The one exception is the Model Assistant, whose whole purpose is to send your model to a provider you choose; that page is covered on its own below.
  • The application generated from it: every one of its files is assembled in the tab.
  • The database that application fills. It is PostgreSQL compiled to WebAssembly, living in your browser’s IndexedDB.
  • Anything you type into the running application — records, passwords, the lot.

What does leave

  • Page-visit measurement by Google Analytics: which pages are opened, and roughly by whom and from where.
  • The usual web request data your browser sends anywhere — page URL, referrer, browser, device and operating system, language, and a coarse location derived from the IP address.
  • A Google cookie that tells one visit from another (see Cookies below).

Measurement is by Google Analytics, loaded through Google’s tag (googletagmanager.com) on every page of this site. Google processes that data under its own privacy policy. The tag is given no part of your model, your generated application, your database or your API key — but it is third-party script running on the page, and it sees what any analytics script on a page sees, so the page URL and referrer go to Google. This site does not use any other analytics service and records no sessions.

What Google Analytics collects

We add the standard Google tag and nothing more: this site does not define custom events, and no line of code here passes Google a model name, a checker result, a file, a field or a prompt. What Google Analytics itself records, with its default configuration, is:

Google decides what its product collects, so that list can change without this site changing. This site does not make session recordings, and the pages where you paste or load a model do not send Google what you paste or load. The tag does see the address and title of the page you are on.

Turning it off

Be aware of what changed: this site’s earlier analytics honoured Global Privacy Control, Do Not Track and a ?analytics=off switch. Google’s tag does not read any of those here, so they no longer switch anything off on this site. What does:

1

Block the tag

An ad or tracker blocker, or your browser’s tracking protection, stops googletagmanager.com from loading. Nothing on this site depends on it.

2

Google’s opt-out add-on

Google publishes a browser add-on that stops Google Analytics from receiving data from any site you visit.

3

Clear the cookie

Deleting this site’s cookies (they begin _ga) resets the identifier. It will be set again on your next visit unless you did one of the above.

The Model Assistant, and your API key

assistant.html is the only page on this site that sends anything you wrote to another company, and it does it because that is what you asked it to do. It is worth being exact about what happens.

What we never receive

  • Your API key. It is held in your browser and attached to a request that goes straight to api.anthropic.com or api.openai.com. This site is static — there is no server here to receive it, so it does not pass through anything of ours, is not logged, and is not recoverable by us.
  • Your model, or your instruction. Both go to the provider and nowhere else. Nothing on this page hands a line of a model, an entity name, or a word of what you typed to any analytics service.

What leaves, and to whom

  • Your model, your instruction and the published enhancement protocol go to the provider you picked, under your key and their terms and retention policy — not ours.
  • Nothing about the request is sent to Google. The Google tag is on this page like every other, so Google sees that the page was visited — not the key, the model or the instruction.

Storing the key is your choice and it is off unless you tick it. Ticked, it goes in this browser’s localStorage under one origin, and Forget it deletes it. A key in a web page is exposed to anything able to run script on that page, which is why the page says so above the field rather than in a footnote, and why it points at the chat-window route for anyone who would rather not. Use a key you can revoke and give it a spending limit.

The rest of it

Cookies

Google Analytics sets first-party cookies in this browser (their names begin _ga) holding an anonymous identifier, so that two page views in one visit count as one visit rather than two. Beyond that, this site sets none of its own for tracking. Whether Google uses the data for advertising purposes is governed by the settings of the Google Analytics property and by Google’s policy; we run no advertising and sell no data. Deleting the cookies removes the identifier.

The contact form

The contact form posts what you write in it to a mail relay (FormSubmit), which forwards it to us by email. Only what you typed is sent, and it is used to answer you.

The videos on the home page

The two videos are hosted on YouTube, and their players are not embedded until you press play. Until then the page holds a picture of a play button drawn in CSS and asks YouTube for nothing — no player script, no fonts, no cookies. Pressing play loads the player from youtube-nocookie.com, at which point YouTube sees the request and applies its own terms; the section says as much next to the buttons. Not pressing play is a complete opt-out, and needs no setting.

Hosting

The site is served by GitHub Pages, which keeps its own request logs. The guide’s chapter 10 downloads its runtime from StackBlitz and its packages from npm when you run it. That, the video players above and Google’s analytics tag are the only things on this site that reach a host other than this one. The first two say so where they are; the tag is on every page.

Questions

Ask on GitHub or through the contact page. This page is versioned with the site, so its history is the change log.