1import { html } from '../../shared/lib/html.js'; 2 3export const title = 'Bolt Scribe - Transcend the Keyboard'; 4 5export default (html, state, actions) => { 6 const isLoggedIn = state.auth?.isLoggedIn || false; 7 8 return html` 9 <main> 10 <section id="hero"> 11 <img src="/assets/logo-quill.svg" alt="Bolt Scribe" width="120" height="120"> 12 <h1>Transcend the keyboard</h1> 13 <p>Turn your voice into text at the speed of thought. Press a hotkey, speak naturally, get clean formatted text instantly.</p> 14 15 <nav> 16 ${isLoggedIn 17 ? html`<a href="/dashboard">Go to Dashboard</a>` 18 : html`<a href="/register">Start Free</a>`} 19 <a href="https://chrome.google.com/webstore/detail/blialaknaihmoaglaehijlpclomipfhi" target="_blank" rel="noopener">Add to Chrome â It's Free</a> 20 </nav> 21 22 <ol> 23 <li><strong>Press hotkey</strong> - Activate anywhere with a global shortcut</li> 24 <li><strong>Speak naturally</strong> - Just talk like you normally would</li> 25 <li><strong>Paste anywhere</strong> - Clean, formatted text in your clipboard</li> 26 </ol> 27 </section> 28 29 <section id="features"> 30 <h2>Why Bolt Scribe?</h2> 31 32 <article> 33 <h3>Lightning Fast</h3> 34 <p>Sub-second transcription powered by Groq. Speak for a minute, get text back in under a second.</p> 35 </article> 36 37 <article> 38 <h3>AI-Cleaned Text</h3> 39 <p>No "um"s, no filler words. Your rambling becomes polished prose automatically.</p> 40 </article> 41 42 <article> 43 <h3>Works Everywhere</h3> 44 <p>Desktop app with global hotkey. Chrome extension for browser-native experience.</p> 45 </article> 46 47 <article> 48 <h3>Custom Templates</h3> 49 <p>Email replies, code comments, meeting notes - customize how your text is formatted.</p> 50 </article> 51 52 <article> 53 <h3>Privacy First</h3> 54 <p>Audio is processed and immediately deleted. We don't store your recordings.</p> 55 </article> 56 57 <article> 58 <h3>Cross Platform</h3> 59 <p>Linux, macOS, and Windows. Your voice works the same everywhere.</p> 60 </article> 61 </section> 62 63 <section id="pricing"> 64 <h2>Simple Pricing</h2> 65 <p>Start free, upgrade when you need more</p> 66 67 <article> 68 <h3>Free</h3> 69 <p><strong>$0</strong> forever</p> 70 <ul> 71 <li>30 minutes / month</li> 72 <li>Default templates</li> 73 <li>Desktop app + extension</li> 74 </ul> 75 ${isLoggedIn 76 ? html`<a href="/dashboard">Go to Dashboard</a>` 77 : html`<a href="/register">Get Started</a>`} 78 </article> 79 80 <article> 81 <h3>Monthly</h3> 82 <p><strong>$10/mo</strong> billed monthly</p> 83 <ul> 84 <li>10 hours / month</li> 85 <li>Custom templates</li> 86 <li>Priority processing</li> 87 </ul> 88 ${isLoggedIn 89 ? html`<a href="/subscription">Manage Subscription</a>` 90 : html`<a href="/register">Get Started</a>`} 91 </article> 92 93 <article> 94 <h3>Annual</h3> 95 <p><strong>$100/yr</strong> billed yearly</p> 96 <ul> 97 <li>10 hours / month</li> 98 <li>Custom templates</li> 99 <li>Priority processing + support</li> 100 </ul> 101 ${isLoggedIn 102 ? html`<a href="/subscription">Manage Subscription</a>` 103 : html`<a href="/register">Get Started</a>`} 104 </article> 105 </section> 106 107 <section id="cta"> 108 <h2>Ready to transcend the keyboard?</h2> 109 <p>Join thousands typing at 300 words per minute.</p> 110 ${isLoggedIn 111 ? html`<a href="/dashboard">Go to Dashboard</a>` 112 : html`<a href="/register">Get Started Free</a>`} 113 </section> 114 </main> 115 `; 116};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.