Skip to content

Route Attributes

// site/routes/my-awesome-route.php
use PresProg\RouteAttributes\Attributes\Get;

return #[Get('/hello')] function () {
    return '<h1>Hello world!</h1>';

Use PHP8 attributes to define metadata for your custom routes in separate files.

Related plugins

return [
    'afbora.loader.roots' => [

Plugin Loader

by Ahmet Bora

With Kirby Loader you can load plugins from multiple roots. Thus, you can simplify the management of your plugins by grouping.
// hook
'page.product.update:after' => function () {
    // your code goes here

Template hooks

by Ahmet Bora

Template hooks allow you to manage hooks for page and file templates more easily.
use Beebmx\KirbyDB\DB;


Illuminate Database

by Fernando Gutiérrez

Use Laravel's illuminate/database package in Kirby

return [
    'debug'  => env('KIRBY_DEBUG', false),
    'secret' => env('SECRET_KEY'),
    'public' => env('PUBLIC_KEY'),


by Fernando Gutiérrez

Store project credentials and variables in a .env file and access them in Kirby
monolog()->info('test-' . time()), [
    'title' => $page->title(),
    'page'  => $page->id()


by Bruno Meilick

Use Monolog to log data to files, databases, notifications and more.
plop blueprint $ pages blogpost
plop template $ blogpost
plop content "Nice!" blog blogpost
plop content _ blog blogpost
plop snippet $ slideshow


by Bruno Meilick

CLI tool to generate and append to various files for Kirby3 CMS using Plop.js
    extends: plugin-redirects3xx


by Bruno Meilick

Setup HTTP status code redirects from within the Panel
$site->log('My message', 'error');


by Bart Vandeputte

A little log utility (KLogger wrapper)
$queue = kqQueue('queuename');
$job   = kqJob([
    'foo' => 'foo',
    'bar' => 'bar'



by Bart Vandeputte

Enable workers in Kirby that can do tasks in the background at scheduled intervals (cron) by working through queues of jobs
'en' => [
        'id'      => 'some-uuid',
        'slug'    => 'slug-in-english',
        'content' => [...]

Virtual pages helper kit

by Bart Vandeputte

Opinionated boilerplate helper to make it easier to work with virtual pages in a multilingual kirby 3 setup.


by Sam Serrien

Helper tool that enables ray ( on all extendable methods.
- kirby install
- kirby install:kit
- kirby install:repo
- kirby make:blueprint
- kirby make:collection
- kirby make:command


by Kirby Team

The Kirby command line interface helps to simplify common tasks with your Kirby installations.
└ methods
  └ file.php
  └ page.php
  └ site.php
  └ user.php

Methods Folder

by hana+nils

Methods Folder is a plugin to automatically register local methods provided in the folder site/methods just like Kirby accepts local …
<?php foreach ($notifications as $notification): ?>
    <?= $notification
      ->title() ?>
<?php endforeach ?>


by hana+nils

Tracker is a plugin to track content changes and create panel logs or front-end notifications in member areas.
kirbylog('Something happened', 'error');


by Johann Schopplich

Zero-dependency global kirbylog() helper for any content


by Michael Scheurich

This plugin logs all actions in the panel and displays them in a separate view.
'maintenance' => true

Maintenance Mode

by Moritz Ebeling

Switch your website to maintenance mode and it will only be visible to logged in users.


by Dieter Stokar

A small set of syntax extensions greatly expand expressiveness of Markdown. Helps where you'd need complex templates. See dedicated Doc …
class MigrationTest extends Migration
    public function up()
        $result = Db::query(
            'ALTER TABLE `my_table`
            ADD COLUMN `test` INT DEFAULT NULL;

        if (!$result) throw Db::lastError();


by Markus Denhoff

Migrations management (eg. for Databases)


by Markus Denhoff

Sentry real-time crash reporting for Kirby CMS sites