Since Kirby is a flat-file CMS, all content is stored in files and folders within the
content folder. Each folder you create represents a page that is accessible via its own URL.
If you create a folder called
blog as direct child of the
content folder, it will be accessible via
Page folders can serve as pages in their own right, i.e. only contain the content from their own folder, or they can serve as data containers for their parents, or they can be used in other parts of the project.
All content you create in the backend can also just serve as a data store, ready to be consumed in your SPA or other types of media.
Content in Kirby can also come from a database, from an external API, Excel sheets or any other data source. We will cover this in other parts of the documentation.
The flat-file architecture of Kirby makes creating and editing content in Kirby highly flexible. You can create content in three ways in Kirby, in fact, all three ways can be used in parallel.
You can use the Panel to edit content and upload files.
You can create files and folders manually in the file system and edit content files with the text editor of your choice.
You can create and modify content programmatically using Kirby's API, for example, create pages from
.csvfiles or from form content on the front-end.
Customizable page states give you maximum control over your workflow, from drafts over unreviewed to published pages. Choose what you need and start creating.
In Kirby, pages can have three states:
Drafts are only accessible to logged-in users, while listed and unlisted pages are accessible via their URL.
You can use these states to filter files in the frontend or to implement a multi-step publishing workflow for drafts, in-review and published pages.
Your content is your biggest asset, and structuring it in a way that makes it easily accessible and ideally reusable across different types of media (Single Source Publishing) is therefore important.
Organize content your way. Every page type or data entry can have the completely unique data structure that your project demands.
Kirby stores media files in the same folder as the page content instead of putting everything into a huge media library. In addition, you can store media files in the
site object, i.e. directly in the
Kirby works with all types of media files and allows you to store meta data for each file in the same flexible way you can store information for pages.
When writing for the web, nobody really wants to wrap HTML tags around text. On the other hand, most WYSIWYG editors produce awful HTML output and have tons of other issues. In Kirby, content is therefore marked up and formatted in Markdown or our extended version of it, which we call KirbyText.