Kirby Plugins Your Editors
Will Thank You For
Editors can generate, translate, and optimize content right in the Panel.
You get a PHP API for hooks and CLI commands.
You get a PHP API for hooks and CLI commands.
Luise Frey: Rooms of Silence
Text ×
No blocks yet
Trusted by Teams Worldwide


Kirby Copilot
Generate with AI inside the Kirby Panel. Fill fields from one prompt, build layouts from your own blocks, or accept a suggestion as you type.
- Multi-Field GenerationTick the fields, write one prompt, and Copilot fills them all in one run – with files and other pages as context.
- Blocks & LayoutsGenerate whole layouts from your own block blueprints, custom blocks included.
- Inline SuggestionsPause while writing and gray ghost text picks up the sentence. Tab keeps it, anything else drops it.
Kirby Content Translator
One click translates entire pages, including nested blocks. Select target languages in the Panel or automate via CLI.
- Whole Pages in One ClickNested blocks, layouts, and structure fields translate along with the page.
- DeepL or AITranslate with DeepL, or route through Kirby Copilot to ChatGPT, Claude, Gemini, or Mistral.
- The Same Pipeline From PHPBatch translate pages or sync from the default language in CLI commands and hooks.
Kirby SEO Audit
The Yoast SEO engine analyzes the page you are editing in the Panel. Each result comes with its light and the fix it asks for.
- SEO & Readability AssessmentsEvery result sorted into Good, OK, Needs improvement, and Feedback, from keyphrase density to meta description length.
- View Button & SectionA view button opens the report in a dialog, a section shows it inline and keeps the last run. Both are set in the blueprint.
- Runs in the Editor's BrowserThe Yoast engine ships with the plugin, so no third-party service ever sees the content.
On the House
No license key, no invoice. The free plugins ship with the same docs and support as the rest.
Kirby SERP Preview
A Panel section draws the Google result for the page you are editing – favicon, site name, URL, title, and description – and redraws it on every keystroke.
- Live, Before You SaveThe snippet follows the title and description fields as you type. The section reads the form and never writes to it.
- Reads Your Meta FieldsName a title and description field and the snippet takes their values.
- Shortened Your WayTrim or clean the text the way your templates do, so the snippet matches the live page.
Luise Frey: Rooms of Silence
SERP Preview ×
Kunsthalle Leipzighttps://kunsthalle-leipzig.de/rooms-of-silence
Luise Frey: Rooms of Silence – Kunsthalle Leipzig
Twenty-eight large-format photographs of rooms just after the people have gone.
Kirby Minimap
A sidebar lists the fields and blocks of the current Panel tab. Click one and the Panel scrolls to it. Made for long blueprints.
- Jump to a FieldBlocks pulse briefly once the Panel reaches them.
- Blocks by Icon and First WordsEvery block appears with its icon and a short label.
- Marks Where You AreFields and blocks in view are marked in the sidebar as you scroll.
Text ×
Rooms After Everyone Has Left
H2
Luise Frey photographs rooms after everyone has left them: a school gym on the first morning of the holidays, a ferry terminal at four in the morning, the back office of a shop that closed last spring.
The twenty-eight prints in this exhibition were made over six winters in northern Germany and on the Faroe Islands. Frey works with a large-format camera and available light, which means exposures long enough for the dust to settle inside the frame.
I wait until the dust has settled inside the frame.
Luise Frey
Rooms of Silence is her first solo exhibition in Leipzig. A conversation with the artist takes place on 14 November at 7 pm, admission free.
No blocks yet
Kirby Headless
Keep editing in Kirby and serve the content as JSON. A bearer token guards the API, KQL answers from one endpoint, and templates can return JSON instead of HTML.
- One Token Guards the APISet it in config.php and every KQL or custom route request has to carry it.
- Pages Answer as JSONTemplates return JSON, cached per page and language, drafts behind a preview token.
- Routes as Middleware ChainsCompose custom endpoints from the token check, resolvers, and functions of your own.
curl https://example.com/api/kql \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"query": "page(\"blog\").children.listed",
"select": {
"title": true,
"text": "page.text.toBlocks.toArray",
"url": true
}
}'
{
"code": 200,
"status": "OK",
"result": [
{
"title": "Hello World",
"text": [...],
"url": "https://example.com/blog/hello-world"
}
]
}
Custom Plugin Development
I build Kirby plugins, most of them for the Panel. Need one for your project? Drop me a line.