🚀 Kirby 3.7 is here! Learn more
Skip to content

Random

<?= $page->random('words', 'lorem', 5) ?>

Kirby tag and page method to generate various random values

Related plugins

$url  = 'https://getkirby.com/kosmos.rss';
$feed = new FeedReader($url);

dump($feed->articles());

FeedReader

by Uwe Gehring

Plugin to show feeds. The FeedReader plugin provides an unified access to the elements of a feed. A feed might be of type RSS, Atom or JSON …

Kirby Vite

by arnoson

A set of helper functions to get the correct path to your versioned css and js files generated by Vite.
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
<?= $page->thumbsUp()->ecco('👍', '👎') ?>

Field Ecco

by Bruno Meilick

Field method to echo strings based on the boolean value of a field
<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
<?= $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.
<?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
$pages->bettersearch($string, $options)

Better Search

by Bart Vandeputte

Search for full word combinations rather than just individual words.
<?php snippet('detect-adblock') ?>

Detect Adblock

by Click to Next

Detect ad blockers and manage the warning messages that will be displayed for Kirby 3.

Plates

by Click to Next

Plates native PHP template engine/system for Kirby 3.

Laravel Mix Helper

by Diverently

Use the mix helper function to get the correct path to your versioned CSS and JS files generated by Laravel Mix.

Consent Gate

by fendinger

This plugin blocks the loading of content from external sources. The content is only loaded if a consent is accepted (GDPR compliant). The …
$point = Geo::point(49.4883333, 8.4647222);

echo $point->lat();
echo $point->lng();

GEO

by Kirby Team

This plugin adds basic geo search and conversion functionalities to Kirby

Layouts

by Kirby Team

This plugin extends Kirby’s templates with a powerful layout system.
foreach ($page->fruits()->toChoices() as $fruit) {
    echo $fruit;
}

Choices

by hana+nils

Choices is a plugin that provides methods to manage field options in the frontend. For any field – like select, multiselect or checkboxlist …
// using the username
$users->toList();

// using the page title
$pages->toList();

// using the filename
$files->toList();

List Methods

by hana+nils

List Methods is a plugin providing methods to generate comma-separated list from collections like pages, users or files. It allows for …
snippetWhen('article', $category->isNotEmpty())

snippetWhen Helper

by hana+nils

snippetWhen is a helper function to conditionally embed snippets.
<?= $page->text()->toTree()->level(3) ?>

Tree Methods

by hana+nils

Tree Methods converts field values to HTML and helps adapting the resulting markup by changing headline hierarchy, wrapping and filtering …
$object->isPage();
$object->isUser();
$object->isFile();
$page->isType('article');

Type Methods

by hana+nils

Type Methods is a plugin helping to identify the type of an object, either page, user or file, in order to simplify logic in snippets that …

XSLT Templates

by hana+nils

Template component for XSLT support in your templates. It let's you specify the needed data for each blueprint which is then provided as …
<kb:date format="d/m/Y" field="date" />

Carver

by Hash&Salt

Write custom HTML tags, powered by PHP
<?= $page->text()->chopper(20) ?>

Chopper

by Hash&Salt

Create excerpts from fields and define the HTML tags you wish to keep
<?= $file->id3('artist') ?>

Gilmour

by Hash&Salt

Read ID3 tags from audio files and use it in your templates.
fields:
  example:
    label: Paste code here
    type: blocks
    fieldsets:
      - code

Highlighter

by Johann Schopplich

Server-side syntax highlighting for the Kirby code block & KirbyText

Blade Templates

by Lukas Leitsch

Use Laravel Blade templates for your Kirby site
<a href="<?= $page->url() ?>/like/toggle">
    ❤️ <?= $page->likeCount() ?>
</a>

<a href="<?= $page->url() ?>/like/add">👍</a>
<a href="<?= $page->url() ?>/like/remove">👎</a>

Likes

by Thomas Günther

Super simple plugin that adds routes, a page method and a panel field so you can easily add likes/hearts/votes to your pages.

Twig Templates

by am-teich

Add support for Twig templates to your Kirby installation
<?php snippet('cookie-modal', [
    'assets'      => true,
    'showOnFirst' => true,
    'features'    => [...],
]) ?>

Cookie Consent Modal

by Michael Scheurich

A customizable cookie consent modal for Kirby3.
<?= $page->author()->byline() ?>

Byline

by David Somers

Field methods to create plain or linked bylines from single or multiple authors
return [
  'omz13.feeds.cacheTTL' => 60,
  'omz13.feeds.firehose' => 'articles',
];

Feeds

by David Somers

Provides feeds in the most popular formats (RSS, Atom & JSON), generated from a collection of e.g. blog articles or press releases.
return [
    's1syphos.highlight' => [
        'class'     => 'hljs',
        'languages' => ['html', 'php'],
        'escaping'  => false
    ]
];

Highlight

by Martin Folkers

Themeable server-side syntax highlighting
<?php snippet('cookie') ?>

Cookie Approval

by Timo Schneider

Add a cookie approval banner to your templates
foreach ($page->related($options) as $p) {
  echo $p->title();
}

Related

by Sonja Broda

Fetch related pages/files based on matching values in a given field
foreach ($page->similar($options) as $p) {
  echo $p->title();
}

Similar

by Sonja Broda

Find items related to the current item based on similarity between fields
<?= $page->title()->kirbytextWrap('h1') ?>

KirbytextWrap

by Yoan Malié

Parse Kirbytext and wrap the result in an HTML element of your choice

Other plugins by Bruno Meilick

$page->AUTOID()

AutoID

by Bruno Meilick

Automatic unique ID for pages, structure objects and files including performant helpers to retrieve them. Bonus: Cache for collections and …

Autoloader

by Bruno Meilick

Helper to automatically load various Kirby extensions in a plugin
// kirby core
$page = page($id);

// ~10x faster lookup
$page = bolt($id);

Bolt

by Bruno Meilick

Provides a fast page lookup even in big content trees.
// kirby core
$page = page($somePageId);
// faster
$page = boost($somePageId);
// fastest
$page = boost($somePageDirUri);

Boost

by Bruno Meilick

Boost the speed of Kirby by having content files of pages cached, with automatic unique ID, fast lookup and Tiny-URL.

CloudConvert

by Bruno Meilick

Plugin to convert your files to other file types (i.e. mov to animated gif), using cloudconvert.com

Collect

by Bruno Meilick

Adds support for Laravel collections to Kirby
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

Doctor

by Bruno Meilick

Check the health of your Kirby installation
env('APP_DEBUG');

DotEnv

by Bruno Meilick

Store project credentials and environment variables in a .env file and access them in Kirby
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
<?= $page->thumbsUp()->ecco('👍', '👎') ?>

Field Ecco

by Bruno Meilick

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

Fingerprint

by Bruno Meilick

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

Fontselector

by Bruno Meilick

Select font family and font weight with two synced fields
<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
<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
<?= $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.

ImageOptim

by Bruno Meilick

Thumb component to optimize images using the ImageOptim Api

Janitor

by Bruno Meilick

Run jobs – like cleaning the cache – from within the Panel, PHP code or a cronjob
$key  = crc32($page->url());
$data = lapse($key, function () {
    return [1, 2, 3];
});

Lapse

by Bruno Meilick

Cache any data until the set expiration time

Mailjet

by Bruno Meilick

Send transactional SMS, transactional E-Mail and Campaigns with Mailjet
<?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
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.

MySQL Cache Driver

by Bruno Meilick

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

Pageview Counter

by Bruno Meilick

Track Page view count and last visited timestamp

PHP Cache Driver

by Bruno Meilick

PHP based Cache-Driver
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

Posthog

by Bruno Meilick

Connect Kirby to Posthog via PHP or Javascript

Postmark

by Bruno Meilick

Send transactional E-Mail with Postmark
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.
sections:
  recmodByUser:
    type: recentlymodified
    headline: Your Recently Modified Pages

Recently Modified

by Bruno Meilick

Kirby 3 Plugin to view recently modified pages by current User (or other collections)
sections:
  redirects:
    extends: plugin-redirects3xx

Redirects

by Bruno Meilick

Setup HTTP status code redirects from within the Panel

Redis Cache Driver

by Bruno Meilick

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

Robots.txt

by Bruno Meilick

Manage the robots.txt from Kirby's config file

Seobility – Keyword check

by Bruno Meilick

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

SQLite Cache Driver

by Bruno Meilick

SQLite based Cache-Driver
$page->image('ukulele.jpg')->lazysrcset()

Srcset

by Bruno Meilick

Create responsive images using the picture element, including JavaScript-based lazy loading.
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).