Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Stardust

A Dart-native documentation generator. Beautiful docs, zero config.

CI codecov License


Why Stardust?

Building documentation shouldn't require a JavaScript toolchain. Stardust is a fast, native documentation generator built entirely in Dart — no Node.js, no npm, no webpack. Just beautiful docs.

  • Zero Configuration — Sensible defaults out of the box. Start writing immediately.
  • Blazing Fast — Native Dart binary. Builds in milliseconds, not minutes.
  • Beautiful by Default — Clean, modern design with automatic dark mode.
  • Rich Components — Callouts, tabs, code groups, API docs, and 30+ components.
  • Full-Text Search — Powered by Pagefind. No external services required.
  • SEO Optimized — Automatic sitemap, robots.txt, Open Graph, and Twitter Cards.
  • OpenAPI Import — Generate API documentation from your Swagger/OpenAPI specs.

Installation

macOS

Homebrew (recommended)

brew tap nexlabstudio/tap
brew install stardust

curl

curl -sSL https://raw.githubusercontent.com/nexlabstudio/stardust/dev/install.sh | bash

Linux

curl (recommended)

curl -sSL https://raw.githubusercontent.com/nexlabstudio/stardust/dev/install.sh | bash

Snap

snap install stardust

Windows

Scoop (recommended)

scoop install https://raw.githubusercontent.com/nexlabstudio/stardust/dev/scoop/stardust.json

Chocolatey

choco install stardust

Manual Download

Download pre-built binaries from the Releases page.

Platform Architecture Download
macOS Apple Silicon stardust-darwin-arm64.tar.gz
macOS Intel stardust-darwin-x64.tar.gz
Linux x64 stardust-linux-x64.tar.gz
Linux ARM64 stardust-linux-arm64.tar.gz
Windows x64 stardust-windows-x64.zip

Quick Start

1. Create a new project

stardust init my-docs
cd my-docs

2. Start the dev server

stardust dev

Open http://localhost:4000 to see your docs with live reload.

3. Build for production

stardust build

Your static site is ready in dist/. Deploy anywhere.


Project Structure

my-docs/
├── docs/              # Your markdown files
│   ├── index.md       # Home page
│   └── guide.md       # Additional pages
├── public/            # Static assets (images, etc.)
├── stardust.yaml      # Configuration
└── dist/              # Build output (generated)

Features

Rich Component Library

Write expressive documentation with JSX-style components:

<Info>This is an informational callout.</Info>

<Tabs>
  <Tab name="npm">npm install package</Tab>
  <Tab name="yarn">yarn add package</Tab>
</Tabs>

<Steps>
  <Step title="Install">Run the installer</Step>
  <Step title="Configure">Edit the config file</Step>
  <Step title="Deploy">Push to production</Step>
</Steps>

30+ built-in components: Callouts, Tabs, Accordions, Cards, Steps, Code Groups, API docs, YouTube/Vimeo embeds, Mermaid diagrams, and more.

API Documentation

Document your APIs beautifully:

<Api method="GET" path="/users/{id}">
  <ParamField name="id" type="string" required>User ID</ParamField>
  <ResponseField name="email" type="string">User's email</ResponseField>
</Api>

Or import directly from OpenAPI/Swagger:

stardust openapi openapi.yaml -o docs/api

Full-Text Search

Search is built-in and works offline. Powered by Pagefind.

  • Press / or Cmd+K to search
  • No external services or API keys required
  • Works entirely client-side

Dark Mode

Automatic dark mode that respects system preferences. Or let users toggle manually.

SEO Ready

  • Automatic sitemap.xml generation
  • Configurable robots.txt
  • Open Graph and Twitter Card meta tags
  • Clean, semantic HTML output

Configuration

Create a stardust.yaml in your project root:

name: My Project
description: Documentation for My Project
url: https://docs.myproject.com

nav:
  - label: Guide
    href: /
  - label: API
    href: /api
  - label: GitHub
    href: https://github.com/myorg/myproject
    external: true

sidebar:
  - group: Getting Started
    pages:
      - index
      - installation
      - quickstart

theme:
  colors:
    primary: "#6366f1"
  darkMode:
    enabled: true
    default: system

search:
  enabled: true
  placeholder: "Search docs..."
  hotkey: "/"

Commands

Command Description
stardust init [dir] Create a new documentation project
stardust dev Start dev server with hot reload
stardust build Build static site for production
stardust openapi <spec> Generate docs from OpenAPI spec

Deployment

Stardust generates a static site in dist/. Deploy anywhere static files are served.

GitHub Pages (recommended)

Use the official Stardust Docs action — it installs a checksum-verified binary, runs stardust check, and builds your site (no Node or Python toolchain). See the action docs for all inputs and PR-preview recipes.

# .github/workflows/deploy.yml
name: Deploy docs
on:
  push:
    branches: [main]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: nexlabstudio/stardust@v0.7.0   # pin to the latest release
      - uses: actions/upload-pages-artifact@v3
        with:
          path: dist
      - uses: actions/deploy-pages@v4

GitHub Action

The Stardust Docs action installs a pinned, checksum-verified binary, optionally runs stardust check, and builds your site — usable in any workflow, not just Pages.

- uses: nexlabstudio/stardust@v0.7.0
  with:
    version: latest   # or a pinned release, e.g. v0.7.0
    check: true       # run `stardust check` before building

Inputs

Input Default Description
version latest Release to install (pin to e.g. v0.7.0 for reproducible builds)
config stardust.yaml Path to your config file
output dist Output directory
check true Run stardust check before building
working-directory . Directory to run in
args '' Extra arguments passed to stardust build

Outputs

Output Description
output-dir Absolute path to the built site
version The Stardust version that was installed

See the full action docs for PR-preview recipes (Netlify, Vercel, Cloudflare Pages).

Vercel / Netlify / Cloudflare Pages

These platforms don't have Stardust pre-installed. Two options:

Option 1: Build with GitHub Actions, deploy output

Build in CI, then deploy the dist/ folder. Set your platform to serve from the build output.

Option 2: Install during build

# Build command (Vercel/Netlify/Cloudflare)
curl -sSL https://raw.githubusercontent.com/nexlabstudio/stardust/dev/install.sh | bash && stardust build

# Output directory
dist

Any Static Host

Just upload the dist/ folder to any web server, CDN, or object storage (S3, GCS, etc.).


Comparison

Feature Stardust docs.page Mintlify Starlight Docusaurus VitePress GitBook
No Node.js required
Zero config
Self-hosted
Free & open source Freemium
JSX-style components
Built-in search
OpenAPI/Swagger import Plugin Plugin Plugin
Dark mode
SEO (sitemap, meta tags)
Edit on GitHub
i18n / Multi-language 🚧
Versioning 🚧
API documentation Plugin Plugin Plugin
LLM-friendly output
Mermaid diagrams
Dart/Flutter focus

✅ = Built-in | 🚧 = Coming soon | Plugin = Requires plugin/addon | ❌ = Not available


Contributing

Contributions are welcome! Please read our contributing guidelines before submitting a PR.

# Clone the repo
git clone https://github.com/nexlabstudio/stardust.git
cd stardust

# Install dependencies
dart pub get

# Run tests
dart test

# Run locally
dart run bin/stardust.dart --help

License

Apache-2.0 — See LICENSE for details.


Built with Dart. Made for developers who value simplicity.

About

The Dart-native documentation framework. Beautiful docs, zero config.

Topics

Resources

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages