> For the complete documentation index, see [llms.txt](https://docs.saturncms.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.saturncms.net/1.0.0/dev/plugins/how-to-structure-a-plugin.md).

# How to structure a plugin

## Plugin Folder

Your plugin must be uploaded in a .zip folder, with the manifest directly inside it, you should not place the manifest in any sub-folders.

Because of how Saturn detects and loads plugins, you must have your manifest in the root .zip file. It must not be in any sub-folders, Saturn won't load your plugin.

## manifest.json file

```
PluginSlug.zip
-> manifest.json
```

You can place the code, or anything else in sub-folders as long as you update your manifest to point to the correct file.

For example: If your main file is called main.php and it's in the /code folder. You should set your Startup value to "`code/main.php`"

Learn more about manifests here:

{% content-ref url="/pages/HTgUkip4BX3J5eLRrprO" %}
[Manifest](/1.0.0/dev/plugins/manifest.md)
{% endcontent-ref %}

## Your code

Your code can be in any number of sub-folders, as long as you link to it. Please see the above section for how to change your manifest.json to point to a sub-folder.
