Credits
What duxt is built on, and what it was built after.
duxt is a thin layer over other people's work. Almost nothing it does is its own invention — the sourcing, the parsing, the components and the styling all come from projects that solved those problems first, and the honest description of this repository is the glue between them plus a handful of opinions.
Built on
| Project | What it does here |
|---|---|
| Vue | The component model everything here is written in |
| Nuxt | The framework, and the layer mechanism the whole idea rests on |
| Nuxt Content | Sourcing, parsing, querying — including the git-native repositories |
| shadcn-vue | The component base, copied into the layer rather than imported |
| reka-ui | The primitives underneath them: focus, roving tabindex, ARIA |
| Tailwind CSS | The styling system and the token layer |
| Shiki | Syntax highlighting, at build time |
| The icon sets | Four collections, one per kind of mark |
| MDC | Components callable from Markdown |
The version of each is in package.json, which is where a number belongs — a
second copy in prose is one that goes stale silently.
Icons
Four collections, because monochrome and self-coloured are different jobs — the rule that decides which draws what is written down under Conventions.
| Set | Draws | Licence |
|---|---|---|
| Lucide | the interface | ISC |
| vscode-icons | files, fence languages, the tools | MIT |
| Simple Icons | the marks vscode-icons does not carry | CC0-1.0 |
| flag-icons | the flag beside each locale | MIT |
The licence is named here rather than left to package.json because the build
inlines these SVGs into what ships: the package carries the works, so it carries
the notices.
A licence on a file is not a licence on a mark. The package managers, GitHub, Discord, Claude and OpenAI are trademarks of their owners; they are drawn here to name the thing they identify, and for nothing else.
Built after
Ideas duxt took from projects it is not built on. What it is built on is the table above — nothing is named twice.
- shadcn/ui — the original idea: components you own as files rather than import as a dependency. Every component in this layer is here because of it.
- shadcn-docs-nuxt — the closest neighbour, and the proof that a documentation template on Nuxt Content and shadcn-vue is worth having.
- Docus — the original "extend a layer, get a docs site" ergonomics in the Nuxt ecosystem.
- Nuxt UI — for the machine-readable end:
llms.txtand a documentation endpoint an agent can call, treated as build output rather than as an add-on. - VitePress and Starlight — for what a documentation theme owes a reader by default: a version switcher that survives navigation, a table of contents that tracks, search that is there without configuration.
Every project above documents one repository at one version. duxt's own reason to
exist starts where that stops: several repositories, several versions of each,
and one sources list generating the collections for all of them — see
Sources.
Not credited here
Two things are deliberately absent. The layer's own dependencies are listed in
package.json and do not need a second, hand-kept copy; and the people who wrote
a given page are named on that page, from the git history behind it, rather than
in a list here that would go out of date on the next commit.