Skip to content

Tour

Kirby is a modern, fast, flexible, file-based CMS with a beautiful control panel. Take our little tour to better understand what Kirby is all about.

Download Kits

We provide two downloadable kits for you to get started with.

Starterkit

The Starterkit is a full-blown Kirby installation with a lot of example content, blueprints, templates and more. It is ideal to explore many of Kirby's options and play with the Panel.

Download Starterkit

Plainkit

The Plainkit is a minimal Kirby installation with the basics you need to start a project from scratch. It is the ideal choice if you are already familiar with Kirby or if you want to start step-by-step.

Download Plainkit

Kirby's folder structure

Folder What's in it?
/content The content of your website.
/site Think of this folder as your project folder. It contains your templates, configuration, plugins and setup files (blueprints) for the Panel.
/kirby The Kirby app. Great for studying the source code, but in general you should leave this folder untouched (apart from updating it when a new version is released).
/media This folder is managed by Kirby and holds public images and thumbnails as well as plugin and Panel assets. Let Kirby do its work and leave this folder as it is. The media folder and the files in it are auto-generated.

Our Starterkit has an additional /assets folder, we use it to store CSS files. This is just a convention we use. It's not required by Kirby.

Content

Your content is not stored in a database, but directly in your file system. In your /content folder to be exact. Each subfolder of your content folder represents a page.

  • content
    • 1_photography
      • 1_trees
        • album.txt
        • tree.jpg
      • 2_desert
        • album.txt
        • desert.jpg
      • 3_oceans
        • album.txt
        • ocean.jpg
      • photography.txt
    • 2_notes
      • 20190115_hello-world
        • note.txt
      • notes.txt
    • 3_contact
      • contact.txt
    • home
      • home.txt
    • error
      • error.txt
    • site.txt

The content for each page is stored in a text file together with additional resources like images, videos, or other documents. The site.txt in the content folder contains general sitewide information.

Learn more…

Kirby's text files

In each text file in the content folder, content is structured in fields. Those fields are defined by our own simple syntax:

Title: Page Title
----
Text: Some Text
----
Date: 2019-06-26

Those fields come for free. You can add as many as you need. We recommend using them heavily to structure your content. It will help you later if you need to access specific data in your templates and is much cleaner than just one large blob of text.

Templates

All the data that is stored in your content folder can be pulled into your templates to render the pages of your site. Kirby templates are a combination of plain HTML and bits of our powerful PHP API. You don't need to be a PHP expert to get started writing templates. We will guide you through it.

A typical Kirby template looks like this:

<?php snippet('header') ?>

<article>
  <header>
    <h1><?= $page->title() ?></h1>
  </header>
  <div class="text">
    <?= $page->text()->kirbytext() ?>
  </div>
</article>

<?php snippet('footer') ?>

Learn more…

The Panel

Kirby's web interface is called the Panel. You can find it at yourdomain.com/panel.

While you can manage your site 100% in the file system, the Panel makes it a lot more comfortable to add new pages, edit content or upload files. In the background it will do all the hard work of creating folders and files for you.

Blueprints

The Panel is very versatile and can be customized to fit every project. To set up the Panel, you will use Kirby's so called blueprints to configure layouts, form fields, permissions and more.

Learn more…

What else?

Multi-Language support

Any Kirby site can be translated into multiple languages. Languages can be added via the Panel and content can be translated by your editors.

Learn more…

User management

You can add multiple users to your installation and assign roles with permissions to each of them. You can give users Panel or just frontend access and build your own client or member area for your site.

Learn more…

Plugins

Kirby has a very versatile and extensive plugin system that can extend pretty much any part of the system. There are many fantastic third-party plugins that you should definitely check out. But it's also easy to start building your own plugins.

Learn more…

REST API

Kirby has a built-in REST API that you can use for your own single page applications, mobile apps or in combination with a static site generator such as Gatsby.

Learn more…

Routing

If you want to break out of Kirby's URL structure, you can create your own custom routes and use Kirby more like a framework. Or you could create just a few routes next to the built-in ones in Kirby for special use-cases.

Learn more…

Sending emails

Contact form replies, user notifications, tiny newsletters – it's up to you what you build on top of Kirby's email engine.

Learn more…

Caching

Kirby has a built-in page cache that makes slow pages with a lot of content super fast. But there's much more to discover. You can use our caching system for your own data – and in your plugins. Or maybe you want to cache everything in Redis? Let's create a custom cache driver.

Learn more…

Database integration

Yes, you read that right. Even though Kirby is a file-based CMS, you can connect parts of it to a MySQL or SQLite database.

Learn more…