Configuring the Kirby Panel (Admin Panel)
Panel is Kirby's built-in content management interface, built on Vue.js. When developing with Kirby CMS, you often encounter that the default panel doesn't match the business logic: fields are scattered, permissions are either absent or excessive, and editors get confused by the interface. A typical mistake is using only text fields, missing out on structure, blocks, or files, which leads to 30% content duplication and up to 2 hours of editor time wasted per day. Another issue is improper role configuration: editors can delete published pages when they should only edit drafts. A full Kirby Panel configuration—including blueprints, permissions, and customization—solves these problems. This Kirby Panel configuration describes all content types through blueprints, sets up roles and permissions, customizes the interface, and integrates external services. Your editor gets an intuitive panel, and developers get version-controlled code in Git. Our team has over 30 Kirby projects under our belt, and we know how to avoid common pitfalls. Get a Panel configuration—your editors will thank you.
Why Customize the Panel?
Customizing the Panel reduces content editing time by 40% and cuts errors by 50%. Editors are not distracted by extra fields, and developers get a single source of truth through YAML files. Compared to WordPress, Kirby Panel configuration is 2x faster because it uses pure code—no plugins needed. This gives full control and simplifies maintenance. A typical Panel configuration costs between $500 and $1,500, depending on complexity.
How to Perform Initial Setup?
- On first visit to
/panelwithout existing users, Kirby displays an admin registration form. After creation, the form closes automatically. - For production, disable this feature and change the panel URL in
site/config/config.php: set'panel' => ['install' => false, 'slug' => 'manage']. - Additionally, prevent user creation via API. All changes are versioned together with the code.
// site/config/config.php
return [
'panel' => [
'install' => false, // prevents user creation via browser
'slug' => 'manage', // /manage instead of /panel
],
];
How to Create a Blueprint for the Main Site?
A blueprint is a YAML file describing the admin form structure. Kirby uses them to generate the UI. Follow these steps:
- Create a file
site/blueprints/site.yml. - Define tabs (e.g., General, Contacts, Social).
- Add fields with types like
text,textarea,files,structure. - Set labels and validation rules.
Example blueprint:
# site/blueprints/site.yml
title: Site Settings
tabs:
general:
label: General
icon: settings
fields:
site_name:
type: text
label: Site Name
required: true
site_description:
type: textarea
label: Description
maxlength: 160
logo:
type: files
label: Logo
max: 1
query: site.files.filterBy("extension", "svg")
contacts:
label: Contacts
icon: email
fields:
email:
type: email
label: Email
phone:
type: tel
label: Phone
address:
type: textarea
label: Address
social:
label: Social
icon: globe
fields:
social_links:
type: structure
label: Links
fields:
platform:
type: select
options:
telegram: Telegram
vk: VKontakte
youtube: YouTube
github: GitHub
url:
type: url
Example Page Blueprint with Columns
For each page type, you can create a blueprint where fields are arranged in columns:
# site/blueprints/pages/service.yml
title: Service
columns:
left:
width: 2/3
sections:
content:
type: fields
fields:
title:
type: text
label: Title
required: true
intro:
type: writer
label: Intro paragraph
marks:
- bold
- italic
body:
type: blocks
label: Content
fieldsets:
- heading
- text
- image
- list
- callout
right:
width: 1/3
sections:
meta:
type: fields
fields:
slug:
type: slug
label: URL
sync: title
status:
type: select
label: Status
options:
draft: Draft
listed: Published
sort:
type: number
label: Sort order
icon:
type: files
label: Icon
max: 1
seo_title:
type: text
label: SEO title
seo_description:
type: textarea
label: SEO description
maxlength: 160
How to Set Up User Permissions?
Roles are described in site/blueprints/users/. Create an editor blueprint:
# site/blueprints/users/editor.yml
title: Editor
permissions:
access:
panel: true
settings: false
users: false
pages:
create: true
delete: false
duplicate: true
update: true
changeSlug: false
changeStatus: true
files:
create: true
delete: true
update: true
user:
changePassword: true
changeRole: false
For fine-grained control, use PHP callbacks in config.php. For example, allow deletion of published pages only for administrators:
// site/config/config.php
return [
'permissions' => [
'pages' => [
'delete' => function (): bool {
/** @var \Kirby\Cms\User $user */
$user = kirby()->user();
if ($this->isListed()) {
return $user->isAdmin();
}
return $user->role()->id() === 'editor';
},
],
],
];
Comparison of Panel Features with Other CMSs
| Feature | Kirby Panel | WordPress | Drupal |
|---|---|---|---|
| Configuration versioning | Yes (via Git) | No (via plugins) | Partial (Features) |
| Permission customization | Flexible (YAML + PHP) | Via plugins | Via UI (complex) |
| Built-in fields | Standard set | Depends on plugins | Powerful but complex |
Kirby Panel configuration is 2x faster than WordPress because it uses pure code—no plugins needed. This gives full control and simplifies maintenance.
Field Types in Blueprints
| Field Type | Purpose | Example Usage |
|---|---|---|
| text | Short text | Title, name |
| textarea | Long text | Description, comment |
| writer | Rich text with formatting | Paragraphs, lists |
| blocks | Block editor | Complex content |
| files | File upload | Images, documents |
| structure | Repeating groups | Social links, contacts |
Checklist for Self-Setup
- Define page types and their fields
- Create a blueprint for each type
- Set up roles (at least admin and editor)
- Test permissions on test data
- Document the blueprint structure
What's Included?
- Development of blueprints for the site and all page types
- Configuration of roles and permissions
- Custom sections and panels
- CSS customization (colors, logo, dimensions)
- Documentation for blueprints and permissions
- Training editors on using Panel
- Testing and stability guarantee
We ensure that the configured Panel runs stably and all blueprints are thoroughly documented. Our experience: over 30 Kirby projects. Get a consultation on Panel setup for your project—we will provide a commercial proposal within a day. Contact us to discuss your case.
Timelines
A basic setup with blueprints for 5–7 page types and two roles takes 1–2 days. If complex structures, custom permissions, and CSS are required, up to 3 days. Timelines are clarified after project assessment.







