···12121313 const SAMPLE_SUMMARY = `## The lede
14141515-This is the **same chrome** as the Lede extension: summarize the active tab, then chat with answers grounded in that text.
1515+This is what the **Lede** popup looks like: one tap for a short summary, then chat about the page.
16161717-- **Quick Summary** is real in the build you install—here it’s sample copy.
1818-- **Chat** uses placeholder replies so you can try the layout without an API key.
1919-- Use **Regenerate** after a summary to replay the flow.`;
1717+- **Quick Summary** uses sample text here; after you install it reads the tab you’re on.
1818+- **Chat** shows placeholder answers on this site so you can try the layout at your own pace.
1919+- Tap **Regenerate** to replay the sample summary.`;
20202121 const ASSISTANT_REPLIES = [
2222- "In the installed extension I read the tab’s extracted text and answer from that. Here you’re seeing canned replies so the marketing site stays fast and private.",
2323- "After you install, open **Settings** (this demo’s gear only shows a hint) to point at **Ollama** or your own API and model.",
2424- "Try **Regenerate** on the summary card to replay the streamed summary—useful when a page updates underneath you.",
2222+ "Once Lede is installed, answers come from the article open in your browser. Here the replies are samples so this page stays quick and private.",
2323+ "When you’re ready, open **Settings** in the real extension to choose a model on your computer or one you already use.",
2424+ "**Regenerate** on the summary is handy if the page changed and you want a fresh take.",
2525 ];
26262727 let currentTheme = "system";
···1414 </article>
1515 <article class="editorial-block">
1616 <h3 class="heading-md">Questions stay grounded</h3>
1717- <p>Follow-ups reference the page and the summary you already generated—no free-floating chat pretending it read for you.</p>
1717+ <p>Follow-ups stick to the page and the summary you already made—no vague answers from something that never read the article.</p>
1818 </article>
1919 <article class="editorial-block">
2020- <h3 class="heading-md">Your stack</h3>
2121- <p>Ollama native, OpenAI-compatible hosts, Groq, LM Studio—pick the model and base URL in settings instead of a locked vendor.</p>
2020+ <h3 class="heading-md">Your choice of AI</h3>
2121+ <p>Use a model on your machine or one you already pay for—set it once in settings instead of being locked to a single vendor.</p>
2222 </article>
2323 </div>
2424</section>
+25-8
src/components/sections/FAQCompact.astro
···11+---
22+interface Props {
33+ tangled: string;
44+}
55+66+const { tangled } = Astro.props;
77+---
88+19<section id="faq" class="section wrap" aria-labelledby="faq-heading">
210 <header class="section__head">
311 <p class="eyebrow">FAQ</p>
44- <h2 id="faq-heading" class="heading-xl">When something blocks install</h2>
1212+ <h2 id="faq-heading" class="heading-xl">Quick answers</h2>
513 </header>
614 <div class="faq-stack">
715 <details class="faq-disclosure">
88- <summary>Cannot connect to localhost:11434</summary>
1616+ <summary>Why isn't Lede in the store yet?</summary>
1717+ <div class="faq-disclosure__body">
1818+ <p>
1919+ We're still in beta and iterating quickly. Installing from the project page keeps early testers close to
2020+ the latest fixes while we work toward a store listing.
2121+ </p>
2222+ </div>
2323+ </details>
2424+ <details class="faq-disclosure">
2525+ <summary>Does Lede watch everything I read?</summary>
926 <div class="faq-disclosure__body">
1027 <p>
1111- Run <span class="kbd">ollama serve</span>, confirm models with <span class="kbd">ollama list</span>, and keep
1212- Native mode on <span class="kbd">http://localhost:11434</span> without <span class="kbd">/v1</span>.
2828+ No. Lede only looks at the active tab when you open it and run a summary or a question. There isn't a
2929+ background feed of your browsing.
1330 </p>
1431 </div>
1532 </details>
1633 <details class="faq-disclosure">
1717- <summary>HTTP 403 or 405</summary>
3434+ <summary>Setup or connection errors</summary>
1835 <div class="faq-disclosure__body">
1936 <p>
2020- Wrong API mode for the URL: Native → no <span class="kbd">/v1</span>. OpenAI-compatible → include
2121- <span class="kbd">/v1</span> (for example <span class="kbd">http://localhost:11434/v1</span> for Ollama
2222- compatibility mode).
3737+ If something won't connect or the README mentions a setting you don't recognize, the
3838+ <a href={tangled} target="_blank" rel="noopener noreferrer">project page</a> has the latest step-by-step
3939+ notes—we keep them with the extension itself.
2340 </p>
2441 </div>
2542 </details>
+7-7
src/components/sections/HeroWithProof.astro
···99<section class="hero-mast" aria-labelledby="hero-heading">
1010 <div class="wrap hero-mast__grid reveal-group">
1111 <div class="hero-mast__copy">
1212- <p class="eyebrow reveal-item" style="--i: 0">Page summarizer and chat · Chrome and Firefox</p>
1212+ <p class="eyebrow reveal-item" style="--i: 0">Summarize any page · Chrome and Firefox</p>
1313 <h1 id="hero-heading" class="display-hero reveal-item" style="--i: 1">Don't bury the lede</h1>
1414 <p class="deck reveal-item" style="--i: 2">
1515- Summarize and ask about <strong>this tab</strong> before you spend twenty minutes on noise.
1515+ Get the gist of <strong>this tab</strong> in a few seconds—then ask follow-ups if you want more.
1616 </p>
1717 <p class="lede lede--tight reveal-item" style="--i: 3">
1818- Answers trace the page you have open—not a blank assistant waiting for a prompt.
1818+ Lede reads what you're looking at, not a blank chat box that guesses what you meant.
1919 </p>
2020 <div class="actions reveal-item" style="--i: 4">
2121 <a class="btn btn--primary" href="#install">Install (beta)</a>
2222 <a class="btn btn--secondary" href={tangled} target="_blank" rel="noopener noreferrer">
2323- Extension repo on Tangled
2323+ Get Lede
2424 </a>
2525 </div>
2626- <p class="eyebrow reveal-item" style="--i: 5; margin-top: var(--space-md)">Keyboard</p>
2626+ <p class="eyebrow reveal-item" style="--i: 5; margin-top: var(--space-md)">Shortcut</p>
2727 <p
2828 class="reveal-item"
2929 style="--i: 6; margin: 0; font-size: var(--text-sm); color: var(--color-ink-secondary)"
···4040 id="extension-demo"
4141 class="extension-demo"
4242 src="/extension-demo/index.html"
4343- title="Interactive Lede popup demo: summarize and chat (mocked responses)"
4343+ title="Try the Lede popup: sample summary and replies"
4444 width="400"
4545 height="560"
4646 loading="eager"></iframe>
···4848 <figcaption class="hero-proof__caption">
4949 <span class="beta-tag">Beta</span>
5050 <span class="hero-proof__capline">
5151- Interactive demo uses the same popup layout as the extension—mocked summary and chat only.
5151+ Play with the real layout here; after you install, summaries use your page and your settings.
5252 </span>
5353 <button type="button" class="demo-reset" id="extension-demo-reset">Reset demo</button>
5454 </figcaption>
+38-45
src/components/sections/InstallJourney.astro
···1010 <div class="wrap">
1111 <header class="section__head section__head--install">
1212 <p class="eyebrow reveal-item" style="--i: 0">Install</p>
1313- <h2 id="install-heading" class="heading-xl reveal-item" style="--i: 1">From repo to toolbar</h2>
1313+ <h2 id="install-heading" class="heading-xl reveal-item" style="--i: 1">Try the beta</h2>
1414 </header>
15151616 <div class="journey-band journey-band--callout reveal-item" style="--i: 2">
1717 <p class="journey-band__text">
1818- <strong>Clone webai-summarizer on Tangled</strong>—not this marketing repo. You need a folder that contains
1919- <code class="kbd">manifest.json</code>. <code class="kbd">lede-website</code> is only this page.
1818+ Lede isn't in the Chrome or Firefox stores yet. Download the extension folder from the project page, then
1919+ add it to your browser—full click-by-click steps are there too.
2020 </p>
2121 </div>
22222323 <div class="journey-strip reveal-item" style="--i: 3" aria-label="Three-step overview">
2424 <div class="journey-strip__cell">
2525 <span class="journey-strip__num" aria-hidden="true">1</span>
2626- <h3 class="journey-strip__title">Get the code</h3>
2727- <p class="journey-strip__body">Download or clone the extension repo so the project lives on disk.</p>
2828- <a href={tangled} target="_blank" rel="noopener noreferrer">Open Tangled repo</a>
2626+ <h3 class="journey-strip__title">Grab the build</h3>
2727+ <p class="journey-strip__body">Open the project page and download the extension files to your computer.</p>
2828+ <a href={tangled} target="_blank" rel="noopener noreferrer">Open project page</a>
2929 </div>
3030 <div class="journey-strip__cell">
3131 <span class="journey-strip__num" aria-hidden="true">2</span>
3232- <h3 class="journey-strip__title">Choose a browser</h3>
3333- <p class="journey-strip__body">Chrome uses unpacked load; Firefox uses a temporary add-on.</p>
3232+ <h3 class="journey-strip__title">Add it in the browser</h3>
3333+ <p class="journey-strip__body">Chrome and Firefox each have a simple “load from folder” flow for betas.</p>
3434 </div>
3535 <div class="journey-strip__cell">
3636 <span class="journey-strip__num" aria-hidden="true">3</span>
3737- <h3 class="journey-strip__title">Load and configure</h3>
3838- <p class="journey-strip__body">Point settings at Ollama native or an OpenAI-compatible endpoint, then try a tab.</p>
3737+ <h3 class="journey-strip__title">Pick how Lede thinks</h3>
3838+ <p class="journey-strip__body">In settings, choose a local model or another provider you already use.</p>
3939 </div>
4040 </div>
41414242- <div class="install-wrap reveal-item" style="--i: 4">
4343- <div class="install-panel">
4444- <div>
4545- <h3 class="heading-lg">Chrome</h3>
4646- <ol>
4747- <li>Open <span class="kbd">chrome://extensions/</span></li>
4848- <li>Enable <strong>Developer mode</strong></li>
4949- <li>Click <strong>Load unpacked</strong></li>
5050- <li>Select the <strong>webai-summarizer</strong> folder that contains <code class="kbd">manifest.json</code></li>
5151- <li>Optional: shortcuts at <span class="kbd">chrome://extensions/shortcuts</span></li>
5252- </ol>
4242+ <details class="disclosure reveal-item" style="--i: 4">
4343+ <summary>Step-by-step for Chrome or Firefox</summary>
4444+ <div class="disclosure__body install-wrap">
4545+ <div class="install-panel">
4646+ <div>
4747+ <h3 class="heading-lg">Chrome</h3>
4848+ <ol>
4949+ <li>Open <span class="kbd">chrome://extensions/</span></li>
5050+ <li>Enable <strong>Developer mode</strong></li>
5151+ <li>Click <strong>Load unpacked</strong></li>
5252+ <li>Select the extension folder that contains <code class="kbd">manifest.json</code></li>
5353+ <li>Optional: shortcuts at <span class="kbd">chrome://extensions/shortcuts</span></li>
5454+ </ol>
5555+ </div>
5656+ <div>
5757+ <h3 class="heading-lg">Firefox</h3>
5858+ <ol>
5959+ <li>Open <span class="kbd">about:debugging#/runtime/this-firefox</span></li>
6060+ <li>Click <strong>Load Temporary Add-on</strong></li>
6161+ <li>Select <strong>manifest.json</strong> inside the extension folder</li>
6262+ <li>Add-ons → gear → <strong>Manage Extension Shortcuts</strong> for the hotkey</li>
6363+ </ol>
6464+ <p class="firefox-note">
6565+ Temporary add-ons clear when you fully quit Firefox—reload during active dev sessions.
6666+ </p>
6767+ </div>
5368 </div>
5454- <div>
5555- <h3 class="heading-lg">Firefox</h3>
5656- <ol>
5757- <li>Open <span class="kbd">about:debugging#/runtime/this-firefox</span></li>
5858- <li>Click <strong>Load Temporary Add-on</strong></li>
5959- <li>Select <strong>manifest.json</strong> inside <strong>webai-summarizer</strong></li>
6060- <li>Add-ons → gear → <strong>Manage Extension Shortcuts</strong> for the hotkey</li>
6161- </ol>
6262- <p class="firefox-note">
6363- Temporary add-ons clear when you fully quit Firefox—reload during active dev sessions.
6464- </p>
6565- </div>
6666- </div>
6767- </div>
6868-6969- <details class="disclosure reveal-item" style="--i: 5">
7070- <summary>Advanced: build scripts per browser</summary>
7171- <div class="disclosure__body">
7272- <p>
7373- If you already use split manifests, <span class="kbd">./build.sh chrome</span> or
7474- <span class="kbd">./build.sh firefox</span> from the extension repo targets a specific build.
7575- </p>
7669 </div>
7770 </details>
78717979- <p class="repo-note reveal-item" style="--i: 6">
8080- Source:
7272+ <p class="repo-note reveal-item" style="--i: 5">
7373+ Project:
8174 <a href={tangled} target="_blank" rel="noopener noreferrer">{tangled}</a>
8275 </p>
8376 </div>
+9-8
src/components/sections/PrivacyBand.astro
···11<section id="privacy" class="section section--dark" aria-labelledby="privacy-heading">
22 <div class="wrap">
33 <header class="section__head">
44- <p class="eyebrow">Privacy and APIs</p>
55- <h2 id="privacy-heading" class="heading-xl">Where text goes</h2>
44+ <p class="eyebrow">Privacy</p>
55+ <h2 id="privacy-heading" class="heading-xl">Your reading stays yours</h2>
66 </header>
77 <div class="split split--privacy">
88 <div class="prose prose--dark">
99- <h3 class="heading-md">Ollama native</h3>
99+ <h3 class="heading-md">On your computer</h3>
1010 <p>
1111- <code class="kbd">/api/generate</code> on your machine. Base URL omits <span class="kbd">/v1</span>.
1111+ Point Lede at a local model and page text stays on your machine. Nothing is uploaded in the background while
1212+ you browse.
1213 </p>
1314 </div>
1415 <div class="prose prose--dark">
1515- <h3 class="heading-md">OpenAI-compatible</h3>
1616+ <h3 class="heading-md">When you use a cloud model</h3>
1617 <p>
1717- <code class="kbd">/v1/chat/completions</code> to the endpoint you configure. Content leaves the browser only when
1818- you summarize or chat—not via a script on every site.
1818+ If you connect to a hosted service you trust, text is sent only when you summarize or chat—not on every site
1919+ you visit.
1920 </p>
2021 </div>
2122 </div>
2222- <p class="privacy-kicker prose prose--dark">Extraction is on-demand when you ask.</p>
2323+ <p class="privacy-kicker prose prose--dark">Lede only reads a tab when you ask it to.</p>
2324 </div>
2425</section>
+2-2
src/components/sections/UsageMicro.astro
···2828 </ol>
29293030 <p class="usage-afterword">
3131- The hero above is a live shell of the extension popup—try theme, <strong>Quick Summary</strong>, and chat there;
3232- install from source for the real pipeline (page extraction, your model, settings).
3131+ The preview above matches the real popup—try the theme, <strong>Quick Summary</strong>, and chat. After you install,
3232+ those same controls work on whatever page you have open.
3333 </p>
3434</section>