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.







