For Astro Starlight
Ask AI for your Starlight docs
Add an Ask AI chatbot or AI search widget to your Starlight site. Readers ask questions in plain language and get source-cited answers, alongside Pagefind.
14-day freeSelf-serveLive in 15 min
docs.acme.dev/guides/rate-limits
Acme
Search/
Per-route rate limiting
Acme rate-limits requests per route. Each endpoint has its own bucket, configured at deploy time. Limits are enforced at the edge before requests reach your handler.
bashTerminal
# Configure rate limit per route curl -X PATCH https://api.acme.dev/v1/routes/checkout \ -d '{"rate_limit": {"requests": 100, "per": "minute"}}'
ⓘNote: Authenticated traffic is metered separately from anonymous traffic.
Used by teams that take their documentation seriously
Install
Three ways to ship Biel on Starlight
A floating Ask AI chatbot via a Footer override, an AI search field via a Search component override, or a hosted MCP endpoint Claude and Cursor can query directly.
Full installation guideOverride the Footer component
Starlight exposes its layout slots through
components in astro.config.mjs. Drop a CustomFooter.astro with the chat button into src/components/ and load the CSS/JS via Starlight’s head config.- →Floating Ask AI button on every page
- →Five button positions, dark / light / default
- →Coexists with Pagefind, the built-in search
- →Works on Astro 4+ Starlight builds
src/components/CustomFooter.astro
---
import EditLink from 'virtual:starlight/components/EditLink';
import LastUpdated from 'virtual:starlight/components/LastUpdated';
import Pagination from 'virtual:starlight/components/Pagination';
---
<footer class="sl-flex">
<biel-button
project="<YOUR_PROJECT_ID>"
header-title="Documentation AI"
button-position="bottom-right"
button-style="dark">
Ask AI
</biel-button>
<EditLink {...Astro.props} />
<LastUpdated {...Astro.props} />
<Pagination {...Astro.props} />
</footer>
<!-- Then in astro.config.mjs, register the override and load
the CDN assets via Starlight's head config:
starlight({
head: [
{ tag: 'link', attrs: { rel: 'stylesheet',
href: '...biel-search.css' } },
{ tag: 'script', attrs: { type: 'module',
src: '...biel-search.esm.js' } },
],
components: {
Footer: './src/components/CustomFooter.astro',
},
})
-->Biel.ai vs Pagefind on Starlight
Pagefind is the built-in static search that ships with Starlight — fast, offline, free. Biel is built for natural-language questions with synthesized answers. Many Starlight sites run both.
| Dimension | Pagefind | Biel.ai |
|---|---|---|
| Query type | Pagefind builds a static keyword index at build time. Returns a list of pages. | Natural-language questions. Returns a synthesized answer with source links. |
| Source attribution | Page title and excerpt with the matching keyword highlighted. | Direct answer plus a link to the specific section it came from. |
| MDX components | Pagefind indexes the rendered HTML, so MDX components surface only as their compiled markup. | Reads the rendered output the same way, with semantic awareness — code blocks, asides, and admonitions stay in context. |
| i18n | One Pagefind index per locale. Locale switching mostly works. | Each locale indexed as its own source. Plus answers in 60+ languages, including ones your docs are not written in. |
| Analytics | No content-gap signal. Pagefind doesn't track queries. | Unanswered questions, satisfaction trends, and a Content Gaps view that updates daily. |
| Install | Built into Starlight. Zero install. | A Footer component override and one config block. Live in 15 minutes. |
| Cost | Free, included with Starlight. | From $50/mo, self-serve. 14-day free trial, no credit card required. |
Things teams ask during evaluation
Does it work with Starlight on Astro 4 and 5?
Yes. The widget is a web component loaded via the Starlight
head config and rendered in a Footer or Search component override. Tested on the current Starlight major versions.Can we keep Pagefind?
Yes. Pagefind is great for offline keyword lookup; many teams keep it. Biel sits alongside as a separate widget for natural-language questions. Two surfaces in your navbar, no conflict.
Does it understand MDX content?
Yes. Indexing happens against the rendered HTML, so MDX components, asides, and code blocks are read in context. Citations resolve to the right anchor.
What about i18n?
Each locale Starlight builds is indexed as a separate source. A reader on the German docs gets German answers, with citations resolving to the right
/de/ URL.Does it work on Vercel, Netlify, and Cloudflare Pages?
Yes. Starlight builds to static HTML; the widget loads from a CDN at runtime; indexing runs against your live URL. No host-specific config.
How long does the install take?
A Footer component file plus one config block in
astro.config.mjs. Most teams are live in 15 minutes including indexing.Where does our content go?
EU-hosted by default. GDPR compliant. Your content is never used to train models.
Make your Starlight docs answer questions
14-day free trial · No credit card required · From $50/mo
Use a different platform? See our integration pages for Docusaurus, MkDocs, Sphinx, Antora, and Jekyll.