πŸš€ A new era: Kirby 4 Get to know
Skip to content

Redirects

sections:
  redirects:
    extends: plugin-redirects3xx

Setup HTTP status code redirects from within the Panel

Related plugins

return [
    'afbora.loader.roots' => [
        '/plugins/core',
        '/plugins/payment',
        '/plugins/shipping',
    ]
];

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.
  • K3
  • K4
// 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.
  • K3
  • K4
use Beebmx\KirbyDB\DB;

DB::table('users')->get();

Illuminate Database

by Fernando GutiΓ©rrez

Use Laravel's illuminate/database package in Kirby
  • K3
  • K4
\Beebmx\KirbyEnv::load('main/path');

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

Env

by Fernando GutiΓ©rrez

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

Monolog

by Bruno Meilick

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

Plopfile

by Bruno Meilick

CLI tool to generate and append to various files for Kirby3 CMS using Plop.js
  • K3
  • K4
$site->log('My message', 'error');

Log

by Bart Vandeputte

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

$queue->addJob($job);

Queue

by Bart Vandeputte

Enable workers in Kirby that can do tasks in the background at scheduled intervals (cron) by working through queues of jobs
  • K3
  • K4
'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.
  • K3

Devutils

by Sam Serrien

Kirby devutils is a set of command line tools to help you manage your Kirby CMS project.
  • K3
  • K4

Ray

by Sam Serrien

Helper tool that enables ray ( https://myray.app/) on all extendable methods.
  • K3
  • K4
- kirby install
- kirby install:kit
- kirby install:repo
- kirby make:blueprint
- kirby make:collection
- kirby make:command

CLI

by Kirby Team

The Kirby command line interface helps to simplify common tasks with your Kirby installations.
  • K3
  • K4
site
β”” 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 …
  • K3
  • K4
<?php foreach ($notifications as $notification): ?>
  <li>
    <?= $notification
      ->track()
      ->toReference()
      ->title() ?>
  </li>
<?php endforeach ?>

Tracker

by hana+nils

Tracker is a plugin to track content changes and create panel logs or front-end notifications in member areas.
  • K3

Kirbylog

by Johann Schopplich

Zero-dependency global kirbylog() helper for any content
  • K3
  • K4
user@host:~/project$ kirby types:create
kirby-types v1.1.0 types:create
βœ“ added blueprints fields
βœ“ added custom methods
βœ“ added decorators
βœ“ added aliases
types helper created successfully

Types

by Lukas Kleinschmidt

IDE Helper for Kirby. Adds the kirby types:create command to your project to create an additional type hints file.
  • K3
  • K4

Logger

by Michael Engel

Gain deeper insights into your Kirby website's behavior with the powerful Logger.
  • K3
  • K4
'maintenance' => true

Maintenance Mode

by Moritz Ebeling

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

MarkdownPlus

by Dieter Stokar

A small set of syntax extensions greatly expand expressiveness of Markdown. Helps where you'd need complex templates. See dedicated Doc …
  • K3
  • K4
monolog()->log('something CRITICAL happend 😱', 'critical');

Monolog

by Present Progressive

Have you ever missed an error message and were clueless about what was going on? Never again: Use Monolog to log your messages to a myriad …
  • K3
  • K4
// site/routes/my-awesome-route.php
use PresProg\RouteAttributes\Attributes\Get;

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

Route Attributes

by Present Progressive

Use PHP8 attributes to define metadata for your custom routes in separate files.
  • K3
  • K4
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();
    }
}

Migrations

by Markus Denhoff

Migrations management (eg. for Databases)
  • K3

Sentry

by Markus Denhoff

Sentry real-time crash reporting for Kirby CMS sites
  • K3
  • K4

Debug Bar

by Vincent Riva

PHP Debug Bar for KirbyCMS
  • K3
  • K4

Contentsync

by Zephir Software Design AG

Tired of manual and cumbersome methods like git push/pull, scp, rsync or sftp to synchronize content between your server and local …
  • K3
  • K4

Other plugins by Bruno Meilick

Kirby::plugin('bnomei/example', [
    'blueprints' => autoloader(__DIR__)
                      ->blueprints(),
    'snippets' => autoloader(__DIR__)
                      ->snippets(),
    // other extensions
]);

Autoloader

by Bruno Meilick

Helper to automatically load various Kirby extensions in a plugin
  • K3
  • K4
return Field::make(FieldTypes::TEXT)
    ->label('Description')
    ->toArray();

PHP Class-based Blueprints

by Bruno Meilick

PHP Class-based Blueprints for better type safety and code completion
'bnomei.boost.cache' => [
    'type'     => 'apcu',
],
'cache' => [
    'uuid' => [
        'type' => 'apcu',
    ],
],

Boost

by Bruno Meilick

Boost the speed of Kirby by having content files of pages cached and a fast lookup based on uuids
  • K3
  • K4

CloudConvert

by Bruno Meilick

Plugin to convert your files to other file types (i.e. mov to animated gif), using cloudconvert.com
  • K3
  • K4
$mostPopularPage = $kirbyCollection
    ->sortBy('viewcount')->last()
    ->viewcount()->toInt();

// with collect plugin
$mostPopularPage = $kirbyCollection
    ->collect()->max('content.viewcount');

Collect

by Bruno Meilick

Adds support for Laravel collections to Kirby
  • K3
  • K4
return [
    'bnomei.securityheaders.headers' => [
        'X-Frame-Options'        => 'SAMEORIGIN',
        'X-XSS-Protection'       => '1; mode=block',
        'X-Content-Type-Options' => 'nosniff',
        ...
    ]
];

Content Security Policy

by Bruno Meilick

Simplify the content security policy headers setup for your website
  • K3
  • K4
env('APP_DEBUG');

DotEnv

by Bruno Meilick

Store project credentials and environment variables in a .env file and access them in Kirby
  • K3
  • K4
page('blog')->children()->feed([
    'title'       => 'Latest articles',
    'link'        => 'blog'
]);

Feed and Sitemap

by Bruno Meilick

Generate a RSS or JSON-Feed or XML-Sitemap from a collection of pages
  • K3
  • K4
<?= $page->thumbsUp()->ecco('πŸ‘', 'πŸ‘Ž') ?>

Field Ecco

by Bruno Meilick

Field method to echo strings based on the boolean value of a field
  • K3
  • K4
$page->file('ukulele.pdf')->fingerprint();

Fingerprint

by Bruno Meilick

File method and css/js helpers to add hashes to assets and files
  • K3
  • K4

Fontselector

by Bruno Meilick

Select font family and font weight with two synced fields
  • K3
  • K4
<article id="{{ page.slug }}">
  <h2>{{ page.title }}</h2>
  {{ page.text }}
</article>

Handlebars Templates

by Bruno Meilick

Component, snippet and page method for semantic templates with Handlebars and Mustache
  • K3
  • K4
<html <?= $site->langAttr() ?>>
  <head>
    <meta charset="utf-8">
    <?= $page->htmlhead() ?>
  </head>
  ...

HTMLHead

by Bruno Meilick

Add a best-practice HTML head element to your templates, extendable with snippets
  • K3
  • K4
<?= $page->myfield()->htmlPurify() ?>

HTML Purifier

by Bruno Meilick

Static class method, Uniform-Guard and Field-Method to filter your "dirty" HTML inputs to "clean" HTML.
  • K3
  • K4

Janitor

by Bruno Meilick

Run command – like cleaning the cache – from within the Panel via a customizable button, directly in PHP code or with a cronjob
  • K3
  • K4

Klub

by Bruno Meilick · Paid

With Kirby Klub your customers will become members of your website. It is a flexible toolkit that allows you to add member-exclusive …
  • K4
$key  = crc32($page->url());
$data = lapse($key, function () {
    return [1, 2, 3];
});

Lapse

by Bruno Meilick

Cache any data until the set expiration time
  • K3
  • K4

Mailjet

by Bruno Meilick

Send transactional SMS, transactional E-Mail and Campaigns with Mailjet
  • K3
  • K4
<?php if ($page->isMobile()): ?>
  Nice mobile phone!
<?php endif ?>

Mobile Detect

by Bruno Meilick

Static class and page methods for using the mobile detect lib
  • K3
  • K4
monolog()->info('test-' . time()), [
    'title' => $page->title(),
    'page'  => $page->id()
]);

Monolog

by Bruno Meilick

Use Monolog to log data to files, databases, notifications and more.
  • K3
  • K4

MySQL Cache Driver

by Bruno Meilick

MySQL based Cache-Driver
  • K3
  • K4
<?= $page->counterImage() ?>

Pageview Counter

by Bruno Meilick

Track Page view count and last visited timestamp
  • K3

PHP Cache Driver

by Bruno Meilick

PHP based Cache-Driver
  • K3
  • K4
plop blueprint $ pages blogpost
plop template $ blogpost
plop content "Nice!" blog blogpost
plop content _ blog blogpost
plop snippet $ slideshow

Plopfile

by Bruno Meilick

CLI tool to generate and append to various files for Kirby3 CMS using Plop.js
  • K3
  • K4

Posthog

by Bruno Meilick

Connect Kirby to Posthog via PHP or Javascript
  • K3
  • K4

Postmark

by Bruno Meilick

Send transactional E-Mail with Postmark
  • K3
  • K4
fields:
  # current page
  qrcode: qrcode

QR Code

by Bruno Meilick

Generate QRCodes. The included Panel field will show the QRCode and trigger download on click.
  • K3
  • K4
<?= $page->random('words', 'lorem', 5) ?>

Random

by Bruno Meilick

Kirby tag and page method to generate various random values
  • K3
  • K4

Recently Modified

by Bruno Meilick

Kirby 3 Plugin to view recently modified pages by current User (or other collections)
  • K3
  • K4

Redis Cache Driver

by Bruno Meilick

Redis based Cache-Driver
  • K3
  • K4
return [
    'bnomei.robots-txt' => [
        'content' => '...'
    ]
];

Robots.txt

by Bruno Meilick

Manage the robots.txt from Kirby's config file
  • K3
  • K4

Seobility – Keyword check

by Bruno Meilick

Plugin to use the free and paid API of Seobility.net like the keyword check
  • K3
  • K4

SQLite Cache Driver

by Bruno Meilick

SQLite based Cache-Driver
  • K3
  • K4
site()->stopwatch()->start('myevent');
// some code to profile
site()->stopwatch()->stop('myevent');

echo site()->stopwatch()->duration('myevent');

Stopwatch

by Bruno Meilick

Profile your Kirby 3 CMS code with precision in milliseconds (or seconds).
  • K3
  • K4

Storybook

by Bruno Meilick

Generate Storybook stories from snippets and templates
  • K3
  • K4

UTM Tracking

by Bruno Meilick

Automatically track events from URLs with UTM parameters and view statistics about them right in the panel.
  • K3