SplashKit Documentation Website Migration & Build
Project
Documentation Site Migration & Build for SplashKit
SplashKit is an open-source programming SDK that makes game and multimedia development approachable for beginners. It provides high-level APIs for graphics, audio, input, and platform-agnostic tooling across C++, C#, and Python.
Why Astro + Starlight
- Astro pre-renders content to static HTML, keeping runtime JS minimal.
- Starlight provides a modern documentation UI with built-in navigation, search, and code highlighting.
- MDX enables interactive components directly inside documentation pages.
What I Built
Repo Structure
/public/ ← static assets (images, gifs)
/scripts/ ← generators for docs + usage content
/src/
├─ assets/ ← images referenced in MDX
├─ components/ ← reusable UI blocks
├─ content/
│ └─ docs/ ← .md/.mdx docs + API pages
├─ fonts/
└─ styles/ ← global + theme styles
astro.config.mjs
package.json
tsconfig.json
JSON → MDX Pipeline
I wrote Node scripts to convert structured JSON (API definitions, usage specs) into MDX pages with frontmatter and sidebar metadata. This keeps docs data-driven and easy to update.
Key scripts
npm run generate-mdxnpm run generate-usage-examples-pages
MDX + Components
MDX allows embedding custom UI elements directly in docs:
- API tables with prop types
- Interactive code samples
- Themed callouts and alerts
- Structured sidebar navigation
Outcomes
- Performance: ~40% faster loads vs. the legacy Ruby site.
- Developer Experience: JSON → MDX automation reduces manual updates.
- Scalability: content is source-controlled and easy to extend as the SDK evolves.

