icanhasfeatherpanel developer docs
What icanhasfeatherpanel is, where to open it on your panel or on GitHub Pages, what it contains for plugin authors and how it relates to this site.
On this page
icanhasfeatherpanel is the developer documentation that ships with FeatherPanel itself. The hand-written guides
live in the FeatherPanel repository under frontendv2/icanhas/. A build step adds generated reference pages and
publishes the result in two places.
Where to open it
| Where | URL |
|---|---|
| On your own panel | https://<your panel>/icanhasfeatherpanel/. The official Docker images run pnpm export:docs before the frontend build, so the docs match the version you run. |
| On GitHub Pages | mythicalltd.github.io/FeatherPanel/icanhasfeatherpanel, rebuilt from the develop and main branches. |
| In the source | frontendv2/icanhas/ in the FeatherPanel repository. |
With developer mode on, typing ##icanhasfeatherpanel in the panel’s global search opens the debug console, which has
a button that opens these docs. See Debugging plugins.
What it contains
| Section | Contents |
|---|---|
| Plugins | Guides for conf.yml, backend routes, the database, cron and commands, middleware and hooks, the frontend, public pages, themes, UI packs, the Power SDK, packaging, examples and recipes. Also an ai-guide.md written for AI coding tools. |
| Auth | OIDC single sign-on and passkeys. |
| Pages, widgets | Every frontend page and widget slot, generated from the frontend source. |
| Events, permissions | Every plugin event and permission node, generated from the backend. |
| API | The OpenAPI specification with a browser for it, and an OAuth2 playground. |
| CLI, settings, installer | Generated references for the panel CLI, panel settings and the installer script. |
| Machine-readable files | llms.txt, catalog.json, plugins/index.json, a RAG export, and JSON Schemas for theme packs, UI packs and overrides.json under schemas/. |
The JSON Schemas are useful in an editor. Map Frontend/theme.json, Frontend/ui.json and Frontend/overrides.json
to the matching file under
schemas/, for
example with the json.schemas setting in VS Code, to get completion and catch mistakes before you ship. The file
formats themselves are described on Themes and UI packs.
How it maps to this site
The plugin section of this site covers the same ground, checked line by line against the panel source:
| icanhasfeatherpanel guide | Page on this site |
|---|---|
getting-started.md | Build your first plugin, Plugin structure |
conf-yml.md | Manifest (conf.yml), Settings |
backend.md | Routes and permissions |
database.md | Migrations and storage |
cron-and-commands.md | Cron jobs and CLI commands |
middleware-and-hooks.md | Middleware and router hooks, Lifecycle and events |
frontend.md, public-pages.md, power-sdk.md | Frontend and Power SDK, Widget slots |
themes.md, ui-packs.md | Themes and UI packs |
packaging.md | Packaging and publishing |
examples.md, recipes.md | Examples |
events.md, ../events/ | Event reference |
Things to keep in mind when you read both:
- The CLI is
php cli <command>from the backend folder. There is nophp fusecommand. registerServerRouteneeds the name of the server path parameter as its fifth argument, before the methods list, and every controller receives($request, $parameters). See Routes and permissions.- Cron intervals must use upper-case units such as
5Mor1H. - The icanhas pages describe the develop branch. Mixin registration, saved
conf.ymldefaults, enforcedrequiredandvalidation, exactSseconds plus theMOandYcron units, and plugin CLI commands in Docker are fixed in v1.5.3 (PR #365). This site marks what differs on v1.5.2 and earlier. events.mdlists every event id. The Event reference is generated from the same event classes and checked against that list on every sync.
Related
- Plugin overview
- For AI agents, for this site’s MCP server and
llms.txt
Frequently asked questions
No. It is a separate set of developer docs kept in the FeatherPanel repository and shipped with the panel. The plugin pages on this site were written from the same source code and from those guides, and point out where the two differ.
It is the name of the folder and URL the panel uses for its developer docs, and the global search command that opens the debug console.