What is fumablox?
A Luau compiler for documentation, with Fumadocs as the stage.
Fumablox is not a Markdown exporter with extra steps. It compiles your Luau project into a semantic model, then uses that model for everything else: API pages, search, graphs, coverage, and diffs.
Fumadocs is the presentation layer
Handwritten MDX is for guides, architecture, and tutorials. Generated MDX is for the API. They live in the same site, with the same search.
Install
Scaffold a Fumadocs app and point it at your src/
The compiler
How Luau becomes a semantic model
CLI
generate, check, graph, search, diff
Wally
Packages as first-class docs objects, not a second registry
The idea
Moonwave asks you to annotate almost every member, then hides the result inside a Docusaurus plugin.
Fumablox does the inverse:
export type Aircraft = {
altitude: number,
speed: number,
Takeoff: (self: Aircraft) -> (),
}
function Aircraft:Takeoff()
endThat is already enough for an Aircraft page — properties, methods, source links, dependants. A --- comment is how you explain why, not how you restate the signature.
What comes out
┌── API reference
│
Luau ──► parser ────┼── search
│
├── require() graphs
│
├── API diff
│
└── check / coverage
MDX ───────────────────► guidesThe sample on this site is compiled into API reference. Coverage is intentionally imperfect: Aircraft has no doc comments on purpose, so fumablox check has something to nag about.