# TalkEdit — Launch Plan ## Niche: "Descript for long-form content" TalkEdit's defensible position: **works on hour+ files without degrading**, fully offline, one-time payment. No competitor owns this — Descript chokes on long content, CapCut limits mobile uploads, and both require accounts. **Current status (May 2026):** All core editing features are built and stable. Polish pass completed. 107 automated tests (95 frontend + 12 Rust). Ready for beta testing. --- ## Phase 1: Polish ✅ COMPLETED ### Reliability & error handling ✅ - [x] Backend health check — polls `/health` every 30s, shows reconnecting banner - [x] Export failure reporting — surfaces FFmpeg stderr with copy-to-clipboard - [x] React ErrorBoundary catches render crashes, shows fallback with reload - [x] Global JS error logging — `window.onerror` + `onunhandledrejection` logged to Rust backend ### UX polish ✅ - [x] Tooltips on every button/control across all panels - [x] Loading spinners for waveform, waveform retry button - [x] Export progress bar (visual, not just text) - [x] Help panel with full feature documentation - [x] Keyboard cheatsheet overlay with close button and preset indicator - [x] First-run welcome overlay with 3-step guide - [x] `?` keyboard shortcut opens cheatsheet (accessible from Help panel) - [x] Empty states: MarkersPanel, AIPanel, WaveformTimeline - [x] Error states: AIPanel with retry, WaveformTimeline with retry - [x] Auto-save crash recovery every 60s, restore prompt on next launch - [x] Confirmation dialogs for zone/marker deletion - [x] Disabled state for all buttons during export/transcription - [x] Export button disabled when no video loaded ### Consistency ✅ - [x] Mute zone color unified (blue everywhere) - [x] Disabled opacity unified (40% everywhere) - [x] Zone list items border radius unified (`rounded-lg`) - [x] Toolbar button groups separated with visual dividers - [x] Labels simplified: "Sound Gain", "Speed Adjust", "Trim Silence", "Chapter Marks", "Edit Zones", "Add Clips", "Bkg. Music", "AI Tools" - [x] Model selector moved to AIPanel reprocess tab - [x] Orphaned VolumePanel.tsx removed ### Trial & licensing ✅ - [x] Trial duration: 7 days - [x] Trial bar on welcome screen with days remaining - [x] Sentinel file prevents deleting trial.json to reset trial - [x] XOR integrity check prevents editing trial.json timestamp - [x] `canEdit` defaults to `false` (locked until status check confirms) - [x] Email confirmation step before license activation (deters key sharing) - [x] `verify_license` command (verify without caching) - [x] Expired banner explains what still works (export, loading) ### Robustness ✅ - [x] React ErrorBoundary - [x] Store-level input validation (reject NaN, clamp bounds, enforce min zone duration) - [x] Runtime assertions in critical paths (TranscriptEditor, WaveformTimeline, ExportDialog) - [x] Auto-save crash recovery - [x] CI pipeline (GitHub Actions: Rust + Frontend + Python) - [x] Bad project state recovery (auto-prunes invalid zones on load, Dev Panel reset button) - [x] 95 frontend tests (editorStore, licenseStore, aiStore, assert) - [x] 12 Rust tests (licensing, models) - [x] Canvas zone handles enlarged (r=6), hit area increased - [x] Search match contrast improved - [x] Split panes keyboard-accessible (arrow keys, tabIndex, ARIA) --- ## Phase 2: Standout features (post-beta) ### Long-form content - [x] Chapter-based navigation — markers auto-sorted, click to jump (partially done) - [x] Per-segment re-transcription (done) - [x] Append multiple clips into one timeline (done) - [ ] Project stitching — load multiple `.aive` projects, combine into one export - [ ] Smart chunking for transcription — for files >2hr ### Export - [x] YouTube chapters from markers (done) - [x] Export transcript formats: SRT, VTT, TXT (done) - [ ] Batch export — multiple projects/cuts in sequence ### AI features - [x] AI Smart Clean — filler removal + silence trim + normalize (done) - [x] AI sentence rephrase (done) - [x] AI clip suggestions for social media (done) - [ ] Smart Shorts finder — scan transcript for 10–90s segments - [ ] AI auto-chapters — topic detection from transcript - [ ] AI show notes — title, description, key moments - [ ] AI dead-air finder — content-based silence detection ### Bundled local LLM - [ ] Integrate llama.cpp Rust bindings - [ ] Auto-download Qwen3 on first AI use (4B: 2.5GB / 1.7B: 1GB) - [ ] Hardware detection at runtime, model selection in Settings --- ## Phase 3: Marketing & launch (post-beta) ### Messaging pillars 1. "The offline video editor that doesn't slow down on long files" 2. "No subscription. One price, owned forever." 3. "Zero-setup AI" — bundled Qwen3, no API keys 4. "Your podcast → 10 TikToks in one click" — Smart Shorts finder ### Channels - [ ] r/podcasting, r/VideoEditing, r/selfhosted - [ ] Product Hunt, Hacker News "Show HN" - [ ] YouTube demo (3-5 min walkthrough) - [ ] Free licenses to 20 podcasters for testimonials - [ ] GitHub v1.0.0 release with binaries ### Pricing - 7-day free trial (no CC, no account) - Pro: $39 one-time - Business: $79 one-time (priority support, volume licensing) --- ## Non-goals (explicitly deferred) - Cloud sync / collaboration - Voice cloning / TTS - Full multi-track NLE timeline - Mobile app - Subscription model - Image/video generation models