Back to Drafter

Privacy

Your script stays with you. Nothing about it is stored in the cloud, no AI reads it, and it never leaves your device unless you send it yourself. Drafter has no account, no cookies, and no telemetry. drafter.dev counts visits with Plausible, privacy-focused analytics with no cookies; the desktop app has no analytics at all.

Your script stays with you

Writers worry, rightly, about a script getting out before it’s ready. Drafter is built so it can’t, and this is checked, not just promised.

  • Nothing in the cloud. No server stores anything about your script: not its text, its title, its length, or its name. drafter.dev is a set of files that sends the app to your browser, with no database, no accounts, and nowhere to upload to. The desktop app has no server at all.
  • Kept on your device only. Your script is in the files you save, and in a autosave, its history, drafts, and cuts in this browser’s own storage, or in the desktop app’s folder on your computer (below).
  • No AI. Drafter has no AI in it: no AI service, no model, nothing that reads your script to suggest, summarize, or learn from it, and your words never train anything. If you want your own AI app to read your scripts, the separate Drafter for Claude does that, only for folders you name, and only if you set it up.
  • It leaves only when you send it. A file you share, a report you open on GitHub, an email you write: those go because you chose them, and only what you see goes.

What does use the network, all of it: loading Drafter from drafter.dev (the app, its fonts, and its dictionaries all come from drafter.dev itself); on drafter.dev only, Plausible’s count of page visits (below); in the desktop app, a check with GitHub for a new version when it starts, which you can turn off in Settings; and the links and reports you click. None of it carries your script.

The audit. On 3 November 2026 Drafter was audited for exactly this: every line of code that could reach the network, every place it stores anything, its dependencies, and a writing session on drafter.dev in Chrome, Firefox, and Safari’s engine with every request recorded. A made-up phrase typed into the script appeared in none of them. The audit found one leak, fixed the same day: what a report said could reach drafter.dev’s analytics when it was opened on GitHub. Read the audit.

What Drafter doesn’t do

  • No account. There is nothing to sign up for or sign in to.
  • No cookies, and no tracking of you. Drafter never follows you from site to site and never records your keystrokes. drafter.dev measures visitor traffic with Plausible, privacy-focused analytics with no cookies (below); the desktop app has no analytics.
  • No telemetry. Drafter sends no error reports, and nothing about what you do in it or the state of your browser. On drafter.dev only, Plausible counts page visits (below).
  • No uploads. A script, its title, its word count, and your settings never leave the device. Drafter has no server that could receive them.
  • No outside services but one. The fonts, icons, and dictionaries are part of Drafter and come from drafter.dev itself, not from Google or a content network. On drafter.dev, the one outside service is Plausible.
  • No browser spellcheck service. Chrome’s Enhanced spell check and Edge’s Microsoft Editor send what you type to Google or Microsoft, so Drafter turns the browser’s spellcheck off in every field. Its own spellcheck runs on your device. The one exception is Report a problem, whose text you are about to send anyway.

Like every website, the server that sends Drafter to your browser knows that a browser asked for the page. It never sees anything you write, because that never leaves your browser.

Analytics on drafter.dev: Plausible

Only the website, drafter.dev, has analytics. The downloaded desktop app has none: it doesn’t load Plausible or anything like it, and it sends nothing about you, your scripts, or your use of it. When it checks for a new version, GitHub sees your IP address and which version and system you run, as any download does (below).

drafter.dev uses Plausible, privacy-first analytics with no cookies and no ads, for one thing only: to see the basic traffic, how many people use Drafter and which pages they look at, as a reference for making it better. It is on every page of drafter.dev, the app included. Plausible was chosen over Google Analytics for its privacy:

  • No cookies. Nothing is stored in your browser, so there is no cookie banner to click through.
  • No ads. Nothing is collected for advertising, by Drafter or by Plausible, and drafter.dev shows no ads.
  • Nothing that identifies you. Plausible keeps no IP address and builds no profile of you. To count a visitor once a day, it uses a scrambled code that changes every 24 hours, so a visit can’t be tied to you, or to your visit the next day.
  • No following you around the web. Google Analytics links what you do across the many sites that use it, and Google uses that data for advertising. Plausible tracks nothing across sites, and sells and shares nothing.
  • Open and small. Plausible is open-source software, hosted in the European Union, and its script is a few kilobytes, so drafter.dev stays fast.

What it records, and all it records: each page you open, by its address without anything after a ? or # (drafter.dev/ or a help page), the site that sent you there if your browser says, the kind of device and browser, the country, and how far you scrolled and how long the page was open. Drafter sends Plausible nothing else: no clicks, no downloads, no forms. Drafter never gives it your script, its title, anything you type, or which files you open or save.

Plausible’s small script comes from plausible.io and runs in the same page as the editor on drafter.dev, so it is the one piece of outside code there. Drafter lets only a page view and the time on the page through, cut down first (apps/web/scripts/plausible.mjs), and the page’s security policy lets it load that one script and send to that one address, nothing else on plausible.io. What Drafter can’t do is check Plausible’s own code: like any script in a page, it could read the page. If that matters to you, use the desktop app, which has no analytics, or block plausible.io; Drafter works the same. Before 3 November 2026, Plausible also counted clicks on outside links, and the address of Open on GitHub in Report a problem went whole, with what the report said; the privacy audit found that, and it was fixed the same day.

  • Only on the website. Analytics runs only when you use Drafter at drafter.dev in a browser. The downloaded desktop app for Windows, Linux, or Mac, and a copy you host yourself, have no analytics at all. Drafter running offline sends nothing either.
  • Easy to block. A content blocker, or blocking plausible.io, stops it, and Drafter works just the same.

Where your work lives

  • In the files you choose. Save, Save As, and Export write a file where you say, or download one. You can open it in any program that reads Fountain or plain text.
  • In Drafter’s autosave in this browser. Drafter keeps a copy of each script in the browser’s IndexedDB, its database for a website, so a crash doesn’t cost you your work. It stays on this device. See Saving and your browser for what it is and what can clear it.
  • In your settings. Your settings, each script’s daily goal, and its writing stats are in the same IndexedDB, as are the earlier versions of each script that History keeps (snapshots), which removing a script removes too. To find a scene in those versions quickly, Drafter keeps a note of each scene in them (its heading, its first lines, and a fingerprint of its wording) in a second IndexedDB database, drafter-cache; removing the script removes its notes there too. The stats are, for each day you write, the time you spent editing the script and how many words and pages it grew; nothing about what you typed, and nothing for a sample. Removing a script removes them. The theme you chose, whether you have seen the tour, and which What’s new notes you have seen are in the browser’s localStorage, a small store for a website’s own notes. So, for a moment while a page closes, is any text not yet written to the autosave; the next visit moves it there. None of it is a cookie, and none of it leaves this device.

Remove a script with Remove from this browser, or clear this site’s data in your browser’s settings, and it is gone from the device. Neither touches a file you saved.

What your browser keeps on its own. A browser keeps each tab’s title in its history, and can sync open tabs and history to your account with Google, Microsoft, Apple, or Mozilla. Drafter’s tab is titled with the script’s title, so turn on Hide the script’s title in the tab in Settings if that matters: the tab and the window then say only “Drafter”. Drafter’s text fields turn off the browser’s form history, so a logline or a synopsis isn’t kept there.

The service worker

Drafter installs a service worker, a small program your browser keeps, so Drafter opens when you’re offline. It saves Drafter’s own files (the page, its code, the fonts, and the icons) and nothing else. It doesn’t save your scripts. The one thing your browser does on its own is this: when Drafter opens, the browser asks drafter.dev for the worker’s file (/sw.js) to see whether there is a new version, and downloads the new files when there is one. About → Check for updates… makes that same request when you choose it, and nothing else. That request carries nothing from your scripts. When a new version is ready, Drafter says so and waits for you to choose Reload; it never reloads on its own. You can remove the saved files, along with the worker, by clearing this site’s data.

Reporting a problem or suggesting an idea

About → Report a problem… and Suggest an idea… send nothing by themselves. What you type stays on this device until you choose Open on GitHub or Send email. Only then does it leave, and only the report the dialog shows you. Open on GitHub opens GitHub’s new-issue page with it filled in, in your browser, and you review it and submit it there yourself, with your own GitHub account; Drafter holds no GitHub token, so it can’t post anything there for you. Send email, offered on drafter.dev only, sends that same report, and the reply address if you typed one, to drafter.dev’s own small server function, which emails it to Drafter’s maker through Resend, an email service. It is the one time Drafter itself sends something you wrote, and it happens only when you press the button. The function keeps nothing; your address is used only to reply. The desktop app and a self-hosted copy don’t offer it. While the dialog is open on drafter.dev, it asks that function once whether email is set up, a request that carries nothing about you. Your script is never included: not its text, its title, its file name, or your notes. Include technical details adds only what About → Copy technical details copies, and you can turn it off: Drafter’s version, which app this is, the system and browser, the language, the screen and window size, touch or mouse, whether Drafter is installed, works offline, saves in place, and keeps its storage, whether you’re online, and a few of your settings (the kind of script, Fountain or Classic Mode, the theme and text size, and spellcheck). The web address is put in words (drafter.dev, this computer, or self-hosted), never the name of a server of your own.

With no GitHub account, you can email cschweda@gmail.com instead. That email goes from your own email app, like any other, and Drafter itself sends nothing. Copy report puts the whole report on your clipboard, to paste wherever you like, and Write an email and Open on GitHub copy it too.

The report is kept in this browser’s localStorage (in the desktop app, its own) until you choose Clear, so closing the tab or restarting loses nothing. Only the report’s own fields are kept, never your script. Drafter can’t tell whether GitHub or your email app got it, so it never clears it by itself.

Updates in the desktop app

When it starts, the desktop app makes a few requests to GitHub: the release information, and, for the AppImage and the Windows app, the update itself, downloaded in the background. Nothing from your scripts is sent. The desktop app never installs or restarts by itself. It says a new version is ready (the AppImage and the Windows app, which wait for you to choose Restart) or available (a .deb, or the app built on a Mac, which offers a link to the release page) and waits for your choice. Turn off Check for updates in Settings and it makes no network request at all, unless you choose Help → Check for Updates…, which makes the same requests once, then and there.

Script modules

A script module is an extra tool for Drafter, such as one that counts scenes. The modules are compiled into Drafter itself. None is downloaded while you work, and each runs in your browser on your script only after you turn it on in Settings. The sample scripts are in Drafter too, and need no network, and no built-in module uses the network.

The desktop app also lets you add modules of your own, from its modules folder. Those are code nobody at Drafter has checked. While one is on, it can read and change the open script, and a module that names addresses on the internet (an AI service, say) can send the script there, but only to the addresses it names and only once you agree to them. Drafter asks before you turn such a module on, and keeps every other address closed to it. Add only modules you trust.

Drafter for Claude

Drafter never calls an AI. If you use one, Drafter for Claude lets it read the scripts in the folders you choose, and nothing else. It is a separate program you set up in your AI app, not part of the app or the website; it opens no network connection, and it writes, moves, or deletes nothing.

When you ask Claude something, what Drafter hands Claude goes to Anthropic, the same as pasting it in. The AI app sends the tool’s answer to its AI service along with your question. If your app uses another company’s AI, it goes there. Whatever that service’s terms say about your chats applies to this text too. Drafter can’t change that.

Your notes and the boneyard are left out unless you ask for them, and every answer says how many it left out. Never handed over, whatever you ask: Drafter’s own data at the end of a script, your title page’s Contact, anything from Drafter’s storage in your browser, and the text of a file Claude didn’t ask about. What each of its tools can return:

What each of Drafter for Claude’s tools can return
ToolScript textNotes and boneyardOther
List scriptsTitles onlyNeverFile names, sizes, dates, counts, and what is inside each file
Script overviewHeadings, synopses, and the title page (never the Contact)A count of to-dos; their text only if you askNumbers from Drafter
Read a sceneThe scenes asked forOnly if you ask
A character’s linesThat character’s speechesOnly if you ask (notes inside a speech)Numbers
List draftsNever a draft’s textNeverThe note you typed when you started each draft
Compare draftsChanged lines, both sidesOnly if you askCounts
List cutsCut text (trimmed in a list)Only if you askDates, drafts, and places
Search scriptsAbout 200 characters around each matchSearched and shown only if you ask
Story mapWhat a story map shows: short summaries, a few lines, hooks, and thread namesYour Setup and Payoff names only, as the story map shows themNumbers
Series overviewNames, ages from introductions, and placesNeverNumbers

Drafter is free and open source. If you want to be sure of any of this, the code is there to read.