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

GrepTime
ScyllaDB
SecuroSys
Katalon
Talon.one
Tezos
CrazyGames
GrepTime
ScyllaDB
SecuroSys
Katalon
Talon.one
Tezos
CrazyGames
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 guide

Override 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.

DimensionPagefindBiel.ai
Query typePagefind builds a static keyword index at build time. Returns a list of pages.Natural-language questions. Returns a synthesized answer with source links.
Source attributionPage title and excerpt with the matching keyword highlighted.Direct answer plus a link to the specific section it came from.
MDX componentsPagefind 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.
i18nOne 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.
AnalyticsNo content-gap signal. Pagefind doesn't track queries.Unanswered questions, satisfaction trends, and a Content Gaps view that updates daily.
InstallBuilt into Starlight. Zero install.A Footer component override and one config block. Live in 15 minutes.
CostFree, 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.
Try me ↓