How would you document a whole "ecosystem" of interconnected packages for the web?

Hey everyone,

I’ve run into a bit of a “luxury problem” with my Typst packages and I’d love to get your perspective on it.

I’ve built a collection of packages for school/educational use (STEM/MINT) that all work together. It’s a bit of a monorepo situation:

Layouts for worksheets and exams.

Specialized tools for Physics (circuits, regressions), Math (plotting), and CS (Scratch-blocks, crypto).

The thing is: They are all super interconnected. For example, my worksheet package pulls in almost everything else to provide a “one-stop-shop” for teachers.

My struggle: I’m currently using Mantys (which I love for PDF docs), but I really want a nice online documentation like CeTZ has. However, listing them “Package A, Package B, Package C” feels wrong for the user. A teacher doesn’t care which package a function is in; they just want to see a chapter on “Physics” or “Layouting.”

I’m curious how you would approach this:

Has anyone successfully built a thematic (topic-based) web-doc that pulls from multiple Typst packages?

I’ve looked at Shiroa, but I’m finding it tricky to merge different sources into one cohesive flow without it looking like a mess.

Would you stick with Typst-native tools (like Shiroa), or would you just export everything to Markdown via Tidy and throw it into something like Starlight or Docusaurus?

I really want to keep that “Typst-native” look and feel, but the “interconnectedness” of my modules is making the documentation structure a bit of a headache.

How are you guys handling documentation when your project grows beyond a single simple package? Any advice or “I’ve tried this and it failed” stories are welcome!

Cheers!

2 Likes

In an ideal world, each package should be used independently, or at least the interconnection should be one way. Is your implementation made the creation of a one big package impossible ?

That said, for Typst packages I use Mantys. But for other languages (Julia to not mention it), I generally use Quarto.

Finally, the description of your package is really. I am looking forward to play with it.