Skip Navigation



  • Kirby 4.1+ or later
  • PHP 8.2+ or later
  • A valid Kirby license & DreamForm license
  • UUIDs enabled in your Kirby installation

Compatibility with other plugins

If you're using any of the following plugins, make sure you're at least on the specified version to make them work with DreamForm.


Composer is the recommended way to install DreamForm. Run the following command in your terminal:

composer require tobimori/kirby-dreamform

After that, run the following Kirby CLI command to create the necessary pages:

kirby dreamform:install

If you don't have Kirby CLI yet, you can install it globally using composer global require getkirby/cli. If you can't install the CLI, you have to create the page manually - simply follow the instructions below.

Manual Installation

While we recommend using Composer, some sites decide do not use it. In this case you can download and copy this repository to /site/plugins/dreamform, or apply this repository as Git submodule.

Since there is no setup command available, you'll have to create the global forms page manually:

  1. Go into your sites' content folder, and create a new folder called forms
  2. Inside forms create a file named forms.txt or forms.en.txt if you're using a multi-lang setup, respectively. If your default language is different than en, replace the respective code in the file name.
  3. Open the file in a editor of your choice, and add the following content:
Uuid: forms

Encryption secret

If you want to use the HTMX or API submission mode, it is required to specify a secret used for encrypting certain variables that will be output on the template in plain text.

You should not commit this secret to your repository, but instead load it from an environment variable or a secrets file. My recommendation would be using the kirby-dotenv plugin by Bruno Meilick like this:

// site/config/config.php

return [
  'tobimori.dreamform' => [
    // encryption secret for htmx attributes
    'secret' => fn () => env('DREAMFORM_SECRET')

You can generate a good random secret using the OpenSSL CLI and the following command:

openssl rand -base64 32

Adding Forms to the Panel sidebar

If you want to add the Forms entry to the menu sidebar, you can do so without writing complicated functions yourself using the provided Menu helper class in the config.php file. An example configuration could look like this:

// site/config/config.php

use tobimori\DreamForm\Support\Menu;

return [
  // Custom menu to show forms in the panel sidebar
  '' => fn () => [
    'site' => Menu::site(),
    'forms' => Menu::forms(),
    // [...]

Where to go from here