# Contributing a Kibble

Published kibbles appear in **Settings → Kibbles → Browse**.

## 1. Build it

The kibble's folder name must equal the package `name`. Follow
[Get started](https://nana.areshk.dev/docs/extensions/get-started.md), and load the folder with **Load Unpacked…** to
test it.

Your `build` script must produce `dist/` with `package.json` inside, because
only `dist/` is published.

## 2. Add a listing

Add a `marketplace` block under `nana`:

```json
"marketplace": {
  "author": "Your Name",
  "github": "your-handle",
  "categories": ["productivity"],
  "icon": "assets/icon.svg",
  "screenshots": ["assets/screenshot-1.png"]
}
```

Add a `README.md` that says what the kibble does and why it needs each
permission.

## 3. Publish updates

A published `name@version` never changes. Bump `version` to ship an update;
users install updates from **Settings → Kibbles**.

## Guidelines

- Ask for the fewest [permissions](https://nana.areshk.dev/docs/extensions/permissions.md) you need.
- Keep bundles small and the source readable. Minified or obfuscated code is
  flagged for review.
- Use lowercase names (`a-z`, `0-9`, `.`, `-`) so pages load.
- Test on the latest Nana release.