# Contributing to 3x-ui-docs

Thanks for helping improve the 3x-ui documentation and product site!

## Prerequisites

This project uses **[pnpm](https://pnpm.io)** (not npm — `package-lock.json` is
gitignored). Install dependencies and start the dev server:

```bash
pnpm install
pnpm dev        # http://localhost:3000
```

## Scripts

| Script           | Description                                           |
| ---------------- | ----------------------------------------------------- |
| `pnpm dev`       | Start the dev server                                  |
| `pnpm build`     | Production build                                      |
| `pnpm start`     | Serve the production build                            |
| `pnpm typecheck` | Generate MDX/route types and run `tsc --noEmit`       |
| `pnpm lint`      | oxlint (`.oxlintrc.json`)                             |
| `pnpm format`    | Format with oxfmt (`.oxfmtrc.json`)                   |
| `pnpm test`      | Run unit tests (Vitest) for `lib/xray/*` pure logic   |
| `pnpm gen:api`   | Generate the API reference from `public/openapi.json` |

Before opening a pull request, please run `pnpm typecheck`, `pnpm lint`, `pnpm format:check`, and
`pnpm test` — these are the same checks that CI runs on every PR.

## License

By contributing, you agree that your contributions will be licensed under the
project's [GPL-3.0](./LICENSE) license.
