Dosu LogoDosu Logo
Ask
Join our Discord
Kubb's SpacePublic
Kubb
DocumentsKubb's Space
CONTRIBUTING
CONTRIBUTING
Type
External
Status
Published
Created
Sep 2, 2026
Updated
Sep 2, 2026
Source
CONTRIBUTING.md

Contributing to Kubb docs#

This repository holds the hand-written content for kubb.dev. Contributions are welcome.

  • Found a mistake or missing information? Open an issue or submit a PR.
  • Need help? Ask the community on Discord.

Please read our Code of Conduct before participating.

What lives here#

See the repository layout in AGENTS.md. Each plugin, adapter, and parser is a folder with an
index.md page, plus optional guide/, recipes/, and reference/ subpages. The index.md frontmatter carries the registry metadata (id, kind, name, description, category, type, npmPackage, repo, docsPath, featured, icon, maintainers, compatibility, tags, dependencies, resources, guides, recipes) that the kubb.dev fetch pipeline turns into the plugin, adapter, and parser cards and detail headers. The kind field is plugin, adapter, or parser, and id matches the folder name. The pipeline validates the frontmatter against apps/kubb.dev/public/schemas/extension.json in kubb-labs/platform, which requires id, name, description, category, type, npmPackage, repo, and docsPath.

Live example#

Set resources.codesandbox to a CodeSandbox project link and kubb.dev adds a "Live example" link to the Resources block in the sidebar:

resources:
  codesandbox: https://codesandbox.io/p/github/kubb-labs/plugins/main/examples/react-query

Recipes#

Recipes are task-focused pages that live under plugins/<id>/recipes/<recipe-id>.md. List them in the index.md frontmatter and kubb.dev builds a Recipes group in the sidebar. Each entry needs the page id (the file name without its extension) and the title shown in the sidebar.

recipes:
  - id: class-based-sdk
    title: Class-based SDK

Guides follow the same shape under plugins/<id>/guide/<guide-id>.md with a guides array.

Do NOT edit:

  • docs/5.x/changelog.md — auto-synced from kubb-labs/kubb by .github/workflows/sync-changelog.yml after each release. To update manually, trigger that workflow with workflow_dispatch.

Development workflow#

This repo contains only content — no build step, no npm install, no test suite.

  1. Fork and clone this repo.
  2. Create a branch from main.
  3. Edit or add markdown files.
  4. Open a PR against main and describe what changed and why.

Writing guidelines#

  • Write in active voice, present tense.
  • Keep paragraphs short — 2-3 sentences.
  • Explain before showing code.

See .agents/skills/documentation/SKILL.md for the full writing guide, and .claude/rules/ for
the USA English and humanizer conventions.

Updating plugin documentation#

Plugin options are the source of truth in kubb-labs/plugins. When a plugin's options change there, update the matching page under plugins/ here in the same release cycle.

A documented option must match the Options type in the plugin's src/types.ts and be honored in src/plugin.ts. Keep documented defaults in step with the destructuring defaults in plugin.ts.

Opening a pull request#

  1. Keep changes focused — one topic per PR.
  2. Use Conventional Commits: docs:, fix:, feat:.
  3. Push your branch and open a PR against main.
Documents
Axios Plugin
a-working-mcp-server-from-a-spec
base-url
basic-usage
build-a-url-without-sending
calling-operations
choose-the-client-when-two-are-registered
class-based-sdk
claude-mcp-plugin
comparison
ecosystem
generate
generators
index
index
installation
introduction
kubb-invalid-plugin-options
kubb-plugin-failed
nuxt
options
options
parsers
plugin-client
plugin-cypress
plugin-mcp
plugins
point-at-an-env-driven-host
point-at-an-env-driven-host
query-errors-transport
README
recipes
register-handlers-with-a-server
rspack
serialization
serialization
stream-server-sent-events
transport
typed-request-helpers-against-staging
v5
validate-every-api-response
validate-requests-and-responses
validate-requests-and-responses
OpenAPI Schema Conversion
a-working-mcp-server-from-a-spec
adapter-oas
adapters
ast
calling-operations
calling-operations
changelog
class-based-sdk
claude
claude-code-plugin
claude-mcp-plugin
coerce-query-and-form-input
comparison
contributing
downgrade-int64-to-a-plain-number
ecosystem
encode-a-custom-type-on-requests
faq
format-date-fields-with-dayjs
generators
How can you extend Kubb's generated code to access OpenAPI security schemes inside fetch functions, so each generated client knows which security scheme it requires?
index
index
index
index
index
index
index
index
introduction
kubb-adapter-required
kubb-deprecated
kubb-invalid-document
kubb-invalid-server-variable
kubb-plugin-failed
kubb-ref-not-found
kubb-unsupported-format
map-spec-types-to-native-ts
migration
nuxt
options
parsers
plugin-mcp
plugin-ts
plugin-zod
plugins
prefix-every-schema-type-name
printers
README
recipes
rspack
serialization
serialization
serialization
tree-shakeable-enums
v3
v5
Package Version Management
init
kubb-plugin-failed
kubb-update-available
migration
nuxt
parsers
rspack
AGENTS
CLAUDE
CONTRIBUTING
GEMINI
SKILL
SKILL
What new feature was proposed and implemented for the `kubb-cli` tool regarding OpenAPI/Swagger file validation?
a-barrel-in-every-folder
adapters
architecture
ast
astro
authentication
authentication
authentication
auto-generated-mock-data
barrel
barrel-files
base-url
base-url
build-a-url-without-sending
calling-operations
calling-operations
calling-operations
configuration
copilot-instructions
creating-plugins
custom-query-keys
custom-query-keys
deterministic-data-with-a-seed
diagnostics
diagnostics
engine
error-handling
error-handling
error-handling
esbuild
exclude
farm
generators
grouping
handlers-you-fill-from-tests
hooks
immutable-requests
include
index
index
index
index
index
index
index
index
infinite-scroll-query
infinite-scroll-query
interceptors
interceptors
interceptors
jsx
kit
kit
kubb-clean-root
kubb-format-failed
kubb-input-not-found
kubb-input-request-failed
kubb-input-required
kubb-input-unreachable
kubb-legacy-input
kubb-lint-failed
kubb-path-traversal
kubb-performance
kubb-plugin-info
kubb-plugin-not-found
kubb-plugin-warning
kubb-post-generate-failed
kubb-unknown
llmstxt
localized-mock-data
macros
macros
macros-option
markdown
mcp
mcp
named-re-exports-for-tree-shaking
one-wildcard-barrel
options
options
options
options
options
options
options
options
options
options
options
options
options
output-banner
output-footer
override
parsers
plain-language
plugin-faker
plugin-msw
plugin-react-query
plugin-swr
plugin-vue-query
plugins
prefix-every-generated-type-name
printers
pull_request_template
reactive-params-that-refetch
renderers
renderers
resolvers
resolvers
resolvers
resolvers
rolldown
rollup
security
server-sent-events
server-sent-events
skip-a-request-until-ready
standalone-api-docs-page
storage
storage
strip-descriptions-with-a-macro
strip-descriptions-with-a-macro
suspense-hooks
telemetry
testing
transport
transport
tree-shakeable-schemas-with-zod-mini
turn-barrels-on
usa-english
v4
validate
vite
webpack
wrap-hooks-with-shared-options
zod-as-the-single-source-of-truth