Skip to content

Commit f3e86a2

Browse files
committed
feat: add FAQ section to website addressing common misconceptions
1 parent 2dd02e9 commit f3e86a2

2 files changed

Lines changed: 99 additions & 0 deletions

File tree

docs/assets/style.css

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,41 @@ h2 em { font-style: normal; color: var(--forest2); }
755755
}
756756
.footer-links a:hover { color: var(--forest); text-decoration: none; }
757757

758+
/* ── FAQ ──────────────────────────────────────────────────── */
759+
.faq-list { display: flex; flex-direction: column; gap: 2px; max-width: 800px; margin: 0 auto; }
760+
.faq-item {
761+
background: var(--surface);
762+
border: 1px solid var(--border);
763+
border-radius: 12px;
764+
padding: 28px 32px;
765+
margin-bottom: 12px;
766+
}
767+
.faq-item h3 {
768+
font-size: 1rem;
769+
font-weight: 600;
770+
color: var(--forest);
771+
margin-bottom: 12px;
772+
line-height: 1.4;
773+
}
774+
.faq-item p {
775+
font-size: 0.925rem;
776+
color: var(--text-muted);
777+
line-height: 1.7;
778+
margin-bottom: 8px;
779+
}
780+
.faq-item p:last-child { margin-bottom: 0; }
781+
.faq-item a { color: var(--lime); text-decoration: underline; }
782+
.faq-item a:hover { color: var(--forest); }
783+
.faq-item code {
784+
background: var(--bg3);
785+
border: 1px solid var(--border);
786+
border-radius: 4px;
787+
padding: 1px 6px;
788+
font-family: var(--mono);
789+
font-size: 0.85em;
790+
color: var(--forest);
791+
}
792+
758793
/* ── RESPONSIVE ───────────────────────────────────────────── */
759794
@media (max-width: 900px) {
760795
.hero-layout { grid-template-columns: 1fr; gap: 56px; }

docs/index.html

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
<a href="#how-it-works">How it works</a>
9797
<a href="#benchmarks">Benchmarks</a>
9898
<a href="#install">Install</a>
99+
<a href="#faq">FAQ</a>
99100
<a href="https://github.com/flightlesstux/prompt-caching" target="_blank" rel="noopener noreferrer">GitHub</a>
100101
</div>
101102
</div>
@@ -312,6 +313,69 @@ <h3>Add to your client's MCP config</h3>
312313
</div>
313314
</section>
314315

316+
<section class="section" id="faq">
317+
<div class="container">
318+
<div class="section-header">
319+
<h2>FAQ</h2>
320+
<p class="section-sub">Common questions — especially the skeptical ones.</p>
321+
</div>
322+
323+
<div class="faq-list">
324+
325+
<div class="faq-item">
326+
<h3>"Claude Code already does prompt caching automatically — why does this exist?"</h3>
327+
<p>
328+
You're right, and it's a fair question. Claude Code does handle prompt caching automatically for its own API calls — system prompts, tool definitions, and conversation history are cached out of the box. You don't need this plugin for that.
329+
</p>
330+
<p>
331+
This plugin is for a different layer: <strong>when you build your own apps or agents with the Anthropic SDK</strong>. Raw SDK calls don't get automatic caching unless you place <code>cache_control</code> breakpoints yourself. This plugin does that automatically, plus gives you visibility into what's being cached, hit rates, and real savings — which Claude Code doesn't expose.
332+
</p>
333+
<p>
334+
Short version: Claude Code using the API → already cached ✅ &nbsp; Your app calling the API → this plugin handles it ✅
335+
</p>
336+
</div>
337+
338+
<div class="faq-item">
339+
<h3>"Hasn't Anthropic's new auto-caching feature solved this?"</h3>
340+
<p>
341+
Largely, yes — Anthropic's automatic caching (passing <code>"cache_control": {"type": "ephemeral"}</code> at the top level) handles breakpoint placement automatically now. This plugin predates that feature and originally filled that gap.
342+
</p>
343+
<p>
344+
What it still adds: <strong>observability</strong>. <code>get_cache_stats</code> tracks hit rate and cumulative savings across turns. <code>analyze_cacheability</code> lets you dry-run a prompt to see exactly what would be cached and where breakpoints land — useful when debugging why you're getting cache misses. If you just want set-and-forget, Anthropic's auto-caching is enough.
345+
</p>
346+
</div>
347+
348+
<div class="faq-item">
349+
<h3>"I checked ccusage and my cache reads are already huge. Does this help me?"</h3>
350+
<p>
351+
If you're seeing high cache reads in Claude Code, that's the built-in caching working perfectly — this plugin won't improve those numbers further. It can't intercept Claude Code's own API calls.
352+
</p>
353+
<p>
354+
It would help you if you're also running your own scripts or agents via the Anthropic SDK alongside Claude Code. Those calls are separate and don't benefit from Claude Code's automatic caching.
355+
</p>
356+
</div>
357+
358+
<div class="faq-item">
359+
<h3>"Which models support prompt caching?"</h3>
360+
<p>
361+
Claude Opus 4.6/4.5/4.1/4, Sonnet 4.6/4.5/4/3.7, Haiku 4.5, Haiku 3.5, and Haiku 3.
362+
Minimum cacheable prompt size varies by model (1024–4096 tokens). See the
363+
<a href="https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing" target="_blank" rel="noopener noreferrer">official pricing table</a> for full details.
364+
</p>
365+
</div>
366+
367+
<div class="faq-item">
368+
<h3>"What's the cache lifetime?"</h3>
369+
<p>
370+
5 minutes by default (ephemeral), extended for free on every cache hit. A 1-hour TTL is also available at 2× the base input token price — useful for long-running agents or infrequent sessions.
371+
See <a href="https://platform.claude.com/docs/en/build-with-claude/prompt-caching" target="_blank" rel="noopener noreferrer">Anthropic's prompt caching docs</a> for the full breakdown.
372+
</p>
373+
</div>
374+
375+
</div>
376+
</div>
377+
</section>
378+
315379
<section class="section section-cta">
316380
<div class="container cta-inner">
317381
<p class="cta-eyebrow">Open source · MIT · Zero lock-in</p>

0 commit comments

Comments
 (0)