draft

What happens to your schema

Nothing leaves your machine unless you ask for it, and there is exactly one way to ask. This page says what that means, because "we take your privacy seriously" is not a technical claim and cannot be checked.

There is no backend

draft is a static file. The parser, the layout engine, the renderer and the exporters are compiled to WebAssembly and execute in your tab. There is no API to call, no account to create, and no analytics script. Once the page has loaded you can disconnect from the network and everything still works.

Share links are not hosted

"Copy link" compresses your project — the SQL, the layout, your notes — and puts it in the URL fragment, the part after the #. Browsers never send the fragment to a server; it exists only in the address bar and in whatever you paste it into. That is why the link needs no storage behind it, and why a link you never share is never anywhere.

The corollary is worth stating plainly: a link you do share carries the whole schema to whoever opens it. Treat it as you would the file.

What is stored locally

The app keeps your current document in your browser's local storage so that reloading the tab does not lose your work. It stays on your device, it is readable only by this origin, and clearing site data removes it. Saving a project or exporting an image writes a file to your computer through the ordinary download mechanism.

The one request that does go out

A link of the form #u=https://…/schema.sql asks draft to fetch that file and draw it. That is a request to somebody else's server, and it happens only when the link says so — never on an ordinary visit, and never for a schema you typed, pasted or opened. The URL sits in the fragment like everything else here, so it is not sent to whoever hosts draft either. Nothing of yours travels with the request: it is a plain GET for the file the link names.

How this is verified

The claim is tested rather than asserted. A script in the repository drives the real application in a real browser, records every network request every tab makes from launch to exit, and fails the build if anything leaves the origin that was not asked for, if any request carries the project payload, or if anything uses a method other than GET. With a #u= link it asserts the opposite too: exactly one outbound request, for exactly the file named.

The landing pages

The pages around this one are plain HTML with no script, no fonts and no images loaded from anywhere else. There is nothing here to set a cookie.