1. Bootstrapping a full Plone 6 project#

We can use the new cookiecutter-plone-starter repository.

Note

The introduction of more tools are in store in order to ease the creation of the boilerplate for a full Plone 6 project, but they might revolve around this cookiecutter template.

1.1. Requirements#

1.1.1. Cookiecutter#

Install cookiecutter command line in your system or in a virtualenv:

pip install cookiecutter

1.1.2. nvm, Node.JS, Yeoman, and Yarn#

First install nvm and latest Node.JS according to the Plone documentation.

After that, install Yeoman according to the Plone documentation.

Finally, install yarn according to the Plone documentation.

1.1.3. Docker (optional)#

Install Docker according to the official documentation.

Generate a new Plone 6 Project:

cookiecutter gh:collective/cookiecutter-plone-starter

Cookiecutter generates a file structure.

For an initial build of backend and frontend:

make install

In two separate terminal sessions, start backend and frontend:

To start backend:

make start-backend

To start frontend:

make start-frontend

You can stop each one with ctrl-c.

After changes please re-build both with

make build

and restart backend and frontend by stopping and re-running

make start-backend
make start-frontend

1.2. Project Generation Options#

These are all the template options that will be prompted by the Cookiecutter CLI prior to generating your project.

Option

Description

Example

project_title

Your project's human-readable name, capitals and spaces allowed.

Plone Site

project_slug

Your project's slug without spaces. Used to name your repository and Docker images.

plone-site

description

Describes your project and gets used in places like README.md and such.

New site for our company.

author

This is you! The value goes into places like LICENSE, setup.py and such.

Our Company

email

The email address you want to identify yourself in the project.

email@example.com

python_package_name

Name of the Python package used to configure your project. It needs to be Python-importable, so no dashes, spaces or special characters are allowed.

plone_site

plone_version

Plone version to be used. This queries for the latest available Plone 6 version and presents it to you as the default value.

6.0.0b2

volto_version

Volto (Plone Frontend) version to be used. This queries for the latest available stable Volto version and presents it to you as the default value.

16.0.0-alpha.35

language_code

Language to be used on the site.

pt-br

github_organization

Used for GitHub and Docker repositories.

collective

container_registry

Container registry to be used.

Docker Hub