Alternative

Starlight, with the API and code reference built in.

Starlight is an excellent Astro docs framework: static, near-zero-JS, MIT, and Markdown-first. On output model and performance, it and Sourcey are peers, and this page will not pretend otherwise. The difference is sources. Starlight is built for hand-authored Markdown; Sourcey generates reference from OpenAPI, MCP, Doxygen XML, godoc, and rustdoc in the same build.

Comparison

Side by side.

Both are Astro-based, static, and near-zero-JS. They tie on output and performance; they differ on how many source formats each reads first-party.

Starlight compared with Sourcey, feature by feature
FeatureStarlightSourcey
OpenAPI referenceCommunity pluginNative
Doxygen / C++ docsNoNative
godoc / Go docsNoNative
rustdoc / Rust docsNoNative
MCP server docsNoNative
Static HTML outputYesYes
Near-zero JSYesYes
Content formatMarkdown / MDX / MarkdocMarkdown and MDX
Built on AstroYesYes
LicenseMITAGPL-3.0
PricingFreeFree
Why switch

Where the two differ, and where they don't.

  1. 01

    Reference is hand-authored or a community plugin

    Starlight is Markdown, MDX, and Markdoc first. OpenAPI comes through the community starlight-openapi plugin, and there is no notable Doxygen, godoc, rustdoc, or MCP path. Sourcey treats those as first-party source types, so the reference is generated, not written by hand or bolted on.

    The common OpenAPI route for Starlight is the community starlight-openapi integration. Sourcey reads OpenAPI, MCP, Doxygen XML, godoc, and rustdoc as built-in sources.

  2. 02

    Both are Node builds; the inputs differ

    Both tools need a Node build: Starlight through Astro, Sourcey as an npm package (with Docker and Nix images if you would rather not install Node directly). Neither is zero-setup for a C++ or Go team. The real difference is what each can read: Starlight renders Markdown you write, while Sourcey also generates reference from the Doxygen XML, godoc, and rustdoc those teams already produce.

  3. 03

    Generate versus hand-write

    Starlight assumes you author the pages. Sourcey assumes a spec or a source tree generates the reference and you write the guides around it. If your docs are entirely hand-written Markdown, that assumption is a wash; if they track an API or a codebase, generation is the difference.

What Sourcey produces
Sourcey documentation output screenshot

A live Sourcey build: OpenAPI reference as static HTML, with no client-side framework shipped to the reader.

Migration

Bring your Markdown. Add what Starlight could not read.

Markdown transfers cleanly between two Markdown-first, Astro-based tools. The win is adding generated reference, not redoing the guides.

  1. 01

    Init

    Creates sourcey.config.ts and detects any OpenAPI specs in the project.

    npx sourcey init
  2. 02

    Move your Markdown

    Content pages transfer directly. Starlight frontmatter and sidebar config become Sourcey navigation in sourcey.config.ts.

  3. 03

    Add first-party reference

    Point a tab at your OpenAPI spec, Doxygen XML, godoc, or rustdoc. This is the part Starlight needed a plugin for or could not do.

    import { defineConfig, doxygen, markdown } from "sourcey";
    
    export default defineConfig({
      name: "Your Library",
      navigation: {
        tabs: [
          { tab: "Guides", source: markdown({ groups: [] }) },
          { tab: "API Reference", source: doxygen({ xml: "./build/xml", language: "cpp" }) },
        ],
      },
    });
  4. 04

    Build

    Static HTML, the same near-zero-JS output model you already had. Deploy anywhere.

    $ npx sourcey build
    
    Sourcey: building documentation site
      Output: dist/
FAQ

Common questions.

Isn't Starlight also static and near-zero-JS?

Yes. On output model, performance, and license they are peers, and you should not switch for those reasons. The reason to choose Sourcey is first-party OpenAPI, MCP, Doxygen, godoc, and rustdoc in one build. The reason to stay on Starlight is that your docs are hand-written Markdown and you do not need generated reference.

Both are built on Astro. What is actually different?

Sources. Starlight is built to render Markdown you author. Sourcey is built to generate reference from a spec or a source tree, and to render your guides alongside it. Same output model, different input model.

Should I use Starlight instead?

If your documentation is hand-written Markdown with no API or code reference, Starlight is a great choice and there is little reason to move. If you need generated reference from OpenAPI, Doxygen, godoc, rustdoc, or MCP in one site, that is what Sourcey adds.

Can I bring my Starlight docs?

Markdown transfers cleanly, since both tools are Markdown-first. Sidebar and frontmatter config moves into sourcey.config.ts. The point of moving is to add the reference Starlight needed a plugin for or could not read at all.