How it works

How Quorly works

Most “private” claims are policy statements. This page is an architecture: what runs where, what the server can see, and what actually leaves the browser. Every claim here is checkable with DevTools and a text editor.

The editor is a static page

Plain HTML, CSS and JavaScript. No framework, no build step, no bundler, no server-side rendering. The same files are served to everyone; the editor is code your browser runs, not a service your browser talks to. That is also why the app works offline after the first load: there is nothing to fetch per keystroke.

Where a draft lives

DataWhereWho can read it
The open documentlocalStorage, this browser profileYou, and anything else running in that profile
The library and imagesIndexedDB, this browser profileYou, on this device
An exported fileWherever you saved itWhoever you give it to
Pro sync copyYour own Google DriveYou and Google, as with any Drive file

Scroll the table sideways to read every column

There is no account record and no server-side copy on the free plan. Clearing site data deletes the local library — which is the trade-off: nothing can leak from a server that does not hold it, and nothing can be recovered from one either. The privacy page written for writers lists the backup routes.

What the server does

The only server-side API is /api/*, and it exists for two jobs: knowing which plan an account is on, and deciding which features are enabled. It stores subscription state and flags. It has no endpoint that accepts a title, a paragraph or a file.

  • Sign-in for Pro uses Supabase; billing uses Dodo. Both are about money and entitlement, not documents.
  • Pro Cloud Sync mints a short-lived Google Drive token. The browser uploads the document directly to your Drive; Quorly brokers the credential and never receives the file.
  • Local Sync writes .quorly files to a folder you pick, through the browser's file APIs. No server involved at all.

What leaves the page

Exactly four things, and none of them carries document text:

  1. Assets from the same origin — the page, the stylesheet, the scripts, the fonts.
  2. Cloudflare Web Analytics, which counts visits without cookies or cross-site identifiers.
  3. Google Analytics, for aggregate traffic. It may set cookies; the privacy page says so plainly rather than claiming otherwise.
  4. A cookieless event to /e — an allowlisted name such as first_keystroke or export, plus at most one short label like the export format. Never text.

Open DevTools → Network and type a paragraph. The request list stays quiet.

No AI, by architecture

The editor ships no model, no assistant and no endpoint a model could be pointed at. Adding one would mean building a service that receives drafts — a change large enough to appear in the network tab on first use. The no-AI page turns that into three questions anyone can ask of any writing app.

In browsers that support WebMCP, the editor does register tools that a local agent in your session can call. That is the opposite direction: an agent you already run can work against the page, the way it could against any tab, and nothing is sent anywhere.

Why build it this way

  • Longevity. Static files and plain text outlive frameworks. An export today opens in twenty years.
  • No lock-in. Markdown, PDF, EPUB and .quorly — the first three are standards, and the fourth is a zip of HTML you can open.
  • Verifiability. Claims about privacy are worth what you can check. This design is checkable in a minute.
  • Cost. There is no document storage to pay for, because there are no documents on the server.

Ready when you are

Start writing — free

Open the editor and watch the network tab stay quiet.

← Back to Quorly