# Contributing
URL: /docs/contributing
LLM index: /llms.txt
Description: How to contribute to @farming-labs/docs

# Contributing

Use this page when the user asks about this topic: How to contribute to @farming-labs/docs.
Keep answers grounded in the exact options, routes, commands, and examples documented here.
If the request moves beyond this page, point to the closest related docs instead of inventing config.

Thanks for your interest in contributing to **@farming-labs/docs**. This guide explains how to report issues, propose changes, and submit pull requests.

## Code of conduct

Please be respectful and constructive. We aim to keep the community welcoming and focused on building a great documentation framework.

## How to contribute

### Reporting bugs

- **GitHub Issues** — Open an issue at [github.com/farming-labs/docs/issues](https://github.com/farming-labs/docs/issues).
- Include:
  - Clear title and description
  - Steps to reproduce
  - Expected vs actual behavior
  - Your environment (Node version, package manager, framework: Next.js / TanStack Start / SvelteKit / Astro / Nuxt)
  - Relevant config or code snippets

### Suggesting features

- Open a discussion or issue describing the use case and proposed behavior.
- Check existing issues first to avoid duplicates.

### Pull requests

1. **Fork** the [farming-labs/docs](https://github.com/farming-labs/docs) repo and clone it locally.
2. **Branch** from `main` (e.g. `fix/typo-install-docs` or `feat/contributing-guide`).
3. **Install** dependencies from the repo root:
   <Tabs items={["pnpm", "npm", "yarn", "bun"]}>
     <Tab value="pnpm">
       ```bash title="terminal"
       pnpm install
       ```
     </Tab>
     <Tab value="npm">
       ```bash title="terminal"
       npm install
       ```
     </Tab>
     <Tab value="yarn">
       ```bash title="terminal"
       yarn install
       ```
     </Tab>
     <Tab value="bun">
       ```bash title="terminal"
       bun install
       ```
     </Tab>
   </Tabs>
4. **Build** the monorepo (optional, for core/theme changes):
   ```bash title="terminal"
   pnpm build
   ```
5. **Run the docs site** (from repo root):
   ```bash title="terminal"
   pnpm --filter website dev
   ```
   Then open [http://localhost:3000](http://localhost:3000) to preview.
6. **Make your changes** — Keep edits focused; doc-only and small fixes are welcome.
7. **Commit** with a clear message (e.g. `docs: add contributing guide`, `fix: correct CLI flag in installation`).
8. **Push** your branch and open a **Pull Request** against `main`.
9. **Describe** what you changed and why; link any related issues.

## Project structure

- **`packages/`** — Core packages: `docs`, `fumadocs` (theme), `next`, `svelte`, `svelte-theme`, `astro`, `astro-theme`, `nuxt`, `nuxt-theme`.
- **`website/`** — This docs site (Next.js); content under `app/docs/`.
- **`examples/`** — Example apps (Next.js, TanStack Start, and others) for testing.
  When you work on this monorepo, keep local `@farming-labs/*` example dependencies linked with `workspace:*` so CI and Vercel on Node 22 resolve the built workspace adapters instead of an older published package from `node_modules`.

Doc content lives in `website/app/docs/` as MDX. Config and sidebar are driven by [docs.config.tsx](/docs/configuration) in `website/`.

## Documentation changes

- Edit or add `.mdx` files under `website/app/docs/`.
- Use existing frontmatter (`title`, `description`, `icon`, `order`) so the sidebar stays consistent.
- Use the shared `<Callout>`, `<Tabs>`, and `<Tab>` components where they fit.

## Questions

- **GitHub Discussions** — For general questions and ideas, use [github.com/farming-labs/docs/discussions](https://github.com/farming-labs/docs/discussions).  
- **GitHub Issues** — You can still use [Issues](https://github.com/farming-labs/docs/issues) for bugs and actionable feature requests.
- **Issues** — For bugs and concrete feature requests.

Thank you for contributing.