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 Sourcey
OpenAPI reference Community plugin Native
Doxygen / C++ docs No Native
godoc / Go docs No Native
rustdoc / Rust docs No Native
MCP server docs No Native
Static HTML output Yes Yes
Near-zero JS Yes Yes
Content format Markdown / MDX / Markdoc Markdown and MDX
Built on Astro Yes Yes
License MIT AGPL-3.0
Pricing Free Free
Why switch

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

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.

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.

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

A live Sourcey build: generated OpenAPI reference as static HTML, the source format Starlight reads only through a community plugin.

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.

01

Init

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

npx sourcey init
02

Move your Markdown

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

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" }) },
    ],
  },
});
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.

Sourcey

Own your docs.

Open source under AGPL. Self-host it, fork it, run it on your own infrastructure.

Fork the demo →