---
title: "Contributing"
description: "How to contribute to ƿit"
type: "standalone"
---

ƿit is developed openly. Contributions of all kinds are welcome.

## Report Bugs

Found a problem? Open an issue on the [ƿit issue tracker](https://gitea.pockle.world/john/cell/issues). Include:

- What you expected to happen
- What actually happened
- A minimal reproduction (a short `.ce` or `.cm` file)
- Your platform and ƿit version (`pit version`)

## Submit Packages

Share your ƿit packages by hosting them on a Gitea instance. Any package with a valid `pit.toml` can be installed by others:

```bash
pit install gitea.example.com/you/your-package
```

See [Packages](/manual/#packages) for how to structure and publish packages.

## Contribute to the Runtime

The ƿit runtime is written in C. To build from source:

```bash
git clone https://gitea.pockle.world/john/cell
cd cell
make bootstrap
```

### Code Style

- C code uses 2-space indentation
- Functions and variables are `static` unless exported
- No headers between files in the same package
- Use `JS_NULL` / `JS_IsNull` — there is no `undefined`
- Objects over classes; limit prototype usage

### Submitting Patches

1. Fork the repository on Gitea
2. Create a branch for your change
3. Keep commits focused — one logical change per commit
4. Test your changes with `pit test all`
5. Open a pull request with a clear description

## Improve Documentation

Documentation lives in the `docs/` directory as Markdown files. Fixes for typos, unclear explanations, or missing examples are always appreciated.

## Code of Conduct

Be respectful. Communicate clearly. Assume good faith. Technical disagreements are fine; personal attacks are not.
