Recipes
-
Development & deployment
Kirby meets DDEV
Set up a local development environment for Kirby with DDEV in no time.
-
Panel
Basic Panel area
Create your first custom Panel view from scratch
-
Development & deployment
Kirby meets Caddy
How to configure the popular and simple Caddy v2 web server to run a Kirby website.
-
Development & deployment
Git-based FTP-deploys
Deploy Kirby projects via GitHub actions and FTP to staging and production
-
Headless
Headless kiosk app
Use Kirby and 11ty to generate a headless kiosk application that works offline.
-
Frontend
Including CSS/JS libraries
How to add CSS or JS files to your templates
-
Content representations
Creating OG images
Dynamic creation of Open Graph images for social sharing
-
Development & deployment
Coding style standards
Fix coding style violations automatically with easy-to-implement, configurable tools
-
Performance
Responsive images
Boost your site's performance with images that adapt to all screen sizes
-
Headless
Going Headless
Prepare Kirby for headless use.
-
Content representations
Populate Figma designs
Using JSON representations to auto-populate your Figma designs
-
Performance
Image lazy-loading
Lazy-loading strategies to improve your site's performance
-
Development & deployment
Replacing core classes
Extend core classes like the Kirby or site classes
-
Forms
User registration
Leveraging Kirby's authentication features to create a user registration system
-
Extensions
Preview images for PDFs
Display a nice auto-generated image when linking to PDF flyers, booklets etc.
-
Development & deployment
Deployment with Dokku
A clean and simple way to get Kirby up and running with Dokku, a lightweight PaaS
-
Development & deployment
PHP-based blueprints
Create blueprints programmatically with PHP
-
Panel
Advanced Panel area
Panel area with editable list, complete with dialogs, dropdowns and search
-
Development & deployment
Batch updating content
Flexible and reliable updates to large amounts of content
-
Frontend
Kirby meets PurgeCSS
A walkthrough on how to install and use PurgeCSS with Kirby
-
Frontend
Kirby meets Tailwind CSS
A walkthrough on how to install and use Tailwind CSS with Kirby
-
Content & structure
Nested blocks
Building a nested block with live panel preview
-
Security
Protecting files
Restrict access to a files download section to authorized users
-
Development & deployment
Kirby meets Nginx
How to configure the Nginx web server to run a Kirby website.
-
Development & deployment
Kirby meets Docker
Get started with Docker as development environment
-
Plugins
Plugins with/without a build process
Build Panel extensions without a build process.
-
Content representations
Load more with Ajax
Add a load more button to your listings and append items via Ajax.
-
PHP
OOP in PHP
Learn the basics of object oriented programming in PHP
-
Performance
Kirby loves CDN
Deliver assets and files through a CDN.
-
PHP
Debugging with Xdebug
Xdebug helps you track down errors in your PHP scripts.
-
Development & deployment
Email testing
MailHog and similar tools make email testing a breeze
-
i18n
Finding translations
Search your code for all translations used with the t() helper function
-
Security
Extending permissions
Fine-tune and go beyond Kirby's built-in permission system in the Panel
-
Plugins
Monolithic plugin setup
Plugin workflow to develop and test a plugin from the same Git repository
-
Development & deployment
Shared Controllers
Share the content of a controller across multiple templates
-
Panel
Custom Panel field
Create a custom Panel field from scratch
-
Development & deployment
Alternative multisite setup
Using symlinks to run multiple sites from the same Kirby installation.
-
Content & structure
Placeholders
Use placeholders for recurring text snippets and more
-
Panel
Custom Panel section
Building very basic custom Panel section for a link list
-
Navigation
Menu builder
Create custom menus from the Panel using different field types
-
Plugins
Plugin testing with PHPUnit
Set up multiple plugins with PHPUnit testing under a single Kirby installation.
-
Forms
Forms with attachments
Sending email with attachments from form input.
-
Content & structure
Subpage builder
Auto-generate subpages when you create a new page
-
Forms
Create pages from frontend
Create pages from an event registration form
-
i18n
Fetching field options
Get text labels for your option values from fields
-
Content & structure
Paginating posts
Split long post into separate pages with pagination
-
Collections
Filtering via routes
Learn how to filter using routes instead of parameters
-
Forms
Contact form
Create a basic contact form that sends HTML or plain text emails.
-
Mixed
How we built getkirby.com
Learn more about the hidden gems and secrets in our own website.
-
Navigation
Sitemap
Automatically create a sitemap for search engines.
-
Collections
Sorting collections
Use Kirby's API to sort your content by all sorts of criteria.
-
i18n
Import/export translations
Write scripts to import and export translations for external translators.
-
Integrations
IndieAuth for your site
Log in to other sites with your domain via RelMeAuth/IndieAuth.
-
PHP
Basic error hunting & prevention
Debug configuration and understanding error messages
-
Extensions
Kirbytext columns
Add columns to your textarea fields with this KirbyTag plugin.
-
Collections
Random content
Simulate activity on your site by showing random content.
-
Development & deployment
Content clean-up
Remove unused fields from content files
-
Navigation
Anchors and ToCs
Auto-replace headlines with anchors and generate in-page navigation
-
Collections
Filtering collections
Filter pages, files and users with Kirby's extensive filtering methods.
-
Collections
Filtering with tags
Classify content and make it easy for visitors to find related content.
-
Collections
Grouping collections
Group pages, files, or users by various criteria.
-
Collections
Related articles
Build relations between articles using YAML content and the pages field.
-
Collections
Search
Learn how to build a simple search for your site or sections of your site.
-
Content representations
Generating JSON
Create a JSON representation of your blog content in Kirby.
-
Content & structure
Adding authors
Tie pages to a person. Create an author system for your blog posts.
-
Content & structure
Creating a blog
Set up a blog system with an overview, articles, tags, feeds and more.
-
Content & structure
Custom post types
Create different templates for different kinds of content.
-
Content & structure
One-pager
Create a one-pager for small companies or simple portfolios.
-
Forms
Uploading files
Learn how to upload files through a frontend form.
-
Integrations
Dropbox sync
Set up Dropbox sync for your site (VPS or dedicated server required).
-
Navigation
Menus
Create any kind of menu you need for your project.
-
Navigation
Pagination
Use pagination to divide content into a list of digestible chunks.
-
Navigation
Previous / Next navigation
Create a previous/next navigation for your site.
-
PHP
Fun with loops and collections
Foreach loops are control structures useful in many contexts.
-
PHP
PHP templating
Learn some PHP basics that make creating templates a breeze.
-
Security
Access forbidden
Use Kirby’s authentication system to build login-protected pages.
-
Mixed
A/B testing with Kirby
Split visitors into groups to compare how different versions perform.
-
Mixed
Accessing blueprints
Use data from blueprints to control your template logic