Privacy Policy
Last updated: 6 September 2026
markdownregistry.com is operated by Jack Brandt, Detroit, Michigan, who is the data controller for everything described here. Contact: jack@dotcomjack.com.
This policy describes what the registry actually collects, checked against the running code and the live analytics configuration rather than written from a template.
The short version
- Browsing the public registry needs no account. No sign-up, no email.
- The only personal detail an account holds is your email address. There is no password, no name, no phone number, no billing address.
- Card details never touch this site. Stripe handles payment; the registry stores only Stripe's customer and subscription identifiers.
- Session replay is on. Sessions on this site are recorded and played back to diagnose problems. This is the least obvious thing on this page, so it has its own section below.
- Your private artifacts are yours, are never public, and are not used to train any model.
1. What is collected, and why
If you only browse
| What | Why | Where it goes |
|---|---|---|
| Product analytics events (see section 2) | to see which pages and commands are actually used | PostHog, United States |
| A session recording of your visit (see section 3) | to find broken and confusing paths | PostHog, United States |
| Uncaught JavaScript errors, with a stack trace | to find bugs | PostHog, United States |
| Aggregate page views, referrer, country, device class | traffic overview | Cloudflare Web Analytics, cookieless |
| Standard request logs, including IP address | delivering the site, security, abuse prevention | Cloudflare, short retention |
If you create an account
| What | Why |
|---|---|
| Your email address | it is the sign-in method, and how you are told about your namespace |
| A hashed one-time sign-in token, expiring after 15 minutes | signing you in |
| A session identifier, valid for 30 days | keeping you signed in |
| The namespaces you own or belong to | running the service |
| A hash of each API token you create, plus its name, scope and last-used time | authenticating the CLI without storing the secret |
The registry stores a hash of your API tokens, never the tokens themselves. That is why a token is shown exactly once.
If you subscribe
Stripe Checkout collects and processes your payment details. The registry never sees, receives or stores a card number. What is stored here is the Stripe customer identifier, the subscription identifier, and the subscription's status.
If you publish to a private namespace
The files you publish, their content hashes, the audit result, and which member published them. Stored privately and served only inside your namespace.
If you use the mdr command line tool
The CLI sends an anonymous ping when it installs something: a random identifier generated on your machine and stored at ~/.config/mdr/id, the event name, the artifact identifier, its kind and label, which agent directory you targeted, and the CLI version.
It does not send your file paths, your file contents, your username, your project name, or your IP beyond the ordinary request.
Turn it off with MDR_TELEMETRY=0. Deleting ~/.config/mdr/id resets the identifier.
If you display an audit badge
When a badge image is served, the registry records the hostname of the referring page only, never the full URL. That is how badge visibility is counted.
2. Product analytics, specifically
Analytics run on PostHog, loaded and sent through this domain (/ph/*) rather than a third-party domain. The configuration is deliberately narrow:
- Autocapture is off. No blanket recording of every click.
- Automatic page-view capture is off. Events are explicit and named.
- Heatmaps and dead-click tracking are off.
- Search terms are not sent as events. Only the length of a query and the number of results. Note the caveat in section 3.
- A person profile is created only once you sign in.
The named events are: search submitted, search results viewed, artifact viewed, version viewed, diff viewed, command copied, outbound link clicked, theme previewed, badge served, CLI install, sign-in requested, sign-in completed, sign-up completed, namespace created, token created and revoked, member added and removed, artifact published, checkout started, billing portal opened, and subscription updated.
When you request a sign-in link before you are signed in, the event is attributed to a truncated hash of your email address, not the address itself.
3. Session replay, plainly
Sessions on this website are recorded and can be replayed. Verified configuration as of the date above:
- All form inputs are masked. What you type into the sign-in field, the namespace field or the member field is replaced with a placeholder before it leaves your browser.
- The one-time API token panel and the member email table are excluded from recording and appear as blank placeholders on playback.
- Browser console output is recorded.
- Canvas content is not recorded. Network request bodies are not recorded; request timing is.
- Recording is not sampled and is not restricted by page. Signed-in pages are recorded too. That is deliberate: the account and namespace pages are where problems are hardest to reproduce from a description.
Two honest consequences:
- Text that is displayed on the page is recorded, even though inputs are masked. On your account page that includes your own email address as it is rendered back to you.
- Page URLs are recorded, and a search URL contains your search terms. So although search terms are not sent as an analytics event, a replay of a search does show what was searched.
Recordings are viewable only by the operator, and are retained by PostHog's default schedule. If you would rather not be recorded, say so at jack@dotcomjack.com and your account will be excluded, or block /ph/ in your browser.
4. Cookies and local storage
| Name | Purpose | Lifetime |
|---|---|---|
mdr_session | keeps you signed in. HttpOnly, Secure, SameSite=Lax | 30 days |
| PostHog identifier (cookie and local storage) | ties events and recordings from one browser together | as set by PostHog |
Theme preview (?theme=) | remembers a design preview, only if you asked for one | short lived |
mdr_consent | remembers your analytics choice, set only where a banner is shown | 6 months |
Cloudflare Web Analytics is cookieless. There are no advertising cookies and no third-party trackers.
If you are in the EU, the UK or Switzerland you are asked first. Nothing in the table above except the strictly necessary session cookie loads until you accept, and declining is a single click that leaves the site fully working with no analytics and no session replay at all. Your choice is remembered in a cookie and you can change it from the link in the footer.
Visitors elsewhere are not shown a banner. Wherever you are, you can ask at jack@dotcomjack.com to be excluded and to have analytics and replay data already collected removed.
5. Who else processes your data
| Processor | What they handle | Where |
|---|---|---|
| Cloudflare | hosting, the database, file storage, edge logs, cookieless analytics | United States |
| Stripe | payments, card data, invoices, the billing portal | United States |
| Resend | delivering sign-in and notification email | United States |
| PostHog | product analytics, session replay, error tracking | United States |
Public artifacts are read from GitHub's public API. No personal data about you is sent to GitHub.
Nothing is sold. Nothing is shared with advertisers. Data is disclosed otherwise only where the law requires it.
6. Where data lives
The United States. If you are outside the US, using the registry means your data is processed there.
7. How long it is kept
- Account and namespace data: while the account exists. Deleting the account removes it immediately.
- Sign-in tokens: 15 minutes.
- Sessions: 30 days, or immediately when you sign out.
- Private artifacts: while the namespace exists. Kept, but not served, while a subscription is cancelled, so you can restart without losing anything.
- Analytics, replays and error reports: PostHog's retention schedule.
- Payment records: kept by Stripe as long as tax and accounting law requires.
8. Your rights
Whatever your location, you may ask to see the data held about you, correct it, export it, delete your account and its data, or opt out of analytics and session replay.
Deleting your account does not need to go through anyone. There is a delete control on your account page: it cancels any subscription, removes your namespaces and every artifact in them, removes you from namespaces you belong to, revokes your tokens and sessions, and deletes your user record. It is immediate and it cannot be undone.
For anything else, email jack@dotcomjack.com. Requests are answered within 30 days. There is no charge, and asking will never degrade the service you get.
If you are in the EU or UK: the lawful basis is contract for running your account and your namespace, and legitimate interest for analytics, replay and abuse prevention. You may object to the legitimate-interest processing, and you may complain to your supervisory authority.
If you are in California: the registry does not sell or share personal information as the CCPA defines those terms, and you will never be treated differently for exercising a right.
9. Children
The registry is a developer tool and is not directed at children. It does not knowingly collect data from anyone under 13. If a child's data has ended up here, write in and it will be deleted.
10. Security
Traffic is HTTPS only. Sessions are HttpOnly, Secure and SameSite=Lax. API tokens and sign-in tokens are stored as hashes. Private namespaces are isolated. Sign-in and state-changing forms are same-origin checked.
No system is perfect. If you find a vulnerability, please report it to jack@dotcomjack.com before disclosing it publicly.
11. Changes
Material changes are announced by email to account holders at least 14 days before they take effect, and the date at the top of this page is updated.
12. Contact
jack@dotcomjack.com markdownregistry.com, 9011 Linwood St #1101, Detroit, MI 48206