🚀 Kirby 3.7 is here! Learn more
Skip to content

All plugins

ABT

by Hash&Salt

This plugin lets you serve a subpage to page A as if it was page A, to 50% of the visitors.

Accordion Field

by Click to Next

Collapses the content below headlines in Panel for Kirby 3.

Annotator

by Sylvain Julé

Add interactive areas to mark people, cooking ingredients, technical details or any other interesting parts of an image.
(arena: tim-duvendack/aesthetics-1483967740)

Are.na Tag

by Tim Duvendack

Embed Are.na channels in your text with the (arena: …) Kirbytag

Autofavicon

by Thomas Günther

Automatically generates an SVG favicon

Autofocus

by Sylvain Julé

Content aware image cropping
$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
autopublish:
  label: Autopublish on
  type: date
  time: true
  default: now
autounpublish:
  label: Automatically unpublish on
  type: date
  time: true

Autopublish

by Bart Vandeputte

Schedule automatic publishing of pages (drafts) on a certain date & time
return [
    'medienbaecker.autoresize' => [
        'maxWidth' => 2000,
        'maxHeight' => 2000,
        'quality' => 90
    ]
];

Autoresize

by Thomas Günther

Automatically resize images on upload

Awesome Picker

by Roman Steiner

Font Awesome icon picker field for the panel.

AWS CloudFront invalidations

by Liftric GmbH

Kirby plugin which triggers AWS CloudFront invalidations automatically.
(badge: licence MIT)

Badges

by David Somers

Add GitHub-style badges to your site with the (badge: …) Kirbytag

Better REST

by Robin Scholz

Exposes the internal REST API at /rest with the option to convert Kirbytags to HTML and add a srcset to images in the process. Intended to …
$pages->bettersearch($string, $options)

Better Search

by Bart Vandeputte

Search for full word combinations rather than just individual words.

Blade Templates

by Lukas Leitsch

Use Laravel Blade templates for your Kirby site

Blurry Placeholder

by Johann Schopplich

Blurry image placeholders and progressive image loading for better UX
// 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.

Bouncer

by Sylvain Julé

Restrict access of a user role to a specific page (and its children) in the Panel.
<?= $page->author()->byline() ?>

Byline

by David Somers

Field methods to create plain or linked bylines from single or multiple authors
return [
  'schnti.cachebuster.active' => true
];

Cachebuster

by Timo Schneider

Add modification timestamps to your css and js files, as long as they are embedded with the css() and js() helpers.
<kb:date format="d/m/Y" field="date" />

Carver

by Hash&Salt

Write custom HTML tags, powered by PHP
return [
  'flupe.kirby-cas' => [
    'host'    => 'cas.ens-lyon.fr',
    'context' => '/cas'
  ]
];

CAS

by Lucas Escot

Allowing user login using an external CAS. It adds a new button under the panel login form to connect through CAS.
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 …
<?= $page->text()->chopper(20) ?>

Chopper

by Hash&Salt

Create excerpts from fields and define the HTML tags you wish to keep

Clear Cache

by Click to Next

Clean temporary files and folders such as cache, media, .lock and .logins on your website.

Clear Cloudflare Cache

by The Streamable

Automatically purge Cloudflare cached URLs

CloudConvert

by Bruno Meilick

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

CodePen Tag

by Sonja Broda

Embed CodePens in your text with the (codepen: …) Kirbytag

Collect

by Bruno Meilick

Adds support for Laravel collections to Kirby

Color Extractor

by Sylvain Julé

Extract the dominant / average color from any image

Color Palette Field

by Sylvain Julé

A color palette field, helping you pick predefined colors / palettes

Colors

by hana+nils

Colors is a field that allows the selection of a color using the native color selector. Colors can be viewed and edited in either HEX, RGB …

Commentions

by Sebastian Greger

A minimalistic comment/webmention system

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 …
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

Convert JPG and PNG to WEBP

by Felix Häberle

This plugin converts JPG, JPEG and PNG into much smaller WEBP – speed up your website!
<?php snippet('cookie') ?>

Cookie Approval

by Timo Schneider

Add a cookie approval banner to your templates
<?php snippet('cookie-modal', [
    'assets'      => true,
    'showOnFirst' => true,
    'features'    => [...],
]) ?>

Cookie Consent Modal

by Michael Scheurich

A customizable cookie consent modal for Kirby3.

Cropselect

by Thomas Günther

Select from 9 different crop positions with this visual crop selector field

Custom Add Fields

by Steirico

This plugin allows to define the fields shown on Kirby's page add dialog in the corresponding page's blueprint.

Date Extended

by Uwe Gehring

Plugin to provide two additional date fields which will store the creation date and the modication date as a Unix Epoch. A field method is …

Date format field

by Matthias Müller

A date field that uses the format DD.MM.YYYY
$page
  ->date()
  ->toDateTime()
  ->modify('+1 month')
  ->format('Y-m-d');

Date Methods

by hana+nils

Date Methods is a plugin that allows for advanced date and time parsing and formatting using PHP's core date objects. It offers methods for …
<?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.

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
(download: flyer.pdf text: our beautiful products)

Download Tag

by Jannik Beyerstedt

Kirbytag to generate beautiful download links for a specific file

Embed

by Sylvain Julé

Display embeds from various media sites (YouTube, Vimeo, Soundcloud, Instagram, etc.) by only providing the url to the medium

Enhanced Toolbar Link Dialog

by Gearsdigital

The Enhanced Toolbar Link Dialog makes it easy to add internal or external references to your content by extending the default link dialog …
\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

Event Calendar

by Martin Zurowietz

A plugin for the Kirby CMS to easily implement an event calendar.
<?php snippet('fathom') ?>

Fathom

by Tim Duvendack

Add the Fathom tracking code to your site

Fathom Analytics

by Paul Morel

Integrates the privacy first website analytics Fathom Analytics dashboard to the panel and provides the tracking code for your templates.
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
$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 …
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.
<?= $page->thumbsUp()->ecco('👍', '👎') ?>

Field Ecco

by Bruno Meilick

Field method to echo strings based on the boolean value of a field

Fields Block

by Jon Gacnik

Kirby block preview plugin to directly render block fields, allowing for inline editing.

FilesDisplay Section

by Sonja Broda

Display files from anywhere in your site in a section. This section only displays files, you cannot sort them manually or upload new files.
$page->file('ukulele.pdf')->fingerprint();

Fingerprint

by Bruno Meilick

File method and css/js helpers to add hashes to assets and files
href="styles.db5796ea5bf2.css"

Fingerprint

by Bart Vandeputte

Cache-busting utility to fingerprint assets

Focus

by Flo Kosiol

Set the focus point of an image to prevent the relevant parts from being cropped

Fontselector

by Bruno Meilick

Select font family and font weight with two synced fields
[^This is a footnote.]

Footnotes

by Sylvain Julé

This plugin extends Kirby 3 with some basic, extremely easy and unopinionated footnote functionalities.
$form = new Form([
    'name' => [
        'rules'   => ['required'],
        'message' => ['Name is required']
    ],
]);

Form

by Martin Zurowietz

A helper library for working with forms, using the Post/Redirect/Get design pattern

Form Block

by Roman Gsponer

This form plugin for Kirby offers you maximum flexibility and usability. It can be used as a block anywhere you needed. Even multiple times …
<div class="field">
    <?= label('Name', 'name') ?>
    <?= input('text', 'name') ?>
</div>

Forms

by Hash&Salt

A small plugin for creating HTML forms more easily.
<?= __('Welcome to my site') ?>
<?= __('label.name') ?>
<?= __('Copyright {{year}}', ['year' => '2022']) ?>

Fragments

by Sam Serrien

Small string/translation helper for fragments 'laravel/blade' style. Supports translating fragments (e.g. static labels) on site or page …
$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
<?= $file->id3('artist') ?>

Gilmour

by Hash&Salt

Read ID3 tags from audio files and use it in your templates.

Git

by Oblik Studio

Kirby plugin for updating content in the Panel via Git

Git Content

by Markus Denhoff

Automatic commit and push of content changes made via the Panel to a git repository

Google Calendar

by Benedikt Engel

Display your Google Calendar entries as list on your website

Grid Block

by Roman Gsponer

With this plugin you can use layouts right within any blocks 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
<script src="/js/main.9ad649fd.js">

Hashed Assets

by Johann Schopplich

File name hashes support for the css() and js() helpers
return [
    's1syphos.highlight' => [
        'class'     => 'hljs',
        'languages' => ['html', 'php'],
        'escaping'  => false
    ]
];

Highlight

by Martin Folkers

Themeable server-side syntax highlighting
fields:
  example:
    label: Paste code here
    type: blocks
    fieldsets:
      - code

Highlighter

by Johann Schopplich

Server-side syntax highlighting for the Kirby code block & KirbyText
fields:
  homelanding:
    label: Home Override
    type: select
    options: query
    query: site.children.visible

HoneHome

by David Somers

Handle homepage redirection
<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.
use Beebmx\KirbyDB\DB;

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

Illuminate Database

by Fernando Gutiérrez

Use Laravel's illuminate/database package in Kirby

Illustrated Checkboxes

by Sylvain Julé

Add images to your checkbox options in this field, to provide an intuitive selection interface for your editors

Illustrated Radios

by Sylvain Julé

Combine images with radio buttons in this field, to provide an intuitive selection interface for your editors

Image Clip

by Matthias Müller

Visually crop images with a handy image editor directly inside the panel

ImageOptim

by Bruno Meilick

Thumb component to optimize images using the ImageOptim Api

Imgix

by diesdas.digital

If this plugin gets activated, it will serve all images via imgix.

IndieConnector

by Maurice Renck

A webmention handler. Receives webmentions and propagates them via Kirby hook so your site or other plugins can subscribe to them.

Instagram

by Sam Serrien

Plugin to help you show your own instagram feed on your website. Works with test users, no app approval needed!

Instagram Feed

by Click to Next

Instagram feed on your Kirby website!

Janitor

by Bruno Meilick

Run jobs – like cleaning the cache – from within the Panel, PHP code or a cronjob

JSON Field

by Oblik Studio

Use the JSON field to create nested JSON objects and arrays with an intuitive interface
kirbylog('Something happened');

Kirbylog

by Johann Schopplich

Zero-dependency global kirbylog() helper for any content
{
    "query": "page('photography').children",
    "select": {
        "url": true,
        "title": true,
        "text": "page.text.markdown"
    }
}

Kirby QL (KQL)

by Kirby Team

Kirby's Query Language API combines the flexibility of Kirby's data structures, the power of GraphQL and the simplicity of REST.
<?= $page->title()->kirbytextWrap('h1') ?>

KirbytextWrap

by Yoan Malié

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

Kirby Vite

by arnoson

A set of helper functions to get the correct path to your versioned css and js files generated by Vite.

Komments

by Maurice Renck

A webmention enabled comment plugin. Receive comments and webmentions. Spam protection and a moderation panel view included. Kirby 3.6 …

KQL Nuxt

by Daniel Rivers

This plugin allows ease of access to all of your Kirby pages on sites that use the KQL plugin
$key  = crc32($page->url());
$data = lapse($key, function () {
    return [1, 2, 3];
});

Lapse

by Bruno Meilick

Cache any data until the set expiration time

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.

Layouts

by Kirby Team

This plugin extends Kirby’s templates with a powerful layout system.

LDAP login

by datamints GmbH

With this plugin, you can login into Kirby with your LDAP-credentials
<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.

Link Field

by Oblik Studio

Kirby field for links of any kind - external, page, file, email, phone. Has settings for text, popup true/false, and hash.
// 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 …

Localizer for Kirby

by Gearsdigital

Change every localized string within the Panel – other plugins included! If you want to adapt some Panel translations without effort, this …

Locator

by Sylvain Julé

A simple map & geolocation field, built on top of open-source services and Mapbox.
fields:
    security: fields/locked-pages

Locked Pages

by Johann Schopplich

Password-protect pages easily, Panel blueprint included.
$site->log('My message', 'error');

Log

by Bart Vandeputte

A little log utility (KLogger wrapper)

Logger

by Michael Scheurich

This plugin logs all actions in the panel and displays them in a separate view.

Mailjet

by Bruno Meilick

Send transactional SMS, transactional E-Mail and Campaigns with Mailjet

Map-Suite

by Roman Gsponer

Geolocation field & map block: All you need for a map on your website.

Markdown Field

by Fabian Michael

A highly customizable text editor with syntax highlighting for both Markdown and KirbyTags. Also has advanced features like displaying …

Matomo

by Sylvain Julé

Displays most important metrics of the extensive open-source tracking solution Matomo directly into the panel and provides helpers for …
images:
  type: files
  maxpixels: 2000000
  #two million pixels

Maxpixels

by Roman Steiner

Resize images in the browser before uploading them to the server.

Memsource

by Oblik Studio

This plugin allows you to translate your entire site content in the powerful TMS Memsource

Mercado Pago for Merx

by Click to Next

Mercado Pago payment gateway for Kirby 3 Merx plugin.

Merx

by Wagnerwagner

A powerful toolkit to cre­ate your very own on­line shop. Start entirely from scratch or integrate a store into your ex­ist­ing Kirby …

MetaKnight

by diesdas.digital

Win every SEO fight. MetaKnight is a handy SEO plugin for the flat-file CMS Kirby. It has mighty powers.
<html>
  <head>
    <meta charset="utf-8">
    <?= $page->metaTags() ?>
  </head>
  ...

Meta Tags

by Pedro Borges

HTML meta tags generator that supports Open Graph, Twitter Cards, and JSON Linked Data out of the box
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 …
return [
    'afbora.kirby-minify-html' => [
        'enabled' => true,
        'options' => [...]
    ]
];

Minify HTML

by Ahmet Bora

Enable minify HTML output for Kirby 3.
<?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

Modules

by Thomas Günther

Subpages for modular Kirby websites

Mollie for Merx

by Click to Next

Mollie payment gateway for Kirby 3 Merx plugin.
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.

Move Pages

by Click to Next

Missing move pages feature for Kirby 3.

Multi Toggle Field

by Fabian Michael

An exploration of a new UI element/field for Kirby CMS, resembling the multi-toggles ususally found in desktop software for things, such as …

MySQL Cache Driver

by Bruno Meilick

MySQL based Cache-Driver

Navigation

by Chris Martin

Menu builder field to create any type of navigation menu

OAuth 2.0

by Markus Denhoff

Interface to use OAuth 2.0 providers for user authentication

Oh hi Mark!

by Roman Steiner

Enables the inclusion of custom Writer field marks without patching the Kirby dist files.

PagesDisplay Section

by Roman Steiner

Display any page list in a section. Any parent, many parents, filtered, don't care.

Pagetable

by Sylvain Julé

Display subpages in a flexible, sortable and searchable table.
<?= $page->counterImage() ?>

Pageview Counter

by Bruno Meilick

Track Page view count and last visited timestamp
options:
  singleLanguage: true
  hideStatus: true
  hideOptions: true

Panel View Extended

by Matthias Müller

Add more specific CSS classes and features to the panel views

Pexels Image Field

by Maurice Renck

A panel field allowing you to search pexels.com for stockphotos and download then directly to your Kirby page.

PHP Cache Driver

by Bruno Meilick

PHP based Cache-Driver

Plates

by Click to Next

Plates native PHP template engine/system for Kirby 3.

Plausible

by Florian Karsten

Simple plugin providing plausible iframe panel view to kirby panel and simple frontend snippet.

Plausible

by Rowdy Rabouw

Displays simple and useful web analytics from Plausible directly into a panel and provides a frontend snippet for adding the Plausible …
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
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.
tp('apples', ['count' => 1]);
// 1 apple
tp('apples', ['count' => 3]);
// 3 apples
tp('place', ['position' => 1]);
// 1st
tp('cookies', ['start' => 3, 'end' => 4]);
// 3-4 cookies

Plurals

by Oblik Studio

Allows you to use language variables to translate a string according to that language's plural forms defined in the Unicode CLDR

Podcaster

by Maurice Renck

Run your own podcast with Kirby! Handle episodes right in the panel, create feeds for all popular "podcatchers", track downloads and …

Posthog

by Bruno Meilick

Connect Kirby to Posthog via PHP or Javascript

Postmark

by Bruno Meilick

Send transactional E-Mail with Postmark

Previews

by Sylvain Julé

Add enhanced and missing structure previews for various fields in the panel

Punctuation Section

by Johann Schopplich

A simple, customizable section for your Kirby project from which your clients can quickly copy commonly used characters to the clipboard.

PWA (Progressive Web App)

by Click to Next

Turns your Kirby website into a PWA: progressive web app.
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.

Query Field

by Roman Steiner

Author KQL queries in the Panel and use them in your templates.
$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
(quote: Awesome quote author: A. Einstein)

Quote Tag

by Jannik Beyerstedt

Kirbytag to create blockquotes
<?= $page->random('words', 'lorem', 5) ?>

Random

by Bruno Meilick

Kirby tag and page method to generate various random values

Rate Page

by Maurice Renck

A page rating plugin. Working without page reload and can also receive webmentions. Comes with a panel overview of all the ratings.

Ray

by Sam Serrien

Helper tool that enables ray ( https://myray.app/ ) on all extendable methods.
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)
$datelist = $site->recurr(
    '2022-09-10 20:00:00',
    '2022-09-11 02:00:00',
    'WEEKLY',
    ['WE', 'TH', 'FR'],
    '2022-10-11'
);

Recurr

by Hash&Salt

This plugin integrates the Recurr library to make it easier to work with repeating dates (like events on a calender).
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
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

Relationship field

by Ola Christensson

The Relationship field allows you to select and sort multiple items from a list

Reporter for Kirby

by Gearsdigital

Enables editors or clients to submit tasks, bugs and ideas to Github, Gitlab or Bitbucket or by E-Mail, straight out of the Panel!
return [
    'lukaskleinschmidt.resolve.cache' => true
];

Resolve

by Lukas Kleinschmidt

Speed up Kirby's page routing.

Retour

by Nico Hoffmann

Advanced redirection based on rules, supporting wildcards and HTTP status codes. Comes with a panel view, so redirects can be managed …

Retrotree Section

by Findthebug

Retrotree is a section plugin to display pages in real retro tree fashion.
return [
    'bnomei.robots-txt' => [
        'content' => '...'
    ]
];

Robots.txt

by Bruno Meilick

Manage the robots.txt from Kirby's config file
// 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.
<?= $site
    ->schema('LocalBusiness')
    ->name('Hash&Salt')
    ->email('email@example.com')
?>

Schema

by Hash&Salt

Easily generate JSON schema for any kind of structured data in the RDFa specification.

Secured Pages

by Kerli81

Prevent unauthorized users to access a page or a hierarchy of pages. The permission will be granted by a user group. If the user is not yet …

Selfauth

by Sebastian Greger

Provides self-hosted authentication for the IndieAuth protocol

Sendmentions

by Sebastian Greger

The plugin attempts to send Webmentions to all URLs linked from a page's content when it is saved with status "listed".
<?php snippet('seo/meta') ?>

SEO

by Hash&Salt

A small plugin for generating meta data using shared controllers and field data. Also creates Facebook Opengraph and Twitter social sharing …

Seobility – Keyword check

by Bruno Meilick

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

Shopify

by Tristan Bagot

Display products on your own site and integrate the checkout process with your Shopify shop.
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

Simplestats

by Daan de Lange

Track page views, referrers and devices on your Kirby 3 website. This plugin provides a simple solution for self-hosted, minimal and …

Snipcart

by Hash&Salt

Helps integrate Snipcart into a Kirby site
snippetWhen('article', $category->isNotEmpty())

snippetWhen Helper

by hana+nils

snippetWhen is a helper function to conditionally embed snippets.
(spreadsheet: pricelist.xlxs)

Spreadsheet

by Sonja Broda

This plugin provides a KirbyTag that allows you to include a table inside a textarea field from a spreadsheet (Excel or CSV files).

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.

Static Site Generator

by d4l-data4life

Create a static version of your site. Upload the generated files to any CDN or services like Netlify. The result is an even faster site.
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).

Structure: Textarea Preview

by hana+nils

Structure: Textarea Preview offers Markdown previews for textareas in structure fields.
<?php snippet('jsonld') ?>

Structured data

by Christian Fickinger

Advanced SEO for structured data to organize and connect microdata based on JSON Linked Data format (JSON-LD).

Subtitler

by Sylvain Julé

Kirby field for synchronizing content with audio/video files
$articles = page('blog')
    ->children()
    ->listed()
    ->isUnderEmbargo(false)
    ->isSunset(false);

SunCyclePages

by David Somers

Embargo pages until sunrise date and withdraw at sunset date

Table field

by ragi96

Use the table field plugin to provide an easy way for editors to create and edit tables
// 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.

Terminal

by Lukas Kleinschmidt

Manage background processes from the panel. Define scripts like you might already be familiar with from npm. Start or stop predefined …
my-plugin
└── tests
    ├── roots
    │   ├── blueprints
    │   ├── config
    │   ├── content
    │   └── ...
    └── bootstrap.php

Tester

by Oblik Studio

Allows you to easily write plugin tests by automatically loading Kirby and optionally changing its roots.

Tiles

by hana+nils

Tiles is a plugin to serve basic vector map tiles (.mbtiles). The plugin provides routes for styles, tilejson and vector tiles that can be …

TinyMCE

by Click to Next

Integrates the powerful TinyMCE 5 wysiwyg editor into Kirby 3.
<?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.
<?= $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 …

Trevor

by Roman Steiner

Edit your language translation variables from the Panel.

Twig Templates

by am-teich

Add support for Twig templates to your Kirby installation

Twit

by Hash&Salt

A wrapper around twitteroauth. Allows you to display tweets on your website without having to use Twitters embedded timelines.
$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 …
$form = new Form([
    'name' => [
        'rules'   => ['required'],
        'message' => ['Name is required']
    ],
]);

Uniform

by Martin Zurowietz

Probably the most versatile solution for handling web form submissions, validation and backend processing on your site
return [
  'werbschaft.uploadExtended' => [
    'rename'            => true,
    'excludeCharacters' => ['_','__'],
    'tinyPng'           => true,
  ]
];

Upload Extended

by Werbschaft

More options when uploading files like name changes, resizing via Kirby or compression and optional resizing via TinyPNG.
foo:
  bar: test
  baz:
    qux: test2

Variables

by Oblik Studio

Specify language variables with YAML files and nested keys

Variables field

by Oblik Studio

The variables field allows you to manage language variables via the panel

Versions

by Lukas Bestle

Keep track of content changes and switch between different versions from the Panel
(vidembed: video.mp4 poster: poster.jpg)

Video

by Hash&Salt

A Kirby tag and snippet for rendering video players inside textareas

Video

by Timo Schneider

Embed content from YouTube without compromising privacy.
return [
  'thumbs' => [
    'driver' => 'vipsthumbnail'
  ]
];

Vips thumbnail

by Florian Karsten

This is very basic Kirby CMS thumbnail driver for libvips.
'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.

Visual Image Crop Field

by Steirico

This plugin provides a field for cropping images visually and very flexibly.

Webhook Field

by philipjonas

Provides a field to trigger custom webhooks and see their status through the panel. Use it to deploy headless sites, trigger a CI/CD …

Webhooks

by errnesto

Lets you register custom webhooks based on kirby hooks.

WebP

by Hash&Salt

A snippet and Kirby tag for using WebP images in templates and within textareas. This plugin will convert uploaded files to WebP on the …
HeadlineWellKnown:
  type: headline
  label: well-known
  numbered: false

TheWellKnown:
  extends: omz13/wellknown

WellKnown

by David Somers

Provide files like /robots.txt, .well-known, etc.

Whatever

by David Somers

It provides a field called 'whatever' that should simply spit out "whatever". Essentially it is the "hello world" field example made …

WhatsApp Button

by Click to Next

Simple floating WhatsApp button plugin for Kirby 3.
warning:
  type: info
  label: Woofling warning
  theme: negative
  whenQuery: barsters > 30

WhenQuery

by Roman Steiner

Conditionally show and hide your fields and sections by evaluating a query expression.
return [
  'omz13.xmlsitemap' => [
    'cacheTTL' => 60,
    'includeUnlistedWhenSlugIs' => [...],
  ]
];

XML Sitemap

by David Somers

Generates a sitemap for search engines. Can be configured to include/exclude certain pages and more.

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 …
$site->holidays('France', 2022);

Yasumi

by Hash&Salt

Get a list of official public holidays and the dates they fall on for any country and year.