Coming back to Kirby after a long time, I have some questions for future development

Hi there, it is amazing what Kirby has achieved in such a short time! I used to develop on Kirby 2 long time ago and now I’m doing another project that could use Kirby. However, since it’s been a long time for me doing coding in general, and Kirby specifically. I want to make sure what I want to build is possible through Kirby.

It would be great if someone here could help tell me how I could approach this.

I’m working on a website with a product catalog page and I want to make a custom Panel for my user to be able to create new product category and later add new products that can be assigned to each of the categories.

My approach would be to make the category name into a tag based system and adjust the template to show post made only using the category tag. Meanwhile in the product panel, there will be a selection of categories that can be selected for the product that will assign the tag to that product post.

Also is it possible to make the new category as a new page that will appear automatically under the Product drop down on the front end?

attached is my sitemap to help with the question.

Sorry if it’s too long, please feel free to shoot me with any question if my post is confusing, it’s been a while for me and I forgot lots of the glossary.

You can create categories as pages in a tree like this:

- products
  - category-a
    - product-a
    - product-b
  - category-b
    - product-c


The downside of this approach: each product will be in only one category, you cannot easily move products from one category to another. Also, deleting categories would mean to delete the page together with its subpages. In general, this approach is not very flexible.

The other approach would be to create categories as a structure field in the site or, maybe better, in the parent products page. Then you can query these categories from a select field defined in the product.yml blueprint.

Perhaps this plug-in is useful here.


Thanks for the pointers! I’ll look into making structure field.

Wow this is awesome, this is what I had in mind, and it will save a lot of times. Thanks!