Save and sync chat drafts across browser and Android/WebView surfaces, with Firestore or an optional Next.js + Neon backend path.
- Browser extension draft panel for chat surfaces such as Messenger, Discord, and WhatsApp Web.
- Userscript path for lightweight browser injection experiments.
- Android/LSPosed module path for WebView-style chat draft overlays.
- Firestore sync path for quick personal setup.
- Optional Next.js + Neon backend with Drizzle routes for draft and settings storage.
- Text and image draft workflows depending on the target surface.
✅ means the tool is built around that capability. partial means it has a related feature, but
not the same workflow or depth. - means it is not the point of that tool.
| Capability | GlitchDraft | Form History Control II | Textarea Cache | Form Recover / Form Recovery | Typio Form Recovery | Built-in chat drafts |
|---|---|---|---|---|---|---|
| Chat-thread-specific saved drafts | ✅ | - | - | partial | partial | partial |
| Generic form/text-area autosave | partial | ✅ | ✅ | ✅ | ✅ | - |
| Restore/search/edit form history | partial | ✅ | ✅ | ✅ | ✅ | - |
| Messenger/Discord/WhatsApp-focused adapters | ✅ | - | - | - | - | partial |
| Image/media draft support | partial | - | - | - | - | partial |
| Cross-device/backend sync | ✅ | partial | - | - | - | platform-dependent |
| Android/WebView or LSPosed overlay path | ✅ | - | - | - | - | platform-dependent |
| Bring-your-own backend | ✅ | - | - | - | - | - |
| Local-only privacy by default | partial | ✅ | ✅ | ✅ | ✅ | platform-dependent |
| Open-source, self-modifiable stack | ✅ | partial | ✅ | partial | partial | - |
General form-recovery extensions are stronger at broad autosave, search, cleanup, export/import, and one-click field injection. GlitchDraft is narrower but reaches a different problem: chat drafts tied to conversations, plus Android/WebView-style surfaces where normal browser form history tools do not reach.
The obvious backlog is a safer auth model, better generic form support, cleaner import/export, stronger image draft handling, and a simpler production setup story.
- Go to console.firebase.google.com and create a new project
- Click "Firestore Database" in the left menu, then "Create database"
- Choose "Start in test mode" and click Next, then Enable
- Go to Project Settings (gear icon) > General tab
- Scroll down to "Your apps" section
- Click the "</>" button (Web app icon)
- Enter any app nickname and click "Register app"
- Copy the firebaseConfig object shown
- Load this extension in Chrome/Edge (chrome://extensions)
- Click the extension icon and paste the config, then click Save
Press Alt+M on Messenger to toggle the draft panel.
Update rules in Firebase Console > Firestore Database > Rules tab:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /drafts/{document=**} {
allow read, write: if true;
}
match /settings/{document=**} {
allow read, write: if true;
}
}
}
Important: These rules allow anyone to read/write your data. For production, add proper authentication.