Kirby Panel Configuration: Blueprints, Permissions, Customization

Configuring the Kirby Panel (Admin Panel)

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1285
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1240
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    982
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1032
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1104
  • image_website-_0.webp
    Website development for Red Pear
    553

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?

  1. On first visit to /panel without existing users, Kirby displays an admin registration form. After creation, the form closes automatically.
  2. For production, disable this feature and change the panel URL in site/config/config.php: set 'panel' => ['install' => false, 'slug' => 'manage'].
  3. 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:

  1. Create a file site/blueprints/site.yml.
  2. Define tabs (e.g., General, Contacts, Social).
  3. Add fields with types like text, textarea, files, structure.
  4. 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.