ScriptDraft
Offline-first screenplay editor with voice dictation, AI that waits to be invited, and industry-clean FDX exports.
The Challenge
Screenwriters want AI help without it rewriting their voice for them, and want to keep writing whether they're online or not — most AI writing tools assume a constant connection and insert themselves into every sentence.
Writing Software That Stays Out of the Way
Most AI writing tools default to intrusive — constant suggestions, autocomplete on every line. ScriptDraft's stance is the opposite: the AI waits to be asked.
Editor, Not Autocomplete
The editor is built on Tiptap with a custom screenplay extension, handling scene headings, action, and dialogue formatting natively rather than bolting screenplay rules onto a generic rich-text editor.
Works on a Plane
Offline-first isn't a fallback mode — it's the default. Drafts are written and saved locally first, then synced to Supabase when a connection is available, so a dead connection never means lost work or a blocked editor.
One Backend, Two Native Clients
The web app is a Next.js 16 PWA; the mobile app is native Flutter for iOS and Android. Both read and write against the same Supabase schema, so a script started on desktop picks up exactly where it left off on a phone.
Our Solution
ScriptDraft pairs a screenplay-formatted editor with an offline-first architecture, so drafts keep working with no connection and sync when back online, and an AI layer that only acts when explicitly invited rather than auto-suggesting into the page. Scripts export as industry-clean FDX. It ships as a Next.js web PWA and a native Flutter app for iOS and Android, sharing one Supabase backend.
Tech Stack
Results
- Offline-first editor keeps working with no connection, syncing once back online
- AI assistance only activates when explicitly invited — never auto-suggesting into a draft
- One Supabase backend powers both the web PWA and the native iOS/Android app
- Available on the App Store and Google Play; starts free with 30 welcome credits, no card required